diff options
Diffstat (limited to 'server/responder/common/responder_common.c')
-rw-r--r-- | server/responder/common/responder_common.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/server/responder/common/responder_common.c b/server/responder/common/responder_common.c index cf06c3ca..f1030c04 100644 --- a/server/responder/common/responder_common.c +++ b/server/responder/common/responder_common.c @@ -39,7 +39,6 @@ #include "responder/common/responder.h" #include "responder/common/responder_packet.h" #include "providers/data_provider.h" -#include "monitor/monitor_sbus.h" #include "monitor/monitor_interfaces.h" #include "sbus/sbus_client.h" @@ -318,6 +317,41 @@ static int sss_monitor_init(struct resp_ctx *rctx, return EOK; } +static int sss_dp_init(struct resp_ctx *rctx, + struct sbus_interface *intf, + uint16_t cli_type, uint16_t cli_version, + const char *cli_name, const char *cli_domain) +{ + char *sbus_address; + int ret; + + /* Set up SBUS connection to the monitor */ + ret = dp_get_sbus_address(rctx, rctx->cdb, &sbus_address); + if (ret != EOK) { + DEBUG(0, ("Could not locate DP address.\n")); + return ret; + } + + ret = sbus_client_init(rctx, rctx->ev, sbus_address, + intf, &rctx->dp_conn, + NULL, NULL); + if (ret != EOK) { + DEBUG(0, ("Failed to connect to monitor services.\n")); + return ret; + } + + /* Identify ourselves to the DP */ + ret = dp_common_send_id(rctx->dp_conn, + cli_type, cli_version, + cli_name, cli_domain); + if (ret != EOK) { + DEBUG(0, ("Failed to identify to the DP!\n")); + return ret; + } + + return EOK; +} + /* create a unix socket and listen to it */ static int set_unix_socket(struct resp_ctx *rctx) { |