From: Stephan Bosch Date: Mon, 18 May 2020 23:52:34 +0000 (+0200) Subject: lib-auth-client: auth-master - Split off auth_master_user_lookup_start() from auth_ma... X-Git-Tag: 2.4.2~481 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d119f7b2d418ec8eb694adab139bdebdb0907fc;p=thirdparty%2Fdovecot%2Fcore.git lib-auth-client: auth-master - Split off auth_master_user_lookup_start() from auth_master_user_lookup() --- diff --git a/src/lib-auth-client/auth-master.c b/src/lib-auth-client/auth-master.c index 3d729fed43..a2ace1e4cd 100644 --- a/src/lib-auth-client/auth-master.c +++ b/src/lib-auth-client/auth-master.c @@ -1070,6 +1070,11 @@ static void auth_master_user_lookup_finished(struct auth_master_lookup *_lookup, int result, const char *const *fields, struct auth_master_user_lookup_ctx *ctx); +struct auth_master_request * +auth_master_user_lookup_start(struct auth_master_lookup *lookup, + struct auth_master_connection *conn, + const char *user, + const struct auth_user_info *info); static void auth_master_user_lookup_callback(struct auth_master_user_lookup_ctx *ctx, @@ -1088,7 +1093,6 @@ int auth_master_user_lookup(struct auth_master_connection *conn, { struct auth_master_lookup lookup; struct auth_master_request *req; - string_t *args; if (!is_valid_string(user) || !is_valid_string(info->protocol)) { /* non-allowed characters, the user can't exist */ @@ -1107,29 +1111,9 @@ int auth_master_user_lookup(struct auth_master_connection *conn, }; i_zero(&lookup); - lookup.conn = conn; - lookup.return_value = -1; lookup.pool = pool; - lookup.expected_reply = "USER"; - lookup.user = user; - - args = t_str_new(128); - str_append(args, user); - auth_user_info_export(args, info); - - lookup.event = auth_master_user_event_create( - conn, t_strdup_printf("userdb lookup(%s): ", user), info); - event_add_str(lookup.event, "user", user); - struct event_passthrough *e = - event_create_passthrough(lookup.event)-> - set_name("auth_client_userdb_lookup_started"); - e_debug(e->event(), "Started userdb lookup"); - - req = auth_master_request(conn, "USER", str_data(args), str_len(args), - auth_lookup_reply_callback, &lookup); - - auth_master_request_set_event(req, lookup.event); + req = auth_master_user_lookup_start(&lookup, conn, user, info); (void)auth_master_request_wait(req); auth_master_user_lookup_finished(&lookup, lookup.return_value, @@ -1181,6 +1165,41 @@ auth_master_user_lookup_finished(struct auth_master_lookup *_lookup, auth_master_user_lookup_callback(ctx, result, username, fields); } +struct auth_master_request * +auth_master_user_lookup_start(struct auth_master_lookup *lookup, + struct auth_master_connection *conn, + const char *user, + const struct auth_user_info *info) +{ + struct auth_master_request *req; + string_t *args; + + lookup->conn = conn; + lookup->return_value = -1; + lookup->expected_reply = "USER"; + lookup->user = user; + + args = t_str_new(128); + str_append(args, user); + auth_user_info_export(args, info); + + lookup->event = auth_master_user_event_create( + conn, t_strdup_printf("userdb lookup(%s): ", user), info); + event_add_str(lookup->event, "user", user); + + struct event_passthrough *e = + event_create_passthrough(lookup->event)-> + set_name("auth_client_userdb_lookup_started"); + e_debug(e->event(), "Started userdb lookup"); + + req = auth_master_request(conn, "USER", str_data(args), str_len(args), + auth_lookup_reply_callback, lookup); + + auth_master_request_set_event(req, lookup->event); + + return req; +} + int auth_user_fields_parse(const char *const *fields, pool_t pool, struct auth_user_reply *reply_r, const char **error_r) {