This is an automated email from the ASF dual-hosted git repository.
jdanek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/main by this push:
new e05beea DISPATCH-2272 Mark all functions called from Python with
QD_EXPORT (#1413)
e05beea is described below
commit e05beeaf78ef655b1e99749b32d28738abd486ff
Author: Jiri Danek <[email protected]>
AuthorDate: Sun Oct 31 11:38:20 2021 +0100
DISPATCH-2272 Mark all functions called from Python with QD_EXPORT (#1413)
---
include/qpid/dispatch/connection_manager.h | 2 +-
include/qpid/dispatch/error.h | 6 ++++--
include/qpid/dispatch/internal/export.h | 23 +++++++++++++++++++++++
src/adaptors/http_common.h | 8 ++++----
src/adaptors/tcp_adaptor.c | 8 ++++----
src/alloc_pool.c | 3 ++-
src/connection_manager.c | 18 +++++++++---------
src/dispatch.c | 24 ++++++++++++------------
src/dispatch_private.h | 14 +++++++-------
src/entity_cache.c | 4 ++--
src/log.c | 7 +++----
src/policy.c | 2 +-
src/router_agent.c | 2 +-
src/router_node.c | 2 +-
14 files changed, 74 insertions(+), 49 deletions(-)
diff --git a/include/qpid/dispatch/connection_manager.h
b/include/qpid/dispatch/connection_manager.h
index 79fb881..68b3b6c 100644
--- a/include/qpid/dispatch/connection_manager.h
+++ b/include/qpid/dispatch/connection_manager.h
@@ -54,6 +54,6 @@ void qd_connection_manager_free(qd_connection_manager_t *cm);
*
* @param qd The dispatch handle returned by qd_dispatch.
*/
-void qd_connection_manager_start(qd_dispatch_t *qd);
+QD_EXPORT void qd_connection_manager_start(qd_dispatch_t *qd);
#endif
diff --git a/include/qpid/dispatch/error.h b/include/qpid/dispatch/error.h
index 41d50e0..0bbce40 100644
--- a/include/qpid/dispatch/error.h
+++ b/include/qpid/dispatch/error.h
@@ -21,6 +21,8 @@
#include "qpid/dispatch/enum.h"
+#include <qpid/dispatch/internal/export.h>
+
#include <stdarg.h>
/** @file
@@ -78,12 +80,12 @@ qd_error_t qd_error_clear();
/**
* @return Thread local error message. Includes text for error code.
*/
-const char* qd_error_message();
+QD_EXPORT const char* qd_error_message();
/**
*@return Thread local error code
*/
-qd_error_t qd_error_code();
+QD_EXPORT qd_error_t qd_error_code();
/** Maximum length of a qd_error_message, useful for temporary buffers. */
extern const int QD_ERROR_MAX;
diff --git a/include/qpid/dispatch/internal/export.h
b/include/qpid/dispatch/internal/export.h
new file mode 100644
index 0000000..e80d69d
--- /dev/null
+++ b/include/qpid/dispatch/internal/export.h
@@ -0,0 +1,23 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#define QD_EXPORT __attribute__((visibility("default"))) __attribute__((used))
diff --git a/src/adaptors/http_common.h b/src/adaptors/http_common.h
index 8ba8365..cef654d 100644
--- a/src/adaptors/http_common.h
+++ b/src/adaptors/http_common.h
@@ -90,12 +90,12 @@ void qd_http_connector_decref(qd_http_connector_t* c);
// Management Entity Interfaces (see HttpListenerEntity and
HttpConnectorEntity in agent.py)
//
-qd_http_listener_t *qd_dispatch_configure_http_listener(qd_dispatch_t *qd,
qd_entity_t *entity);
-void qd_dispatch_delete_http_listener(qd_dispatch_t *qd, void *impl);
+QD_EXPORT qd_http_listener_t
*qd_dispatch_configure_http_listener(qd_dispatch_t *qd, qd_entity_t *entity);
+QD_EXPORT void qd_dispatch_delete_http_listener(qd_dispatch_t *qd, void *impl);
qd_error_t qd_entity_refresh_httpListener(qd_entity_t* entity, void *impl);
-qd_http_connector_t *qd_dispatch_configure_http_connector(qd_dispatch_t *qd,
qd_entity_t *entity);
-void qd_dispatch_delete_http_connector(qd_dispatch_t *qd, void *impl);
+QD_EXPORT qd_http_connector_t
*qd_dispatch_configure_http_connector(qd_dispatch_t *qd, qd_entity_t *entity);
+QD_EXPORT void qd_dispatch_delete_http_connector(qd_dispatch_t *qd, void
*impl);
qd_error_t qd_entity_refresh_httpConnector(qd_entity_t* entity, void *impl);
// Management interfaces for retrieval of HttpRequestInfo entities
diff --git a/src/adaptors/tcp_adaptor.c b/src/adaptors/tcp_adaptor.c
index 2b8d109..e97b29b 100644
--- a/src/adaptors/tcp_adaptor.c
+++ b/src/adaptors/tcp_adaptor.c
@@ -1231,7 +1231,7 @@ static bool tcp_listener_listen(qd_tcp_listener_t *li) {
return li->pn_listener;
}
-qd_tcp_listener_t *qd_dispatch_configure_tcp_listener(qd_dispatch_t *qd,
qd_entity_t *entity)
+QD_EXPORT qd_tcp_listener_t *qd_dispatch_configure_tcp_listener(qd_dispatch_t
*qd, qd_entity_t *entity)
{
qd_tcp_listener_t *li = qd_tcp_listener(qd->server);
if (!li || load_bridge_config(qd, li->config, entity, true) !=
QD_ERROR_NONE) {
@@ -1246,7 +1246,7 @@ qd_tcp_listener_t
*qd_dispatch_configure_tcp_listener(qd_dispatch_t *qd, qd_enti
return li;
}
-void qd_dispatch_delete_tcp_listener(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_dispatch_delete_tcp_listener(qd_dispatch_t *qd, void *impl)
{
qd_tcp_listener_t *li = (qd_tcp_listener_t*) impl;
if (li) {
@@ -1304,7 +1304,7 @@ void qd_tcp_connector_decref(qd_tcp_connector_t* c)
}
}
-qd_tcp_connector_t *qd_dispatch_configure_tcp_connector(qd_dispatch_t *qd,
qd_entity_t *entity)
+QD_EXPORT qd_tcp_connector_t
*qd_dispatch_configure_tcp_connector(qd_dispatch_t *qd, qd_entity_t *entity)
{
qd_tcp_connector_t *c = qd_tcp_connector(qd->server);
if (!c || load_bridge_config(qd, c->config, entity, true) !=
QD_ERROR_NONE) {
@@ -1326,7 +1326,7 @@ static void close_egress_dispatcher(qdr_tcp_connection_t
*context)
qd_timer_schedule(context->activate_timer, 0);
}
-void qd_dispatch_delete_tcp_connector(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_dispatch_delete_tcp_connector(qd_dispatch_t *qd, void *impl)
{
qd_tcp_connector_t *ct = (qd_tcp_connector_t*) impl;
if (ct) {
diff --git a/src/alloc_pool.c b/src/alloc_pool.c
index 971a2df..5087e9e 100644
--- a/src/alloc_pool.c
+++ b/src/alloc_pool.c
@@ -668,7 +668,8 @@ void qd_alloc_finalize(void)
}
-qd_error_t qd_entity_refresh_allocator(qd_entity_t* entity, void *impl) {
+QD_EXPORT qd_error_t qd_entity_refresh_allocator(qd_entity_t* entity, void
*impl)
+{
qd_alloc_type_t *alloc_type = (qd_alloc_type_t*) impl;
if (qd_entity_set_string(entity, "typeName", alloc_type->desc->type_name)
== 0 &&
qd_entity_set_long(entity, "typeSize", alloc_type->desc->total_size)
== 0 &&
diff --git a/src/connection_manager.c b/src/connection_manager.c
index 905e335..02e3626 100644
--- a/src/connection_manager.c
+++ b/src/connection_manager.c
@@ -593,7 +593,7 @@ static bool config_sasl_plugin_free(qd_connection_manager_t
*cm, qd_config_sasl_
}
-qd_config_ssl_profile_t *qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd,
qd_entity_t *entity)
+QD_EXPORT qd_config_ssl_profile_t
*qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd, qd_entity_t *entity)
{
qd_error_clear();
qd_connection_manager_t *cm = qd->connection_manager;
@@ -651,7 +651,7 @@ qd_config_ssl_profile_t
*qd_dispatch_configure_ssl_profile(qd_dispatch_t *qd, qd
return 0;
}
-qd_config_sasl_plugin_t *qd_dispatch_configure_sasl_plugin(qd_dispatch_t *qd,
qd_entity_t *entity)
+QD_EXPORT qd_config_sasl_plugin_t
*qd_dispatch_configure_sasl_plugin(qd_dispatch_t *qd, qd_entity_t *entity)
{
qd_error_clear();
qd_connection_manager_t *cm = qd->connection_manager;
@@ -708,7 +708,7 @@ static void log_config(qd_log_source_t *log,
qd_server_config_t *c, const char *
}
-qd_listener_t *qd_dispatch_configure_listener(qd_dispatch_t *qd, qd_entity_t
*entity)
+QD_EXPORT qd_listener_t *qd_dispatch_configure_listener(qd_dispatch_t *qd,
qd_entity_t *entity)
{
qd_connection_manager_t *cm = qd->connection_manager;
qd_listener_t *li = qd_server_listener(qd->server);
@@ -737,7 +737,7 @@ qd_listener_t *qd_dispatch_configure_listener(qd_dispatch_t
*qd, qd_entity_t *en
}
-qd_error_t qd_entity_refresh_listener(qd_entity_t* entity, void *impl)
+QD_EXPORT qd_error_t qd_entity_refresh_listener(qd_entity_t* entity, void
*impl)
{
return QD_ERROR_NONE;
}
@@ -886,7 +886,7 @@ qd_error_t qd_entity_refresh_connector(qd_entity_t* entity,
void *impl)
}
-qd_connector_t *qd_dispatch_configure_connector(qd_dispatch_t *qd, qd_entity_t
*entity)
+QD_EXPORT qd_connector_t *qd_dispatch_configure_connector(qd_dispatch_t *qd,
qd_entity_t *entity)
{
qd_connection_manager_t *cm = qd->connection_manager;
qd_connector_t *ct = qd_server_connector(qd->server);
@@ -1038,7 +1038,7 @@ void qd_connection_manager_start(qd_dispatch_t *qd)
}
-void qd_connection_manager_delete_listener(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_connection_manager_delete_listener(qd_dispatch_t *qd, void
*impl)
{
qd_listener_t *li = (qd_listener_t*) impl;
if (li) {
@@ -1054,13 +1054,13 @@ void
qd_connection_manager_delete_listener(qd_dispatch_t *qd, void *impl)
}
-void qd_connection_manager_delete_ssl_profile(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_connection_manager_delete_ssl_profile(qd_dispatch_t *qd,
void *impl)
{
qd_config_ssl_profile_t *ssl_profile = (qd_config_ssl_profile_t*) impl;
config_ssl_profile_free(qd->connection_manager, ssl_profile);
}
-void qd_connection_manager_delete_sasl_plugin(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_connection_manager_delete_sasl_plugin(qd_dispatch_t *qd,
void *impl)
{
qd_config_sasl_plugin_t *sasl_plugin = (qd_config_sasl_plugin_t*) impl;
config_sasl_plugin_free(qd->connection_manager, sasl_plugin);
@@ -1077,7 +1077,7 @@ static void deferred_close(void *context, bool discard) {
// threading: called by management thread while I/O thread may be
// referencing the qd_connector_t via the qd_connection_t
//
-void qd_connection_manager_delete_connector(qd_dispatch_t *qd, void *impl)
+QD_EXPORT void qd_connection_manager_delete_connector(qd_dispatch_t *qd, void
*impl)
{
qd_connector_t *ct = (qd_connector_t*) impl;
if (ct) {
diff --git a/src/dispatch.c b/src/dispatch.c
index d7d6a3a..f19339b 100644
--- a/src/dispatch.c
+++ b/src/dispatch.c
@@ -241,25 +241,25 @@ qd_error_t qd_dispatch_configure_address(qd_dispatch_t
*qd, qd_entity_t *entity)
return qd_error_code();
}
-qd_error_t qd_dispatch_configure_link_route(qd_dispatch_t *qd, qd_entity_t
*entity) {
+QD_EXPORT qd_error_t qd_dispatch_configure_link_route(qd_dispatch_t *qd,
qd_entity_t *entity) {
if (!qd->router) return qd_error(QD_ERROR_NOT_FOUND, "No router
available");
qd_router_configure_link_route(qd->router, entity);
return qd_error_code();
}
-qd_error_t qd_dispatch_configure_auto_link(qd_dispatch_t *qd, qd_entity_t
*entity) {
+QD_EXPORT qd_error_t qd_dispatch_configure_auto_link(qd_dispatch_t *qd,
qd_entity_t *entity) {
if (!qd->router) return qd_error(QD_ERROR_NOT_FOUND, "No router
available");
qd_router_configure_auto_link(qd->router, entity);
return qd_error_code();
}
-qd_error_t qd_dispatch_configure_exchange(qd_dispatch_t *qd, qd_entity_t
*entity) {
+QD_EXPORT qd_error_t qd_dispatch_configure_exchange(qd_dispatch_t *qd,
qd_entity_t *entity) {
if (!qd->router) return qd_error(QD_ERROR_NOT_FOUND, "No router
available");
qd_router_configure_exchange(qd->router, entity);
return qd_error_code();
}
-qd_error_t qd_dispatch_configure_binding(qd_dispatch_t *qd, qd_entity_t
*entity) {
+QD_EXPORT qd_error_t qd_dispatch_configure_binding(qd_dispatch_t *qd,
qd_entity_t *entity) {
if (!qd->router) return qd_error(QD_ERROR_NOT_FOUND, "No router
available");
qd_router_configure_binding(qd->router, entity);
return qd_error_code();
@@ -287,23 +287,23 @@ qd_error_t
qd_dispatch_register_display_name_service(qd_dispatch_t *qd, void *ob
}
-long qd_dispatch_policy_c_counts_alloc()
+QD_EXPORT long qd_dispatch_policy_c_counts_alloc()
{
return qd_policy_c_counts_alloc();
}
-void qd_dispatch_policy_c_counts_free(long ccounts)
+QD_EXPORT void qd_dispatch_policy_c_counts_free(long ccounts)
{
qd_policy_c_counts_free(ccounts);
}
-void qd_dispatch_policy_c_counts_refresh(long ccounts, qd_entity_t *entity)
+QD_EXPORT void qd_dispatch_policy_c_counts_refresh(long ccounts, qd_entity_t
*entity)
{
qd_policy_c_counts_refresh(ccounts, entity);
}
-bool qd_dispatch_policy_host_pattern_add(qd_dispatch_t *qd, void *py_obj)
+QD_EXPORT bool qd_dispatch_policy_host_pattern_add(qd_dispatch_t *qd, void
*py_obj)
{
char *hostPattern = py_string_2_c(py_obj);
bool rc = qd_policy_host_pattern_add(qd->policy, hostPattern);
@@ -311,14 +311,14 @@ bool qd_dispatch_policy_host_pattern_add(qd_dispatch_t
*qd, void *py_obj)
return rc;
}
-void qd_dispatch_policy_host_pattern_remove(qd_dispatch_t *qd, void *py_obj)
+QD_EXPORT void qd_dispatch_policy_host_pattern_remove(qd_dispatch_t *qd, void
*py_obj)
{
char *hostPattern = py_string_2_c(py_obj);
qd_policy_host_pattern_remove(qd->policy, hostPattern);
free(hostPattern);
}
-char * qd_dispatch_policy_host_pattern_lookup(qd_dispatch_t *qd, void *py_obj)
+QD_EXPORT char * qd_dispatch_policy_host_pattern_lookup(qd_dispatch_t *qd,
void *py_obj)
{
char *hostPattern = py_string_2_c(py_obj);
char *rc = qd_policy_host_pattern_lookup(qd->policy, hostPattern);
@@ -387,8 +387,8 @@ void qd_dispatch_free(qd_dispatch_t *qd)
}
-void qd_dispatch_router_lock(qd_dispatch_t *qd) {
sys_mutex_lock(qd->router->lock); }
-void qd_dispatch_router_unlock(qd_dispatch_t *qd) {
sys_mutex_unlock(qd->router->lock); }
+QD_EXPORT void qd_dispatch_router_lock(qd_dispatch_t *qd) {
sys_mutex_lock(qd->router->lock); }
+QD_EXPORT void qd_dispatch_router_unlock(qd_dispatch_t *qd) {
sys_mutex_unlock(qd->router->lock); }
qdr_core_t* qd_dispatch_router_core(qd_dispatch_t *qd) {
return qd->router->router_core;
diff --git a/src/dispatch_private.h b/src/dispatch_private.h
index 21fcc61..d09daec 100644
--- a/src/dispatch_private.h
+++ b/src/dispatch_private.h
@@ -75,7 +75,7 @@ qd_dispatch_t *qd_dispatch_get_dispatch();
* @param qd The dispatch handle returned by qd_dispatch.
* @param entity The configuration entity.
*/
-qd_error_t qd_dispatch_configure_router(qd_dispatch_t *qd, qd_entity_t
*entity);
+QD_EXPORT qd_error_t qd_dispatch_configure_router(qd_dispatch_t *qd,
qd_entity_t *entity);
/**
* Prepare Dispatch for operation. This must be called prior to
@@ -83,12 +83,12 @@ qd_error_t qd_dispatch_configure_router(qd_dispatch_t *qd,
qd_entity_t *entity);
*
* @param qd The dispatch handle returned by qd_dispatch
*/
-qd_error_t qd_dispatch_prepare(qd_dispatch_t *qd);
+QD_EXPORT qd_error_t qd_dispatch_prepare(qd_dispatch_t *qd);
/**
* Configure an address, must be called after qd_dispatch_prepare
*/
-qd_error_t qd_dispatch_configure_address(qd_dispatch_t *qd, qd_entity_t
*entity);
+QD_EXPORT qd_error_t qd_dispatch_configure_address(qd_dispatch_t *qd,
qd_entity_t *entity);
/**
* Configure a route, must be called after qd_dispatch_prepare
@@ -98,17 +98,17 @@ qd_error_t qd_dispatch_configure_route(qd_dispatch_t *qd,
qd_entity_t *entity);
/**
* Configure security policy, must be called after qd_dispatch_prepare
*/
-qd_error_t qd_dispatch_configure_policy(qd_dispatch_t *qd, qd_entity_t
*entity);
+QD_EXPORT qd_error_t qd_dispatch_configure_policy(qd_dispatch_t *qd,
qd_entity_t *entity);
/**
* Configure security policy manager, must be called after qd_dispatch_prepare
*/
-qd_error_t qd_dispatch_register_policy_manager(qd_dispatch_t *qd, qd_entity_t
*entity);
+QD_EXPORT qd_error_t qd_dispatch_register_policy_manager(qd_dispatch_t *qd,
qd_entity_t *entity);
/**
* Configure display name service, must be called after qd_dispatch_prepare
*/
-qd_error_t qd_dispatch_register_display_name_service(qd_dispatch_t *qd, void
*object);
+QD_EXPORT qd_error_t qd_dispatch_register_display_name_service(qd_dispatch_t
*qd, void *object);
/**
* \brief Configure the logging module from the
@@ -128,7 +128,7 @@ void qd_dispatch_register_entity(qd_dispatch_t *qd, const
char *type, void *impl
void qd_dispatch_unregister_entity(qd_dispatch_t *qd, void *impl);
/** Set the agent */
-void qd_dispatch_set_agent(qd_dispatch_t *qd, void *agent);
+QD_EXPORT void qd_dispatch_set_agent(qd_dispatch_t *qd, void *agent);
qdr_core_t* qd_dispatch_router_core(qd_dispatch_t *qd);
diff --git a/src/entity_cache.c b/src/entity_cache.c
index 48e2fdb..22b793c 100644
--- a/src/entity_cache.c
+++ b/src/entity_cache.c
@@ -83,7 +83,7 @@ void qd_entity_cache_remove(const char *type, void *object) {
push_event(REMOVE,
// Locks the entity cache so entities can be updated safely (prevent entities
from being deleted.)
// Do not process any entities if return error code != 0
// Must call qd_entity_refresh_end when done, regardless of error code.
-qd_error_t qd_entity_refresh_begin(PyObject *list) {
+QD_EXPORT qd_error_t qd_entity_refresh_begin(PyObject *list) {
if (!event_lock) return QD_ERROR_NONE; /* Unit tests don't call
qd_entity_cache_initialize */
qd_error_clear();
sys_mutex_lock(event_lock);
@@ -101,6 +101,6 @@ qd_error_t qd_entity_refresh_begin(PyObject *list) {
return qd_error_code();
}
-void qd_entity_refresh_end() {
+QD_EXPORT void qd_entity_refresh_end() {
sys_mutex_unlock(event_lock);
}
diff --git a/src/log.c b/src/log.c
index cac7fbd..0bada29 100644
--- a/src/log.c
+++ b/src/log.c
@@ -467,7 +467,7 @@ void qd_log_impl(qd_log_source_t *source, qd_log_level_t
level, const char *file
static PyObject *inc_none() { Py_INCREF(Py_None); return Py_None; }
/// Return the log buffer up to limit as a python list. Called by management
agent.
-PyObject *qd_log_recent_py(long limit) {
+QD_EXPORT PyObject *qd_log_recent_py(long limit) {
if (PyErr_Occurred()) return NULL;
PyObject *list = PyList_New(0);
PyObject *py_entry = NULL;
@@ -532,7 +532,7 @@ void qd_log_finalize(void) {
default_log_source = NULL; // stale value would misconfigure new router
started again in the same process
}
-qd_error_t qd_log_entity(qd_entity_t *entity)
+QD_EXPORT qd_error_t qd_log_entity(qd_entity_t *entity)
{
qd_error_clear();
@@ -689,8 +689,7 @@ void qd_format_string(char* buf, int buf_size, const char
*fmt, ...)
va_end(args);
}
-
-qd_error_t qd_entity_refresh_logStats(qd_entity_t* entity, void *impl)
+QD_EXPORT qd_error_t qd_entity_refresh_logStats(qd_entity_t* entity, void
*impl)
{
qd_log_source_t *log = (qd_log_source_t*)impl;
char identity_str[TEXT_MAX];
diff --git a/src/policy.c b/src/policy.c
index 2255806..5830b35 100644
--- a/src/policy.c
+++ b/src/policy.c
@@ -224,7 +224,7 @@ qd_error_t qd_policy_c_counts_refresh(long ccounts,
qd_entity_t *entity)
/** Update the statistics in qdrouterd.conf["policy"]
* @param[in] entity pointer to the policy management object
**/
-qd_error_t qd_entity_refresh_policy(qd_entity_t* entity, void *unused) {
+QD_EXPORT qd_error_t qd_entity_refresh_policy(qd_entity_t* entity, void
*unused) {
// Return global stats
uint64_t np, nd, nc, nl, nm, nt;
sys_mutex_lock(stats_lock);
diff --git a/src/router_agent.c b/src/router_agent.c
index 498b9be..1e60ac2 100644
--- a/src/router_agent.c
+++ b/src/router_agent.c
@@ -33,7 +33,7 @@ static const char *qd_router_mode_names[] = {
};
ENUM_DEFINE(qd_router_mode, qd_router_mode_names);
-qd_error_t qd_entity_refresh_router(qd_entity_t* entity, void *impl) {
+QD_EXPORT qd_error_t qd_entity_refresh_router(qd_entity_t* entity, void *impl)
{
qd_dispatch_t *qd = (qd_dispatch_t*) impl;
qd_router_t *router = qd->router;
if (qd_entity_set_string(entity, "area", router->router_area) == 0 &&
diff --git a/src/router_node.c b/src/router_node.c
index ba01522..aa38395 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -2136,7 +2136,7 @@ static void CORE_delivery_update(void *context,
qdr_delivery_t *dlv, uint64_t di
}
-void qd_router_setup_late(qd_dispatch_t *qd)
+QD_EXPORT void qd_router_setup_late(qd_dispatch_t *qd)
{
qd->router->tracemask = qd_tracemask();
qd->router->router_core = qdr_core(qd, qd->router->router_mode,
qd->router->router_area, qd->router->router_id);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]