diff options
Diffstat (limited to 'server')
-rwxr-xr-x | server/server/config.h | 19 | ||||
-rwxr-xr-x | server/server/main.cpp | 8 | ||||
-rw-r--r-- | server/server/speedtest.cpp | 16 |
3 files changed, 26 insertions, 17 deletions
diff --git a/server/server/config.h b/server/server/config.h index 2b37cbf..1069bd1 100755 --- a/server/server/config.h +++ b/server/server/config.h @@ -13,10 +13,8 @@ public: { std::string host, login, password; int port; - size_t speed; - std::list<size_t> speed_list; proxy_type type; - proxy_entry_base(): port(0), speed(0), type(UNKNOWN) + proxy_entry_base(): port(0), _speed(0), type(UNKNOWN) {} bool operator==(const proxy_entry_base& e) { @@ -36,6 +34,21 @@ public: { return !((*this) == e); } + size_t &speed() + { + return _speed; + } + void speed(size_t s) + { + _speed = s; + } + std::list<size_t> &speed_list() + { + return _speed_list; + } + private: + size_t _speed; + std::list<size_t> _speed_list; }; struct proxy_entry : public proxy_entry_base { diff --git a/server/server/main.cpp b/server/server/main.cpp index 422ee79..48532fd 100755 --- a/server/server/main.cpp +++ b/server/server/main.cpp @@ -424,7 +424,7 @@ void session::proto_parser(std::vector<byte>& data) if(cfg->debug()) { logger->lock(); - *logger<< time_str() << ": packing "<<it->host<<":"<<it->port<<" speed "<<it->speed<<"\n"; + *logger<< time_str() << ": packing "<<it->host<<":"<<it->port<<" speed "<<it->speed()<<"\n"; logger->unlock(); } switch(it->type) @@ -497,11 +497,7 @@ void session::proto_parser(std::vector<byte>& data) data.push_back(' '); { char speed[10]; -#ifdef WIN32 - _snprintf(speed, 10, "%lu", it->speed); -#else - snprintf(speed, 10, "%lu", it->speed); -#endif + snprintf(speed, 10, "%lu", it->speed()); int len = strlen(speed); for(int i = 0; i < len; ++i) data.push_back(speed[i]); diff --git a/server/server/speedtest.cpp b/server/server/speedtest.cpp index 09d361b..618c862 100644 --- a/server/server/speedtest.cpp +++ b/server/server/speedtest.cpp @@ -96,17 +96,17 @@ size_t speedtest::test(config::proxy_entry_base *p) } if(speed) { - p->speed_list.push_back(speed); - while(p->speed_list.size() > 10) - p->speed_list.pop_front(); + p->speed_list().push_back(speed); + while(p->speed_list().size() > 10) + p->speed_list().pop_front(); size_t speed_sum = 0; - for(std::list<size_t>::iterator i = p->speed_list.begin(), end = p->speed_list.end(); i != end; ++i) + for(std::list<size_t>::iterator i = p->speed_list().begin(), end = p->speed_list().end(); i != end; ++i) speed_sum += *i; - speed = speed_sum/p->speed_list.size(); + speed = speed_sum/p->speed_list().size(); if(cfg.debug()) { logger->lock(); - *logger << time_str() << ": computed "<<speed<<" speed from "<<p->speed_list.size()<<" entries for "<<p->host<<":"<<p->port<<"\n"; + *logger << time_str() << ": computed "<<speed<<" speed from "<<p->speed_list().size()<<" entries for "<<p->host<<":"<<p->port<<"\n"; logger->unlock(); } } @@ -123,11 +123,11 @@ size_t speedtest::test(config::proxy_entry_base *p) *logger << time_str() << ": proxy check error ocured for "<<p->host<<":"<<p->port<<"\n"; logger->unlock(); } - p->speed = speed; + p->speed(speed); if(cfg.debug()) { logger->lock(); - *logger << time_str() << ": set speed "<<p->speed<<" for proxy "<<p->host<<":"<<p->port<<" (this should be sent and seen in client ui)\n"; + *logger << time_str() << ": set speed "<<p->speed()<<" for proxy "<<p->host<<":"<<p->port<<" (this should be sent and seen in client ui)\n"; logger->unlock(); } return speed; |