From 16935f4aebffdd1b6580b844391a0aa0f4f3012b Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 22 四月 2024 10:29:12 +0800
Subject: [PATCH] bug fixed

---
 src/bn_api.cpp |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/bn_api.cpp b/src/bn_api.cpp
index 50aec06..0b39f61 100644
--- a/src/bn_api.cpp
+++ b/src/bn_api.cpp
@@ -97,7 +97,7 @@
     if (!topics || topics_len <= 0) return false;
 
     const auto& url = get_url(URLRegTopic);
-    if (url.empty()) {
+    if (!url) {
         set_last_error("BHRegisterTopics url empty");
         return false;
     }
@@ -136,7 +136,7 @@
     if (!topic || topic_len <= 0) return false;
 
     const auto& url = get_url(URLQueryTopic);
-    if (url.empty()) {
+    if (!url) {
         set_last_error("BHQueryTopicAddress url empty");
         return false;
     }
@@ -165,7 +165,7 @@
     // if (!query || query_len <= 0) return false;
 
     const auto& url = get_url(URLQueryProcs);
-    if (url.empty()) {
+    if (!url) {
         set_last_error("BHQueryProcs url empty");
         return false;
     }
@@ -247,7 +247,7 @@
 int BHSubscribeTopics(const void *topics, const int topics_len, void **reply, int *reply_len, const int timeout_ms)
 {
     const auto& url = get_url(URLSubLocal);
-    if (url.empty()) {
+    if (!url) {
         set_last_error("BHSubscribeTopics url empty");
         return false;
     }
@@ -257,7 +257,7 @@
 int BHSubscribeNetTopics(const void *topics, const int topics_len, void **reply, int *reply_len, const int timeout_ms)
 {
     const auto& url = get_url(URLSubNet);
-    if (url.empty()) {
+    if (!url) {
         set_last_error("BHSubscribeNetTopics url empty");
         return false;
     }
@@ -272,6 +272,9 @@
               int *msgpub_len,
               const int timeout_ms)
 {
+    if (!proc_id && !proc_id_len && !msgpub && !msgpub_len)
+        return subscribe_read(NULL, NULL, timeout_ms) == 0;
+
     string topic, msg;
     auto ret = subscribe_read(&topic, &msg, timeout_ms);
     // printf("BHReadSub msg topic %s length %lu\n", topic.c_str(), msg.length());
@@ -391,6 +394,9 @@
                   void **src,
                   const int timeout_ms)
 {
+    if (!proc_id && !proc_id_len && !request && !request_len && !src)
+        return read_request(NULL, NULL, timeout_ms) == 0;
+
     string msg;
     auto ret = read_request(src, &msg, timeout_ms);
     if (ret < 0) return false;

--
Gitblit v1.8.0