summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-11-15 07:31:39 +0200
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-11-15 07:31:39 +0200
commite853252cc50fee0a994b97f2e62c7d2cb6e3734e (patch)
tree353ced9d66ab7cfbbbdcfced1169e5092750c516 /server
parent368cb1d14f184bc0ddbdc299e6655195b3a7d288 (diff)
new codes handling
persistent connection (test it please)
Diffstat (limited to 'server')
-rw-r--r--server/proxy_ui_server.workspace2
-rw-r--r--server/server/main.cpp133
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;
}