diff --git a/include/ntcore_c.h b/include/ntcore_c.h index 1d2f3d2e9b..d232230b2f 100644 --- a/include/ntcore_c.h +++ b/include/ntcore_c.h @@ -152,7 +152,6 @@ struct NT_RpcDefinition { struct NT_RpcCallInfo { unsigned int rpc_id; unsigned int call_uid; - struct NT_ConnectionInfo conn_info; struct NT_String name; struct NT_String params; }; @@ -311,8 +310,7 @@ void NT_SetRpcServerOnStart(void (*on_start)(void *data), void *data); void NT_SetRpcServerOnExit(void (*on_exit)(void *data), void *data); typedef char *(*NT_RpcCallback)(void *data, const char *name, size_t name_len, - const char *params, size_t params_len, - const struct NT_ConnectionInfo* conn_info, + const char *params, size_t params_len, size_t *results_len); void NT_CreateRpc(const char *name, size_t name_len, const char *def, diff --git a/include/ntcore_cpp.h b/include/ntcore_cpp.h index 6779064777..3376c90290 100644 --- a/include/ntcore_cpp.h +++ b/include/ntcore_cpp.h @@ -79,7 +79,6 @@ struct RpcDefinition { struct RpcCallInfo { unsigned int rpc_id; unsigned int call_uid; - ConnectionInfo conn_info; std::string name; std::string params; }; @@ -225,8 +224,7 @@ constexpr double kTimeout_Indefinite = -1; void SetRpcServerOnStart(std::function on_start); void SetRpcServerOnExit(std::function on_exit); -typedef std::function +typedef std::function RpcCallback; void CreateRpc(StringRef name, StringRef def, RpcCallback callback); diff --git a/src/RpcServer.cpp b/src/RpcServer.cpp index b46fb82e9f..810b35e75c 100644 --- a/src/RpcServer.cpp +++ b/src/RpcServer.cpp @@ -47,17 +47,15 @@ void RpcServer::Stop() { m_owner.Stop(); } void RpcServer::ProcessRpc(StringRef name, std::shared_ptr msg, RpcCallback func, unsigned int conn_id, - const ConnectionInfo& conn_info, SendMsgFunc send_response) { if (func) { auto thr = m_owner.GetThread(); if (!thr) return; - thr->m_call_queue.emplace(name, msg, func, conn_id, conn_info, - send_response); + thr->m_call_queue.emplace(name, msg, func, conn_id, send_response); thr->m_cond.notify_one(); } else { std::lock_guard lock(m_mutex); - m_poll_queue.emplace(name, msg, func, conn_id, conn_info, send_response); + m_poll_queue.emplace(name, msg, func, conn_id, send_response); m_poll_cond.notify_one(); } } @@ -98,7 +96,6 @@ bool RpcServer::PollRpc(bool blocking, double time_out, RpcCallInfo* call_info) call_uid = item.msg->seq_num_uid(); call_info->rpc_id = item.msg->id(); call_info->call_uid = call_uid; - call_info->conn_info = item.conn_info; call_info->name = std::move(item.name); call_info->params = item.msg->str(); m_response_map.insert(std::make_pair(std::make_pair(item.msg->id(), call_uid), @@ -141,7 +138,7 @@ void RpcServer::Thread::Main() { // Don't hold mutex during callback execution! lock.unlock(); - auto result = item.func(item.name, item.msg->str(), item.conn_info); + auto result = item.func(item.name, item.msg->str()); item.send_response(Message::RpcResponse(item.msg->id(), item.msg->seq_num_uid(), result)); lock.lock(); diff --git a/src/RpcServer.h b/src/RpcServer.h index a1971d8473..d12bb6ad8c 100644 --- a/src/RpcServer.h +++ b/src/RpcServer.h @@ -41,7 +41,6 @@ class RpcServer { void ProcessRpc(StringRef name, std::shared_ptr msg, RpcCallback func, unsigned int conn_id, - const ConnectionInfo& conn_info, SendMsgFunc send_response); bool PollRpc(bool blocking, RpcCallInfo* call_info); @@ -57,20 +56,17 @@ class RpcServer { struct RpcCall { RpcCall(StringRef name_, std::shared_ptr msg_, RpcCallback func_, - unsigned int conn_id_, const ConnectionInfo& conn_info_, - SendMsgFunc send_response_) + unsigned int conn_id_, SendMsgFunc send_response_) : name(name_), msg(msg_), func(func_), conn_id(conn_id_), - conn_info(conn_info_), send_response(send_response_) {} std::string name; std::shared_ptr msg; RpcCallback func; unsigned int conn_id; - ConnectionInfo conn_info; SendMsgFunc send_response; }; diff --git a/src/Storage.cpp b/src/Storage.cpp index 375a0d15e1..46f0ff34fb 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -346,20 +346,8 @@ void Storage::ProcessIncoming(std::shared_ptr msg, DEBUG("received RPC call to non-RPC entry"); return; } - ConnectionInfo conn_info; - auto c = conn_weak.lock(); - if (c) { - conn_info = c->info(); - } else { - conn_info.remote_id = "Unknown"; - conn_info.remote_ip = "Unknown"; - conn_info.remote_port = 0; - conn_info.last_update = 0; - conn_info.protocol_version = 0; - } m_rpc_server.ProcessRpc(entry->name, msg, entry->rpc_callback, - conn->uid(), conn_info, - [=](std::shared_ptr msg) { + conn->uid(), [=](std::shared_ptr msg) { auto c = conn_weak.lock(); if (c) c->QueueOutgoing(msg); }); @@ -1404,15 +1392,8 @@ unsigned int Storage::CallRpc(StringRef name, StringRef params) { // gracefully anyway. auto rpc_callback = entry->rpc_callback; lock.unlock(); - ConnectionInfo conn_info; - conn_info.remote_id = "Server"; - conn_info.remote_ip = "localhost"; - conn_info.remote_port = 0; - conn_info.last_update = 0; - conn_info.protocol_version = 0x3000; m_rpc_server.ProcessRpc( - name, msg, rpc_callback, 0xffffU, conn_info, - [this](std::shared_ptr msg) { + name, msg, rpc_callback, 0xffffU, [this](std::shared_ptr msg) { std::lock_guard lock(m_mutex); m_rpc_results.insert(std::make_pair( std::make_pair(msg->id(), msg->seq_num_uid()), msg->str())); diff --git a/src/ntcore_c.cpp b/src/ntcore_c.cpp index 028984c99c..d7d2cb2018 100644 --- a/src/ntcore_c.cpp +++ b/src/ntcore_c.cpp @@ -68,7 +68,6 @@ static void ConvertToC(const RpcDefinition& in, NT_RpcDefinition* out) { static void ConvertToC(const RpcCallInfo& in, NT_RpcCallInfo* out) { out->rpc_id = in.rpc_id; out->call_uid = in.call_uid; - ConvertToC(in.conn_info, &out->conn_info); ConvertToC(in.name, &out->name); ConvertToC(in.params, &out->params); } @@ -235,17 +234,12 @@ void NT_CreateRpc(const char *name, size_t name_len, const char *def, size_t def_len, void *data, NT_RpcCallback callback) { nt::CreateRpc( StringRef(name, name_len), StringRef(def, def_len), - [=](StringRef name, StringRef params, - const ConnectionInfo& conn_info) -> std::string { - NT_ConnectionInfo conn_c; - ConvertToC(conn_info, &conn_c); + [=](StringRef name, StringRef params) -> std::string { size_t results_len; char* results_c = callback(data, name.data(), name.size(), - params.data(), params.size(), - &conn_c, &results_len); + params.data(), params.size(), &results_len); std::string results(results_c, results_len); std::free(results_c); - DisposeConnectionInfo(&conn_c); return results; }); } @@ -527,7 +521,6 @@ void NT_DisposeRpcDefinition(NT_RpcDefinition *def) { } void NT_DisposeRpcCallInfo(NT_RpcCallInfo *call_info) { - DisposeConnectionInfo(&call_info->conn_info); NT_DisposeString(&call_info->name); NT_DisposeString(&call_info->params); } diff --git a/test/rpc_local.cpp b/test/rpc_local.cpp index bec06fe9ef..20e776ede4 100644 --- a/test/rpc_local.cpp +++ b/test/rpc_local.cpp @@ -4,8 +4,7 @@ #include "ntcore.h" -std::string callback1(nt::StringRef name, nt::StringRef params_str, - const nt::ConnectionInfo& conn_info) { +std::string callback1(nt::StringRef name, nt::StringRef params_str) { auto params = nt::UnpackRpcValues(params_str, NT_DOUBLE); if (params.empty()) { std::fputs("empty params?\n", stderr); diff --git a/test/rpc_speed.cpp b/test/rpc_speed.cpp index e8513a9dcc..923df3d462 100644 --- a/test/rpc_speed.cpp +++ b/test/rpc_speed.cpp @@ -5,8 +5,7 @@ #include "ntcore.h" -std::string callback1(nt::StringRef name, nt::StringRef params_str, - const nt::ConnectionInfo& conn_info) { +std::string callback1(nt::StringRef name, nt::StringRef params_str) { auto params = nt::UnpackRpcValues(params_str, NT_DOUBLE); if (params.empty()) { std::fputs("empty params?\n", stderr);