summaryrefslogtreecommitdiff
path: root/server/providers
diff options
context:
space:
mode:
Diffstat (limited to 'server/providers')
-rw-r--r--server/providers/data_provider.h2
-rw-r--r--server/providers/data_provider_be.c18
-rw-r--r--server/providers/dp_helpers.c10
3 files changed, 15 insertions, 15 deletions
diff --git a/server/providers/data_provider.h b/server/providers/data_provider.h
index bd610a53..a7311e5e 100644
--- a/server/providers/data_provider.h
+++ b/server/providers/data_provider.h
@@ -77,6 +77,8 @@ int dp_sbus_cli_init(TALLOC_CTX *mem_ctx,
struct event_context *ev,
struct confdb_ctx *cdb,
struct sbus_method *methods,
+ void *conn_pvt_data,
+ sbus_conn_destructor_fn destructor,
struct service_sbus_ctx **srvs_ctx);
#endif /* __DATA_PROVIDER_ */
diff --git a/server/providers/data_provider_be.c b/server/providers/data_provider_be.c
index 75e99bdc..ba9ea466 100644
--- a/server/providers/data_provider_be.c
+++ b/server/providers/data_provider_be.c
@@ -308,21 +308,9 @@ static int mon_cli_init(struct be_ctx *ctx)
* sbus channel to the data provider daemon */
static int be_cli_init(struct be_ctx *ctx)
{
- struct service_sbus_ctx *dp_ctx;
- int ret;
-
- ret = dp_sbus_cli_init(ctx, ctx->ev, ctx->cdb,
- be_methods, &dp_ctx);
- if (ret != EOK) {
- return ret;
- }
-
- ctx->dp_ctx = dp_ctx;
-
- /* attach be context to the connection */
- sbus_conn_set_private_data(dp_ctx->scon_ctx, ctx);
-
- return EOK;
+ return dp_sbus_cli_init(ctx, ctx->ev, ctx->cdb,
+ be_methods, ctx, NULL,
+ &ctx->dp_ctx);
}
static int load_backend(struct be_ctx *ctx)
diff --git a/server/providers/dp_helpers.c b/server/providers/dp_helpers.c
index 99d65f45..52dc69e1 100644
--- a/server/providers/dp_helpers.c
+++ b/server/providers/dp_helpers.c
@@ -25,6 +25,8 @@ int dp_sbus_cli_init(TALLOC_CTX *mem_ctx,
struct event_context *ev,
struct confdb_ctx *cdb,
struct sbus_method *methods,
+ void *conn_pvt_data,
+ sbus_conn_destructor_fn destructor,
struct service_sbus_ctx **srvs_ctx)
{
struct service_sbus_ctx *ss_ctx;
@@ -87,6 +89,14 @@ int dp_sbus_cli_init(TALLOC_CTX *mem_ctx,
sm_ctx->message_handler = sbus_message_handler;
sbus_conn_add_method_ctx(ss_ctx->scon_ctx, sm_ctx);
+ if (conn_pvt_data) {
+ sbus_conn_set_private_data(ss_ctx->scon_ctx, conn_pvt_data);
+ }
+
+ if (destructor) {
+ sbus_conn_set_destructor(ss_ctx->scon_ctx, destructor);
+ }
+
talloc_steal(mem_ctx, ss_ctx);
*srvs_ctx = ss_ctx;
ret = EOK;