]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Assume anvil command was success only if master_service_anvil_send() returns...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 12 Dec 2021 22:52:49 +0000 (00:52 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 8 Feb 2022 09:48:24 +0000 (10:48 +0100)
src/imap-hibernate/imap-client.c
src/imap/imap-client.c
src/lmtp/lmtp-local.c
src/pop3/pop3-client.c
src/submission/submission-client.c

index 8e0f93381b4c27cf62f0c021195b0056939017ff..4713de455a0e31f2f4837df7eb058108baca838c 100644 (file)
@@ -640,9 +640,9 @@ imap_client_create(int fd, const struct imap_client_state *state)
 
        ident = imap_client_get_anvil_userip_ident(&client->state);
        if (ident != NULL) {
-               master_service_anvil_send(master_service, t_strconcat(
-                       "CONNECT\t", my_pid, "\timap/", ident, "\n", NULL));
-               client->state.anvil_sent = TRUE;
+               if (master_service_anvil_send(master_service, t_strconcat(
+                       "CONNECT\t", my_pid, "\timap/", ident, "\n", NULL)))
+                       client->state.anvil_sent = TRUE;
        }
 
        p_array_init(&client->notifys, pool, 2);
index 364cef3ead4e507099ab53f315cd228564f7c2d4..5592b51db1db993a61b857fd0668d95af6fb6b26 100644 (file)
@@ -205,9 +205,9 @@ struct client *client_create(int fd_in, int fd_out,
 
        ident = mail_user_get_anvil_userip_ident(client->user);
        if (ident != NULL) {
-               master_service_anvil_send(master_service, t_strconcat(
-                       "CONNECT\t", my_pid, "\timap/", ident, "\n", NULL));
-               client->anvil_sent = TRUE;
+               if (master_service_anvil_send(master_service, t_strconcat(
+                       "CONNECT\t", my_pid, "\timap/", ident, "\n", NULL)))
+                       client->anvil_sent = TRUE;
        }
 
        imap_client_count++;
index d44d91830cc558fee0083ddc26a891732e2b22f1..202fbb2c4f771d376defdc609f09ee7807963fb6 100644 (file)
@@ -273,11 +273,11 @@ lmtp_local_rcpt_anvil_cb(const char *reply, void *context)
                        rcpt, 451, "4.3.0",
                        "Too many concurrent deliveries for user");
        } else if (lmtp_local_rcpt_anvil_finish(llrcpt)) {
-               llrcpt->anvil_connect_sent = TRUE;
                input = mail_storage_service_user_get_input(llrcpt->service_user);
-               master_service_anvil_send(master_service, t_strconcat(
+               if (master_service_anvil_send(master_service, t_strconcat(
                        "CONNECT\t", my_pid, "\t", master_service_get_name(master_service),
-                       "/", input->username, "\n", NULL));
+                       "/", input->username, "\n", NULL)))
+                       llrcpt->anvil_connect_sent = TRUE;
        }
 }
 
index d44ae7f464e35485a91440d68a1f17087604ad3c..e0c8c589a395efc3fc077bb6662baf436d7f0649 100644 (file)
@@ -475,9 +475,9 @@ int client_init_mailbox(struct client *client, const char **error_r)
 
        ident = mail_user_get_anvil_userip_ident(client->user);
        if (ident != NULL) {
-               master_service_anvil_send(master_service, t_strconcat(
-                       "CONNECT\t", my_pid, "\tpop3/", ident, "\n", NULL));
-               client->anvil_sent = TRUE;
+               if (master_service_anvil_send(master_service, t_strconcat(
+                       "CONNECT\t", my_pid, "\tpop3/", ident, "\n", NULL)))
+                       client->anvil_sent = TRUE;
        }
        return 0;
 }
index 2ced1632649703bec117372ffa3d561d63065f4a..a0f0a0efa393cf9feaf7fbff500a795a15d95df4 100644 (file)
@@ -251,11 +251,11 @@ client_create(int fd_in, int fd_out, struct mail_user *user,
 
        ident = mail_user_get_anvil_userip_ident(client->user);
        if (ident != NULL) {
-               master_service_anvil_send(
+               if (master_service_anvil_send(
                        master_service, t_strconcat(
                                "CONNECT\t", my_pid, "\tsubmission/", ident,
-                               "\n", NULL));
-               client->anvil_sent = TRUE;
+                               "\n", NULL)))
+                       client->anvil_sent = TRUE;
        }
 
        if (hook_client_created != NULL)