diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-15 07:31:39 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-15 07:31:39 +0200 |
commit | e853252cc50fee0a994b97f2e62c7d2cb6e3734e (patch) | |
tree | 353ced9d66ab7cfbbbdcfced1169e5092750c516 /server | |
parent | 368cb1d14f184bc0ddbdc299e6655195b3a7d288 (diff) |
new codes handling
persistent connection (test it please)
Diffstat (limited to 'server')
-rw-r--r-- | server/proxy_ui_server.workspace | 2 | ||||
-rw-r--r-- | server/server/main.cpp | 133 |
2 files changed, 127 insertions, 8 deletions
diff --git a/server/proxy_ui_server.workspace b/server/proxy_ui_server.workspace index 7eda2a4..428269e 100644 --- a/server/proxy_ui_server.workspace +++ b/server/proxy_ui_server.workspace @@ -15,6 +15,8 @@ + + ]]> </Environment> </CodeLite_Workspace> diff --git a/server/server/main.cpp b/server/server/main.cpp index 6b2b9ae..3c9c3d4 100644 --- a/server/server/main.cpp +++ b/server/server/main.cpp @@ -185,7 +185,7 @@ void session::proto_parser(std::vector<byte>& data) //TODO: add data here data.push_back(0x14); data.push_back(0x14); - write_w_close(data); + write_w_response(data); } else { @@ -266,7 +266,7 @@ void session::proto_parser(std::vector<byte>& data) } data.push_back(0x14); data.push_back(0x14); - write_w_close(data); + write_w_response(data); } else { @@ -283,7 +283,7 @@ void session::proto_parser(std::vector<byte>& data) } } break; - case 0x04: // static proxy list request + case 0x03: // static proxy list request { if(canceled) { @@ -301,7 +301,7 @@ void session::proto_parser(std::vector<byte>& data) std::vector<byte> data; data.push_back(0x13); data.push_back(0x13); - data.push_back(0x04); + data.push_back(0x03); for(std::list<static_proxy_entry>::iterator it = cfg->get_static_proxy_list()->begin(), end = cfg->get_static_proxy_list()->end(); it != end; ++it) { if(!it->login.empty() && !it->password.empty()) @@ -349,7 +349,7 @@ void session::proto_parser(std::vector<byte>& data) } data.push_back(0x14); data.push_back(0x14); - write_w_close(data); + write_w_response(data); } else { @@ -366,7 +366,7 @@ void session::proto_parser(std::vector<byte>& data) } } break; - case 0x08: // firewall list request + case 0x04: // firewall list request { if(canceled) { @@ -384,7 +384,7 @@ void session::proto_parser(std::vector<byte>& data) std::vector<byte> data; data.push_back(0x13); data.push_back(0x13); - data.push_back(0x08); + data.push_back(0x04); for(std::list<std::string>::iterator it = cfg->get_firewall_list()->begin(), end = cfg->get_firewall_list()->end(); it != end; ++it) { if(!(it->empty())) @@ -394,7 +394,7 @@ void session::proto_parser(std::vector<byte>& data) } data.push_back(0x14); data.push_back(0x14); - write_w_close(data); + write_w_response(data); } else { @@ -411,6 +411,123 @@ void session::proto_parser(std::vector<byte>& data) } } break; + case 0x05: //files to del request + { + if(canceled) + { + delete this; + break; + } + logger->lock(); + *logger<< time_str() << ": recieved files to del request from "<<remote_ip << " session " << this_sid <<"\n"; + logger->unlock(); + if(!blacklisted) + { + logger->lock(); + *logger<< time_str() << ": files to del request from "<<remote_ip<< " session " << this_sid << " are permited \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x05); + //TODO: add data here + data.push_back(0x14); + data.push_back(0x14); + write_w_response(data); + } + else + { + logger->lock(); + *logger<< time_str() << ": files to del request from "<<remote_ip << " session " << this_sid <<" are denied \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x66); + data.push_back(0x14); + data.push_back(0x14); + write_w_close(data); + } + } + break; + case 0x06: //client version request + { + if(canceled) + { + delete this; + break; + } + logger->lock(); + *logger<< time_str() << ": recieved client version request from "<<remote_ip << " session " << this_sid <<"\n"; + logger->unlock(); + if(!blacklisted) + { + logger->lock(); + *logger<< time_str() << ": client version request from "<<remote_ip<< " session " << this_sid << " are permited \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x06); + //TODO: add data here + data.push_back(0x14); + data.push_back(0x14); + write_w_response(data); + } + else + { + logger->lock(); + *logger<< time_str() << ": client version request from "<<remote_ip << " session " << this_sid <<" are denied \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x66); + data.push_back(0x14); + data.push_back(0x14); + write_w_close(data); + } + } + break; + case 0x07: //client binary request + { + if(canceled) + { + delete this; + break; + } + logger->lock(); + *logger<< time_str() << ": recieved client binary request from "<<remote_ip << " session " << this_sid <<"\n"; + logger->unlock(); + if(!blacklisted) + { + logger->lock(); + *logger<< time_str() << ": client binary request from "<<remote_ip<< " session " << this_sid << " are permited \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x07); + //TODO: add data here + data.push_back(0x14); + data.push_back(0x14); + write_w_response(data); + } + else + { + logger->lock(); + *logger<< time_str() << ": config request from "<<remote_ip << " session " << this_sid <<" are denied \n"; + logger->unlock(); + std::vector<byte> data; + data.push_back(0x13); + data.push_back(0x13); + data.push_back(0x66); + data.push_back(0x14); + data.push_back(0x14); + write_w_close(data); + } + } + break; default: break; } |