From a884fbe1c98e91d8922ac3017e1179e2edc28ef0 Mon Sep 17 00:00:00 2001 From: fujuntang <fujuntang@smartai.com> Date: 星期二, 31 八月 2021 08:48:12 +0800 Subject: [PATCH] Change the prototype to keep the same with the declaration. --- src/bh_api.cpp | 46 ++++++++++++++++++++++++++++------------------ 1 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/bh_api.cpp b/src/bh_api.cpp index 9875cfa..c6519dc 100644 --- a/src/bh_api.cpp +++ b/src/bh_api.cpp @@ -906,7 +906,7 @@ } #if defined(PRO_DE_SERIALIZE) -int BHPublish(const char *msgpub, const char msgpub_len, const int timeout_ms) +int BHPublish(const char *msgpub, const int msgpub_len, const int timeout_ms) #else int BHPublish(const char *topic, const char *content, const int timeout_ms) #endif @@ -1275,6 +1275,12 @@ int sec, nsec; char topics_buf[MAX_STR_LEN] = { 0x00 }; + struct _RequestReply + { + std::string proc_id; + std::string data; + }rr; + #if defined(PRO_DE_SERIALIZE) struct _BHAddress { @@ -1289,7 +1295,7 @@ const char *topic; const char *data; }_input1; - + ::bhome_msg::BHAddress input0; ::bhome_msg::MsgRequestTopic input1; if (!input0.ParseFromArray(remote, remote_len) || !input1.ParseFromArray(request, request_len)) { @@ -1389,12 +1395,6 @@ memset(errString, 0x00, sizeof(errString)); strncpy(errString, bus_strerror(rv), sizeof(errString)); - - struct _RequestReply - { - std::string proc_id; - std::string data; - }rr; if (rv == 0) { memset(topics_buf, 0x00, sizeof(topics_buf)); @@ -1408,16 +1408,6 @@ memset(topics_buf, 0x00, sizeof(topics_buf)); memcpy(topics_buf, buf, size); rr.data = topics_buf; - -#if defined(PRO_DE_SERIALIZE) - ::bhome_msg::MsgRequestTopicReply mrt; - mrt.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); - mrt.mutable_errmsg()->set_errstring(errString); - mrt.set_data(rr.data.data()); - *reply_len = mrt.ByteSizeLong(); - *reply = malloc(*reply_len); - mrt.SerializePartialToArray(*reply, *reply_len); -#endif } pthread_mutex_unlock(&mutex); @@ -1429,6 +1419,26 @@ strncpy(errString, bus_strerror(rv), sizeof(errString)); } +#if defined(PRO_DE_SERIALIZE) + ::bhome_msg::MsgRequestTopicReply mrt; + mrt.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); + mrt.mutable_errmsg()->set_errstring(errString); + mrt.set_data(rr.data.data()); + *reply_len = mrt.ByteSizeLong(); + *reply = malloc(*reply_len); + mrt.SerializePartialToArray(*reply, *reply_len); +#else + if (rv > 0) { + min = strlen(errString) + 1; + buf = malloc(min); + memcpy(buf, errString, strlen(errString)); + *((char *)buf + min - 1) = '\0'; + + *reply = buf; + *reply_len = min; + } +#endif + if (rv == 0) return true; -- Gitblit v1.8.0