From: Stephan Bosch Date: Tue, 14 Feb 2023 01:26:42 +0000 (+0100) Subject: imap-urlauth: imap-urlauth-client - Connect worker client last in client_create(). X-Git-Tag: 2.4.0~2867 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc680b654b4593a9e96a61c115b865cfec18f8a1;p=thirdparty%2Fdovecot%2Fcore.git imap-urlauth: imap-urlauth-client - Connect worker client last in client_create(). In later commit the worker client will depend on full unitialization of main client struct. --- diff --git a/src/imap-urlauth/imap-urlauth-client.c b/src/imap-urlauth/imap-urlauth-client.c index 9f90b529d4..d8b556a439 100644 --- a/src/imap-urlauth/imap-urlauth-client.c +++ b/src/imap-urlauth/imap-urlauth-client.c @@ -59,13 +59,6 @@ int client_create(const char *service, const char *username, event_set_append_log_prefix(client->event, t_strdup_printf( "user %s: ", username)); - client->worker_client = imap_urlauth_worker_client_init(client); - if (imap_urlauth_worker_client_connect(client->worker_client) < 0) { - event_unref(&client->event); - i_free(client); - return -1; - } - /* determine user's special privileges */ i_array_init(&client->access_apps, 4); if (username != NULL) { @@ -93,6 +86,12 @@ int client_create(const char *service, const char *username, imap_urlauth_client_count++; DLLIST_PREPEND(&imap_urlauth_clients, client); + client->worker_client = imap_urlauth_worker_client_init(client); + if (imap_urlauth_worker_client_connect(client->worker_client) < 0) { + client_destroy(client, "Failed to connect to worker"); + return -1; + } + imap_urlauth_refresh_proctitle(); *client_r = client; return 0;