summaryrefslogtreecommitdiff
path: root/proto_lib/packet.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2013-02-12 21:34:09 +0200
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2013-02-12 21:34:09 +0200
commit85a13d70cc5249e2f583bb16f0914646aefe4fe6 (patch)
tree3c83832a146120a8ec8f026ab97af2698936e72c /proto_lib/packet.cpp
parent1d41574c6e8e7bbf3705645feb429df6281ccb83 (diff)
server and shell exec module should work now
TODO: implement basic protocol support in client
Diffstat (limited to 'proto_lib/packet.cpp')
-rw-r--r--proto_lib/packet.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/proto_lib/packet.cpp b/proto_lib/packet.cpp
index 0ed3150..92272a8 100644
--- a/proto_lib/packet.cpp
+++ b/proto_lib/packet.cpp
@@ -271,11 +271,18 @@ packet *packet::serv_make_command_reply_packet(std::string &str, status s)
pack_serv_header(v);
pack_buffer(type_command, sizeof(type_command), v);
v.push_back(s);
- if(!str.empty())
- {
- for(size_t i = 0; i < str.length(); i++)
- v.push_back(str[i]);
- }
+ pack_buffer(str, v);
+ pack_buffer(proto_footer, sizeof(proto_footer), v);
+ return new packet(v);
+}
+
+packet *packet::serv_make_command_reply_packet(std::vector<unsigned char>& data, status s)
+{
+ std::vector<unsigned char> v;
+ pack_serv_header(v);
+ pack_buffer(type_command, sizeof(type_command), v);
+ v.push_back(s);
+ pack_buffer(data, v);
pack_buffer(proto_footer, sizeof(proto_footer), v);
return new packet(v);
}