summaryrefslogtreecommitdiffstats
path: root/server/responder/common/responder_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/responder/common/responder_common.c')
-rw-r--r--server/responder/common/responder_common.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/server/responder/common/responder_common.c b/server/responder/common/responder_common.c
index cf06c3ca1..f1030c04e 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)
{