summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-11-15 08:07:26 +0200
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2011-11-15 08:07:26 +0200
commit5861309ceb8474cf0cdb4d29b2e3a0e76518a9aa (patch)
treedb28523cd2bd0fccbce4fc7ae894d6832125ea10
parente853252cc50fee0a994b97f2e62c7d2cb6e3734e (diff)
request code handling fix
-rw-r--r--server/server/main.cpp94
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);