From 777333ff834744ac5665fa9abe5ec6373d25cda8 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 01 三月 2023 09:22:30 +0800
Subject: [PATCH] bug fixed ps_sub thread join

---
 cbhomeclient.cpp |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/cbhomeclient.cpp b/cbhomeclient.cpp
index b2d084a..0963c4b 100644
--- a/cbhomeclient.cpp
+++ b/cbhomeclient.cpp
@@ -10,6 +10,7 @@
 #include "fixed_q.h"
 
 #include "3rdparty/bus_nng/interface_bus_api.h"
+#include "3rdparty/bus_nng/bn_api.h"
 
 #include "bhome_msg.pb.h"
 
@@ -332,7 +333,7 @@
     return false;
 }
 
-int bus_client_reply_msg(void* handle, void* src, const struct crepmsg* msg){
+int bus_client_reply(void* handle, void* src, const struct crepmsg* msg){
 
     MsgRequestTopicReply msgR;
     auto err = msgR.mutable_errmsg();
@@ -355,7 +356,15 @@
     void* rep = NULL;
     int repl = 0;
     auto msg = to_bus<4,5>(ptr(handle), bus_query_procs, pbaddr.data(), pbaddr.size(),
-        pbtopic.data(), pbtopic.size(), &rep, &repl, sndto);
+       pbtopic.data(), pbtopic.size(), &rep, &repl, sndto);
+
+    if (msg.empty()) return NULL;
+
+    // bug 宸蹭慨澶嶏紝 鍦� bus_nng 涓�
+    // bus_query_procs 鑾峰彇鏁版嵁澶辫触, 鏆傛椂鏀圭敤BHQueryProcs
+    // if (!BHQueryProcs(pbaddr.data(), pbaddr.size(), pbtopic.data(), pbtopic.size(), &rep, &repl, sndto)) {
+    //     return NULL;
+    // }
 
     MsgQueryProcReply msgR;
     msgR.ParseFromArray(rep, repl);
@@ -370,6 +379,7 @@
         memcpy(id, p.proc().proc_id().data(), idl);
         procs[i] = cqueryprocs{ .id = id, .idl = idl, .online = p.online() };
     }
+
     return procs;
 }
 
@@ -379,11 +389,11 @@
     pbmsg.set_topic(topic, topicl);
     pbmsg.set_data(data, size);
     auto pbstr = pbmsg.SerializeAsString();
-    return bus_client_pubmsg(handle, pbstr.data(), pbstr.size());
+    return bus_client_publish_msg(handle, pbstr.data(), pbstr.size());
 }
 
 // test
-int bus_client_pubmsg(void* handle, const char* data, const size_t size){
+int bus_client_publish_msg(void* handle, const char* data, const size_t size){
     client* cli = ptr(handle);
     return bus_publish(cli->bus, data, size, 100);
 }

--
Gitblit v1.8.0