diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-15 08:07:26 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2011-11-15 08:07:26 +0200 |
commit | 5861309ceb8474cf0cdb4d29b2e3a0e76518a9aa (patch) | |
tree | db28523cd2bd0fccbce4fc7ae894d6832125ea10 | |
parent | e853252cc50fee0a994b97f2e62c7d2cb6e3734e (diff) |
request code handling fix
-rw-r--r-- | server/server/main.cpp | 94 |
1 files changed, 86 insertions, 8 deletions
diff --git a/server/server/main.cpp b/server/server/main.cpp index 3c9c3d4..b2ad08d 100644 --- a/server/server/main.cpp +++ b/server/server/main.cpp @@ -411,7 +411,46 @@ void session::proto_parser(std::vector<byte>& data) } } break; - case 0x05: //files to del request + case 0x05: //existing files request + { + if(canceled) + { + delete this; + break; + } + logger->lock(); + *logger<< time_str() << ": recieved existing files request from "<<remote_ip << " session " << this_sid <<"\n"; + logger->unlock(); + if(!blacklisted) + { + logger->lock(); + *logger<< time_str() << ": existing files 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() << ": existing files 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: //files to del request { if(canceled) { @@ -429,7 +468,7 @@ void session::proto_parser(std::vector<byte>& data) std::vector<byte> data; data.push_back(0x13); data.push_back(0x13); - data.push_back(0x05); + data.push_back(0x06); //TODO: add data here data.push_back(0x14); data.push_back(0x14); @@ -450,7 +489,7 @@ void session::proto_parser(std::vector<byte>& data) } } break; - case 0x06: //client version request + case 0x07: //client version request { if(canceled) { @@ -468,7 +507,7 @@ void session::proto_parser(std::vector<byte>& data) std::vector<byte> data; data.push_back(0x13); data.push_back(0x13); - data.push_back(0x06); + data.push_back(0x07); //TODO: add data here data.push_back(0x14); data.push_back(0x14); @@ -477,7 +516,7 @@ void session::proto_parser(std::vector<byte>& data) else { logger->lock(); - *logger<< time_str() << ": client version request from "<<remote_ip << " session " << this_sid <<" are denied \n"; + *logger<< time_str() << ": client version from "<<remote_ip << " session " << this_sid <<" are denied \n"; logger->unlock(); std::vector<byte> data; data.push_back(0x13); @@ -489,7 +528,7 @@ void session::proto_parser(std::vector<byte>& data) } } break; - case 0x07: //client binary request + case 0x11: //client binary request { if(canceled) { @@ -507,7 +546,7 @@ void session::proto_parser(std::vector<byte>& data) std::vector<byte> data; data.push_back(0x13); data.push_back(0x13); - data.push_back(0x07); + data.push_back(0x11); //TODO: add data here data.push_back(0x14); data.push_back(0x14); @@ -516,7 +555,46 @@ void session::proto_parser(std::vector<byte>& data) else { logger->lock(); - *logger<< time_str() << ": config request from "<<remote_ip << " session " << this_sid <<" are denied \n"; + *logger<< time_str() << ": client binary 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 0x12: //file upload request + { + if(canceled) + { + delete this; + break; + } + logger->lock(); + *logger<< time_str() << ": recieved file upload request from "<<remote_ip << " session " << this_sid <<"\n"; + logger->unlock(); + if(!blacklisted) + { + logger->lock(); + *logger<< time_str() << ": file upload 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(0x12); + //TODO: add data here + data.push_back(0x14); + data.push_back(0x14); + write_w_response(data); + } + else + { + logger->lock(); + *logger<< time_str() << ": file upload request from "<<remote_ip << " session " << this_sid <<" are denied \n"; logger->unlock(); std::vector<byte> data; data.push_back(0x13); |