From 11c621b5ee1a0cdc27610f8b172017764acc285e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 5 Aug 2009 14:11:12 -0400 Subject: Simplify interfaces initialization Make as much as possible static, and remove use of talloc_reference and allocation/deallocation of memory when not necessary. Fix also responder use of rctx->conn, was mistakenly used for both monitor and dp connections. --- server/responder/common/responder_dp.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'server/responder/common/responder_dp.c') diff --git a/server/responder/common/responder_dp.c b/server/responder/common/responder_dp.c index 547cb272..dc810fd9 100644 --- a/server/responder/common/responder_dp.c +++ b/server/responder/common/responder_dp.c @@ -10,7 +10,7 @@ struct sss_dp_pvt_ctx { struct resp_ctx *rctx; - struct sbus_method *methods; + struct sbus_interface *intf; time_t last_retry; int retries; }; @@ -49,20 +49,8 @@ static void sss_dp_conn_reconnect(struct sss_dp_pvt_ctx *pvt) return; } - ret = dp_init_sbus_methods(rctx, pvt->methods, &rctx->sm_ctx); - if (ret != EOK) { - DEBUG(0, ("Could not initialize SBUS methods.\n")); - return; - } - - /* FIXME: remove this */ - if (talloc_reference(rctx, rctx->sm_ctx) == NULL) { - DEBUG(0, ("Failed to take memory reference\n")); - return; - } - ret = sbus_client_init(rctx, rctx->ev, sbus_address, - rctx->sm_ctx, &rctx->conn, + pvt->intf, &rctx->dp_conn, sss_dp_conn_destructor, pvt); if (ret != EOK) { DEBUG(4, ("Failed to reconnect [%d(%s)]!\n", ret, strerror(ret))); @@ -109,7 +97,7 @@ int sss_dp_conn_destructor(void *data) return 0; } -int sss_dp_init(struct resp_ctx *rctx, struct sbus_method *dp_methods) +int sss_dp_init(struct resp_ctx *rctx, struct sbus_interface *dp_intf) { struct sss_dp_pvt_ctx *pvt; @@ -117,7 +105,7 @@ int sss_dp_init(struct resp_ctx *rctx, struct sbus_method *dp_methods) if (!pvt) return ENOMEM; pvt->rctx = rctx; - pvt->methods = dp_methods; + pvt->intf = dp_intf; sss_dp_conn_reconnect(pvt); @@ -243,12 +231,12 @@ int nss_dp_send_acct_req(struct resp_ctx *rctx, TALLOC_CTX *memctx, * in some pathological cases it may happen that nss starts up before * dp connection code is actually able to establish a connection. */ - if (!rctx->conn) { + if (!rctx->dp_conn) { DEBUG(1, ("The Data Provider connection is not available yet!" " This maybe a bug, it shouldn't happen!\n")); return EIO; } - dbus_conn = sbus_get_connection(rctx->conn); + dbus_conn = sbus_get_connection(rctx->dp_conn); /* create the message */ msg = dbus_message_new_method_call(NULL, -- cgit