diff options
Diffstat (limited to 'proto_lib/packet.cpp')
-rw-r--r-- | proto_lib/packet.cpp | 17 |
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); } |