From f6535ea2ae09b3cdca9104fa19dfff39a47271ea Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期三, 21 四月 2021 18:40:47 +0800
Subject: [PATCH] change api, add request remote address.

---
 src/bh_api.cpp |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/bh_api.cpp b/src/bh_api.cpp
index cdf2e96..8a4b947 100644
--- a/src/bh_api.cpp
+++ b/src/bh_api.cpp
@@ -157,19 +157,23 @@
 	return false;
 }
 
-int BHAsyncRequest(const void *request,
+int BHAsyncRequest(const void *remote,
+                   const int remote_len,
+                   const void *request,
                    const int request_len,
                    void **msg_id,
                    int *msg_id_len)
 {
+	BHAddress dest;
 	MsgRequestTopic req;
-	if (!req.ParseFromArray(request, request_len)) {
+	if (!dest.ParseFromArray(remote, remote_len) ||
+	    !req.ParseFromArray(request, request_len)) {
 		SetLastError(eInvalidInput, "invalid input.");
 		return false;
 	}
 	std::string str_msg_id;
 	MsgRequestTopicReply out_msg;
-	if (ProcNode().ClientAsyncRequest(req, str_msg_id)) {
+	if (ProcNode().ClientAsyncRequest(dest, req, str_msg_id)) {
 		if (!msg_id || !msg_id_len) {
 			return true;
 		}
@@ -184,7 +188,9 @@
 	return false;
 }
 
-int BHRequest(const void *request,
+int BHRequest(const void *remote,
+              const int remote_len,
+              const void *request,
               const int request_len,
               void **proc_id,
               int *proc_id_len,
@@ -192,14 +198,16 @@
               int *reply_len,
               const int timeout_ms)
 {
+	BHAddress dest;
 	MsgRequestTopic req;
-	if (!req.ParseFromArray(request, request_len)) {
+	if (!dest.ParseFromArray(remote, remote_len) ||
+	    !req.ParseFromArray(request, request_len)) {
 		SetLastError(eInvalidInput, "invalid input.");
 		return false;
 	}
 	std::string proc;
 	MsgRequestTopicReply out_msg;
-	if (ProcNode().ClientSyncRequest(req, proc, out_msg, timeout_ms)) {
+	if (ProcNode().ClientSyncRequest(dest, req, proc, out_msg, timeout_ms)) {
 		TmpPtr pproc(proc);
 		if (pproc && PackOutput(out_msg, reply, reply_len)) {
 			pproc.ReleaseTo(proc_id, proc_id_len);

--
Gitblit v1.8.0