From 52b3346939f13c78eca5476850377dd2aac139a1 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Tue, 20 Dec 2011 02:55:57 +0200 Subject: fixed proxy type sending --- server/server/main.cpp | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'server') diff --git a/server/server/main.cpp b/server/server/main.cpp index 1adcd44..ee4660f 100755 --- a/server/server/main.cpp +++ b/server/server/main.cpp @@ -321,6 +321,41 @@ void session::proto_parser(std::vector& data) data.push_back(0x02); for(std::list::iterator it = cfg->get_proxy_list()->begin(), end = cfg->get_proxy_list()->end(); it != end; ++it) { + switch(it->type) + { + case config::HTTPS: + { + const char *str = "https://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::SOCKS4: + { + const char *str = "socks4://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::SOCKS5: + { + const char *str = "socks5://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::HTTP: + { + const char *str = "http://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + } if(!it->login.empty() && !it->password.empty()) { for(int i = 0; i < it->login.size(); ++ i) @@ -402,6 +437,41 @@ void session::proto_parser(std::vector& data) data.push_back(0x03); for(std::list::iterator it = cfg->get_static_proxy_list()->begin(), end = cfg->get_static_proxy_list()->end(); it != end; ++it) { + switch(it->type) + { + case config::HTTPS: + { + const char *str = "https://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::SOCKS4: + { + const char *str = "socks4://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::SOCKS5: + { + const char *str = "socks5://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + case config::HTTP: + { + const char *str = "http://"; + unsigned l = strlen(str); + for(int i = 0; i < l; i++) + data.push_back(str[i]); + } + break; + } if(!it->login.empty() && !it->password.empty()) { for(int i = 0; i < it->login.size(); ++ i) -- cgit v1.2.3