From 348f93ff6e25c43e0233432bd2134bb9eacb0b87 Mon Sep 17 00:00:00 2001 From: Matthew Newton Date: Sat, 24 Jan 2015 00:30:00 +0000 Subject: Add wbcContext to wbcRequestResponse To enable libwbclient to pass winbindd context through to the winbind client library in wb_common. Signed-off-by: Matthew Newton Reviewed-by: Volker Lendecke Reviewed-by: Jeremy Allison --- nsswitch/libwbclient/wbclient.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'nsswitch/libwbclient/wbclient.c') diff --git a/nsswitch/libwbclient/wbclient.c b/nsswitch/libwbclient/wbclient.c index e6b3e4e9e1..ab1159ad93 100644 --- a/nsswitch/libwbclient/wbclient.c +++ b/nsswitch/libwbclient/wbclient.c @@ -56,6 +56,7 @@ void winbindd_ctx_free(struct winbindd_context *ctx); */ static wbcErr wbcRequestResponseInt( + struct winbindd_context *wbctx, int cmd, struct winbindd_request *request, struct winbindd_response *response, @@ -68,7 +69,7 @@ static wbcErr wbcRequestResponseInt( /* for some calls the request and/or response can be NULL */ - nss_status = fn(NULL, cmd, request, response); + nss_status = fn(wbctx, cmd, request, response); switch (nss_status) { case NSS_STATUS_SUCCESS: @@ -91,25 +92,38 @@ static wbcErr wbcRequestResponseInt( /** * @brief Wrapper around Winbind's send/receive API call * + * @param ctx Context * @param cmd Winbind command operation to perform * @param request Send structure * @param response Receive structure * * @return #wbcErr */ -wbcErr wbcRequestResponse(int cmd, +wbcErr wbcRequestResponse(struct wbcContext *ctx, int cmd, struct winbindd_request *request, struct winbindd_response *response) { - return wbcRequestResponseInt(cmd, request, response, + struct winbindd_context *wbctx = NULL; + + if (ctx) { + wbctx = ctx->winbindd_ctx; + } + + return wbcRequestResponseInt(wbctx, cmd, request, response, winbindd_request_response); } -wbcErr wbcRequestResponsePriv(int cmd, +wbcErr wbcRequestResponsePriv(struct wbcContext *ctx, int cmd, struct winbindd_request *request, struct winbindd_response *response) { - return wbcRequestResponseInt(cmd, request, response, + struct winbindd_context *wbctx = NULL; + + if (ctx) { + wbctx = ctx->winbindd_ctx; + } + + return wbcRequestResponseInt(wbctx, cmd, request, response, winbindd_priv_request_response); } -- cgit