Mercurial > dovecot > core-2.2
changeset 19925:1b966650aef9
auth: Code cleanup - avoid using void *context
auth_request_callback_t always uses struct auth_client/master_connection*
in the context - no need to try to be too generic here.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 11 Mar 2016 18:43:57 +1300 |
parents | 5a4b25374acd |
children | 3a190d74a1ac |
files | src/auth/auth-master-connection.c src/auth/auth-master-connection.h src/auth/auth-request-handler.c src/auth/auth-request-handler.h |
diffstat | 4 files changed, 23 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-master-connection.c Fri Mar 11 18:37:43 2016 +1300 +++ b/src/auth/auth-master-connection.c Fri Mar 11 18:43:57 2016 +1300 @@ -68,9 +68,8 @@ return t_strarray_join((void *)args, "\t"); } -void auth_master_request_callback(const char *reply, void *context) +void auth_master_request_callback(const char *reply, struct auth_master_connection *conn) { - struct auth_master_connection *conn = context; struct const_iovec iov[2]; if (conn->auth->set->debug) {
--- a/src/auth/auth-master-connection.h Fri Mar 11 18:37:43 2016 +1300 +++ b/src/auth/auth-master-connection.h Fri Mar 11 18:43:57 2016 +1300 @@ -34,7 +34,7 @@ void auth_master_connection_ref(struct auth_master_connection *conn); void auth_master_connection_unref(struct auth_master_connection **conn); -void auth_master_request_callback(const char *reply, void *context); +void auth_master_request_callback(const char *reply, struct auth_master_connection *conn); void auth_master_connections_destroy_all(void);
--- a/src/auth/auth-request-handler.c Fri Mar 11 18:37:43 2016 +1300 +++ b/src/auth/auth-request-handler.c Fri Mar 11 18:43:57 2016 +1300 @@ -27,10 +27,10 @@ unsigned int connect_uid, client_pid; - auth_request_callback_t *callback; - void *context; + auth_client_request_callback_t *callback; + struct auth_client_connection *conn; - auth_request_callback_t *master_callback; + auth_master_request_callback_t *master_callback; unsigned int destroyed:1; unsigned int token_auth:1; @@ -42,10 +42,10 @@ static void auth_failure_timeout(void *context) ATTR_NULL(1); -#undef auth_request_handler_create struct auth_request_handler * -auth_request_handler_create(bool token_auth, auth_request_callback_t *callback, - void *context, auth_request_callback_t *master_callback) +auth_request_handler_create(bool token_auth, auth_client_request_callback_t *callback, + struct auth_client_connection *conn, + auth_master_request_callback_t *master_callback) { struct auth_request_handler *handler; pool_t pool; @@ -57,7 +57,7 @@ handler->pool = pool; hash_table_create_direct(&handler->requests, pool, 0); handler->callback = callback; - handler->context = context; + handler->conn = conn; handler->master_callback = master_callback; handler->token_auth = token_auth; return handler; @@ -108,7 +108,7 @@ i_assert(hash_table_count(handler->requests) == 0); /* notify parent that we're done with all requests */ - handler->callback(NULL, handler->context); + handler->callback(NULL, handler->conn); hash_table_destroy(&handler->requests); pool_unref(&handler->pool); @@ -207,7 +207,7 @@ if (request->in_delayed_failure_queue) { /* we came here from flush_failures() */ - handler->callback(reply, handler->context); + handler->callback(reply, handler->conn); return; } @@ -217,7 +217,7 @@ if (auth_fields_exists(request->extra_fields, "nodelay")) { /* passdb specifically requested not to delay the reply. */ - handler->callback(reply, handler->context); + handler->callback(reply, handler->conn); auth_request_unref(&request); return; } @@ -267,7 +267,7 @@ process to pick it up. delete it */ auth_request_handler_remove(handler, request); } - handler->callback(str_c(str), handler->context); + handler->callback(str_c(str), handler->conn); } static void @@ -353,7 +353,7 @@ base64_encode(auth_reply, reply_size, str); request->accept_cont_input = TRUE; - handler->callback(str_c(str), handler->context); + handler->callback(str_c(str), handler->conn); break; case AUTH_CLIENT_RESULT_SUCCESS: if (reply_size > 0) { @@ -399,7 +399,7 @@ str_printfa(str, "FAIL\t%u\treason=", request->id); str_append_tabescaped(str, reason); - handler->callback(str_c(str), handler->context); + handler->callback(str_c(str), handler->conn); auth_request_handler_remove(handler, request); } @@ -599,7 +599,7 @@ if (request == NULL) { const char *reply = t_strdup_printf( "FAIL\t%u\treason=Authentication request timed out", id); - handler->callback(reply, handler->context); + handler->callback(reply, handler->conn); return TRUE; }
--- a/src/auth/auth-request-handler.h Fri Mar 11 18:37:43 2016 +1300 +++ b/src/auth/auth-request-handler.h Fri Mar 11 18:43:57 2016 +1300 @@ -2,6 +2,7 @@ #define AUTH_REQUEST_HANDLER_H struct auth_request; +struct auth_client_connection; struct auth_master_connection; struct auth_stream_reply; @@ -12,18 +13,14 @@ }; typedef void -auth_request_callback_t(const char *reply, void *context); +auth_client_request_callback_t(const char *reply, struct auth_client_connection *conn); +typedef void +auth_master_request_callback_t(const char *reply, struct auth_master_connection *conn); struct auth_request_handler * -auth_request_handler_create(bool token_auth, auth_request_callback_t *callback, - void *context, auth_request_callback_t *master_callback); -#define auth_request_handler_create(token_auth, callback, context, master_callback)\ - auth_request_handler_create(token_auth, \ - (auth_request_callback_t *)callback, \ - (void *)((char*)context + \ - CALLBACK_TYPECHECK(callback, void (*)( \ - const char *, typeof(context)))), \ - master_callback) +auth_request_handler_create(bool token_auth, auth_client_request_callback_t *callback, + struct auth_client_connection *conn, + auth_master_request_callback_t *master_callback); void auth_request_handler_destroy(struct auth_request_handler **handler); void auth_request_handler_unref(struct auth_request_handler **handler);