From: Marco Bettini Date: Mon, 22 Jul 2024 08:29:59 +0000 (+0000) Subject: auth: ldap - Use container_of() X-Git-Tag: 2.4.1~749 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f596e01da7783100eaf7c324de58c066d1c68ce5;p=thirdparty%2Fdovecot%2Fcore.git auth: ldap - Use container_of() --- diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index 8c537f7755..8db3f6df24 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -186,7 +186,7 @@ static int db_ldap_request_bind(struct ldap_connection *conn, { struct auth_request *arequest = request->auth_request; struct ldap_request_bind *brequest = - (struct ldap_request_bind *)request; + container_of(request, struct ldap_request_bind, request); i_assert(request->type == LDAP_REQUEST_TYPE_BIND); i_assert(request->msgid == -1); @@ -219,7 +219,7 @@ static int db_ldap_request_search(struct ldap_connection *conn, struct ldap_request *request) { struct ldap_request_search *srequest = - (struct ldap_request_search *)request; + container_of(request, struct ldap_request_search, request); i_assert(conn->conn_state == LDAP_CONN_STATE_BOUND_DEFAULT); i_assert(request->msgid == -1); @@ -490,7 +490,8 @@ db_ldap_handle_request_result(struct ldap_connection *conn, struct ldap_request *request, unsigned int idx, struct db_ldap_result *res) { - struct ldap_request_search *srequest = NULL; + struct ldap_request_search *srequest = + container_of(request, struct ldap_request_search, request); const struct ldap_request_named_result *named_res; int ret; bool final_result; @@ -502,7 +503,6 @@ db_ldap_handle_request_result(struct ldap_connection *conn, i_assert(conn->pending_count == 1); conn->conn_state = LDAP_CONN_STATE_BOUND_AUTH; } else { - srequest = (struct ldap_request_search *)request; switch (ldap_msgtype(res->msg)) { case LDAP_RES_SEARCH_ENTRY: case LDAP_RES_SEARCH_RESULT: @@ -531,9 +531,6 @@ db_ldap_handle_request_result(struct ldap_connection *conn, if (ret != LDAP_SUCCESS && ret != LDAP_NO_SUCH_OBJECT && request->type == LDAP_REQUEST_TYPE_SEARCH) { /* handle search failures here */ - struct ldap_request_search *srequest = - (struct ldap_request_search *)request; - if (!array_is_created(&srequest->named_results)) { e_error(authdb_event(request->auth_request), "ldap_search_ext(base=%s filter=%s) failed: %s", @@ -606,7 +603,7 @@ db_ldap_request_free(struct ldap_request *request) { if (request->type == LDAP_REQUEST_TYPE_SEARCH) { struct ldap_request_search *srequest = - (struct ldap_request_search *)request; + container_of(request, struct ldap_request_search, request); struct ldap_request_named_result *named_res; if (srequest->result != NULL) diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 4124152c25..eb7564f264 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -117,7 +117,7 @@ ldap_lookup_pass_callback(struct ldap_connection *conn, struct ldap_request *request, LDAPMessage *res) { struct passdb_ldap_request *ldap_request = - (struct passdb_ldap_request *)request; + container_of(request, struct passdb_ldap_request, request.ldap); struct auth_request *auth_request = request->auth_request; if (res == NULL || ldap_msgtype(res) == LDAP_RES_SEARCH_RESULT) { @@ -139,7 +139,7 @@ ldap_auth_bind_callback(struct ldap_connection *conn, struct ldap_request *ldap_request, LDAPMessage *res) { struct passdb_ldap_request *passdb_ldap_request = - (struct passdb_ldap_request *)ldap_request; + container_of(ldap_request, struct passdb_ldap_request, request.ldap); struct auth_request *auth_request = ldap_request->auth_request; enum passdb_result passdb_result; @@ -176,7 +176,7 @@ static void ldap_auth_bind(struct ldap_connection *conn, struct ldap_request_bind *brequest) { struct passdb_ldap_request *passdb_ldap_request = - (struct passdb_ldap_request *)brequest; + container_of(brequest, struct passdb_ldap_request, request.bind); struct auth_request *auth_request = brequest->request.auth_request; if (*auth_request->mech_password == '\0') { @@ -236,7 +236,7 @@ static void ldap_bind_lookup_dn_callback(struct ldap_connection *conn, LDAPMessage *res) { struct passdb_ldap_request *passdb_ldap_request = - (struct passdb_ldap_request *)ldap_request; + container_of(ldap_request, struct passdb_ldap_request, request.ldap); struct auth_request *auth_request = ldap_request->auth_request; struct passdb_ldap_request *brequest; char *dn; @@ -285,7 +285,7 @@ static void ldap_lookup_pass(struct auth_request *auth_request, { struct passdb_module *_module = auth_request->passdb->passdb; struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); struct ldap_connection *conn = module->conn; struct ldap_request_search *srequest = &request->request.search; @@ -312,7 +312,7 @@ static void ldap_bind_lookup_dn(struct auth_request *auth_request, { struct passdb_module *_module = auth_request->passdb->passdb; struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); struct ldap_connection *conn = module->conn; struct ldap_request_search *srequest = &request->request.search; @@ -341,7 +341,7 @@ ldap_verify_plain_auth_bind_userdn(struct auth_request *auth_request, { struct passdb_module *_module = auth_request->passdb->passdb; struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); struct ldap_connection *conn = module->conn; struct ldap_request_bind *brequest = &request->request.bind; @@ -357,7 +357,7 @@ ldap_verify_plain(struct auth_request *request, { struct passdb_module *_module = request->passdb->passdb; struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); struct ldap_connection *conn = module->conn; struct event *event = authdb_event(request); struct passdb_ldap_request *ldap_request; @@ -468,7 +468,7 @@ failed: static void passdb_ldap_init(struct passdb_module *_module) { struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); if (!module->module.blocking || worker) db_ldap_connect_delayed(module->conn); @@ -477,7 +477,7 @@ static void passdb_ldap_init(struct passdb_module *_module) static void passdb_ldap_deinit(struct passdb_module *_module) { struct ldap_passdb_module *module = - (struct ldap_passdb_module *)_module; + container_of(_module, struct ldap_passdb_module, module); db_ldap_unref(&module->conn); } diff --git a/src/auth/userdb-ldap.c b/src/auth/userdb-ldap.c index dcd54fc878..c10c9eecf3 100644 --- a/src/auth/userdb-ldap.c +++ b/src/auth/userdb-ldap.c @@ -91,7 +91,8 @@ static void userdb_ldap_lookup_callback(struct ldap_connection *conn, LDAPMessage *res) { struct userdb_ldap_request *urequest = - (struct userdb_ldap_request *) request; + container_of(request, struct userdb_ldap_request, request.request); + struct auth_request *auth_request = urequest->request.request.auth_request; @@ -113,7 +114,8 @@ static void userdb_ldap_lookup(struct auth_request *auth_request, userdb_callback_t *callback) { struct userdb_module *_module = auth_request->userdb->userdb; - struct ldap_userdb_module *module = (struct ldap_userdb_module *)_module; + struct ldap_userdb_module *module = + container_of(_module, struct ldap_userdb_module, module); struct ldap_connection *conn = module->conn; struct event *event = authdb_event(auth_request); @@ -155,7 +157,7 @@ static void userdb_ldap_iterate_callback(struct ldap_connection *conn, LDAPMessage *res) { struct userdb_iter_ldap_request *urequest = - (struct userdb_iter_ldap_request *)request; + container_of(request, struct userdb_iter_ldap_request, request.request); struct ldap_userdb_iterate_context *ctx = urequest->ctx; if (res == NULL || ldap_msgtype(res) == LDAP_RES_SEARCH_RESULT) { @@ -234,7 +236,7 @@ userdb_ldap_iterate_init(struct auth_request *auth_request, { struct userdb_module *_module = auth_request->userdb->userdb; struct ldap_userdb_module *module = - (struct ldap_userdb_module *)_module; + container_of(_module, struct ldap_userdb_module, module); struct ldap_connection *conn = module->conn; struct event *event = authdb_event(auth_request); @@ -282,7 +284,7 @@ userdb_ldap_iterate_init(struct auth_request *auth_request, static void userdb_ldap_iterate_next(struct userdb_iterate_context *_ctx) { struct ldap_userdb_iterate_context *ctx = - (struct ldap_userdb_iterate_context *)_ctx; + container_of(_ctx, struct ldap_userdb_iterate_context, ctx); if (_ctx->failed) { _ctx->callback(NULL, _ctx->context); @@ -296,7 +298,7 @@ static void userdb_ldap_iterate_next(struct userdb_iterate_context *_ctx) static int userdb_ldap_iterate_deinit(struct userdb_iterate_context *_ctx) { struct ldap_userdb_iterate_context *ctx = - (struct ldap_userdb_iterate_context *)_ctx; + container_of(_ctx, struct ldap_userdb_iterate_context, ctx); int ret = _ctx->failed ? -1 : 0; db_ldap_enable_input(ctx->conn, TRUE); @@ -351,7 +353,7 @@ failed: static void userdb_ldap_init(struct userdb_module *_module) { struct ldap_userdb_module *module = - (struct ldap_userdb_module *)_module; + container_of(_module, struct ldap_userdb_module, module); if (!module->module.blocking || worker) db_ldap_connect_delayed(module->conn); @@ -360,7 +362,7 @@ static void userdb_ldap_init(struct userdb_module *_module) static void userdb_ldap_deinit(struct userdb_module *_module) { struct ldap_userdb_module *module = - (struct ldap_userdb_module *)_module; + container_of(_module, struct ldap_userdb_module, module); db_ldap_unref(&module->conn); }