diff --git a/cpp/protoutils.cc b/cpp/protoutils.cc index 59d8a9e..90b0cea 100644 --- a/cpp/protoutils.cc +++ b/cpp/protoutils.cc @@ -197,18 +197,19 @@ namespace f8 int packlen = msg.ByteSize(); assert(packlen < 1024 * 60); - char* buff = (char*)malloc(sizeof(WSProxyPackHead_S) + packlen); + char* buff = (char*)malloc(sizeof(WSProxyPackHead_C) + packlen); + memset(buff, 0, sizeof(WSProxyPackHead_C)); WSProxyPackHead_C* head = (WSProxyPackHead_C*)buff; head->packlen = packlen; head->msgid = msgid; head->seqid = 0; head->magic_code = MAGIC_CODE; - #if 0 - head->rpc_error_code = 0; - #endif + head->ip_saddr = 0; head->socket_handle = socket_handle; - msg.SerializeToArray(buff + sizeof(WSProxyPackHead_C), packlen); + if (packlen > 0) { + msg.SerializeToArray(buff + sizeof(WSProxyPackHead_C), packlen); + } tcp_client->SendBuff(buff, sizeof(WSProxyPackHead_C) + packlen); free(buff); return sizeof(WSProxyPackHead_C) + packlen;