]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: ldap - Use container_of()
authorMarco Bettini <marco.bettini@open-xchange.com>
Mon, 22 Jul 2024 08:29:59 +0000 (08:29 +0000)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:39:59 +0000 (10:39 +0200)
src/auth/db-ldap.c
src/auth/passdb-ldap.c
src/auth/userdb-ldap.c

index 8c537f7755ff158e23fe6a28882185f55e36cd80..8db3f6df24ad1708df165f2dc99d2c48416aefec 100644 (file)
@@ -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)
index 4124152c255140e2d395badf05be0af0c8121585..eb7564f2641179403e95172313b31ac247485747 100644 (file)
@@ -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);
 }
index dcd54fc878b62a9f62f70740085c7414e24d7bbe..c10c9eecf365a0550b4310a3adf85c0051321889 100644 (file)
@@ -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);
 }