]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Use fd_close_maybe_stdio()
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 16 Nov 2016 09:41:42 +0000 (11:41 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 16 Nov 2016 10:24:54 +0000 (12:24 +0200)
src/imap-urlauth/imap-urlauth-client.c
src/imap-urlauth/imap-urlauth-worker.c
src/imap/imap-client.c
src/lib/connection.c
src/lmtp/client.c
src/pop3/pop3-client.c

index bf8af5d47699f64ae2a72aff4a2a65f7ef873b7b..a48c67c9439eebe7fbf13c3343ec34180778793e 100644 (file)
@@ -341,9 +341,7 @@ void client_destroy(struct client *client, const char *reason)
        
        o_stream_destroy(&client->output);
 
-       net_disconnect(client->fd_in);
-       if (client->fd_in != client->fd_out)
-               net_disconnect(client->fd_out);
+       fd_close_maybe_stdio(&client->fd_in, &client->fd_out);
 
        if (client->username != NULL)
                i_free(client->username);
index 84f80d33c67f65766820494db6cbb17fa86381bd..d4ce48e061addd41c6d19cca6897b5f2d91eba46 100644 (file)
@@ -255,10 +255,7 @@ static void client_destroy(struct client *client)
        if (client->ctrl_output != NULL)
                o_stream_destroy(&client->ctrl_output);
 
-       if (client->fd_in >= 0)
-               net_disconnect(client->fd_in);
-       if (client->fd_out >= 0 && client->fd_in != client->fd_out)
-               net_disconnect(client->fd_out);
+       fd_close_maybe_stdio(&client->fd_in, &client->fd_out);
        if (client->fd_ctrl >= 0)
                net_disconnect(client->fd_ctrl);
 
index 162bdb869faf20f74cc19e119c62fa7f101debd4..174aa36de0f853df1e54bfde262ddffddaf2c0ee 100644 (file)
@@ -400,9 +400,7 @@ static void client_default_destroy(struct client *client, const char *reason)
        timeout_remove(&client->to_idle);
 
        /* i/ostreams are already closed at this stage, so fd can be closed */
-       net_disconnect(client->fd_in);
-       if (client->fd_in != client->fd_out)
-               net_disconnect(client->fd_out);
+       fd_close_maybe_stdio(&client->fd_in, &client->fd_out);
 
        /* Free the user after client is already disconnected. It may start
           some background work like autoexpunging. */
index 551fee38efe0aaeadd3b360412766971628b8b03..0045149f675705db3b5b5b9666b2d7d3252bd31f 100644 (file)
@@ -308,13 +308,7 @@ void connection_disconnect(struct connection *conn)
                o_stream_close(conn->output);
                o_stream_destroy(&conn->output);
        }
-       if (conn->fd_in != -1) {
-               if (close(conn->fd_in) < 0)
-                       i_error("close(%s) failed: %m", conn->name);
-               if (conn->fd_in != conn->fd_out && close(conn->fd_out) < 0)
-                       i_error("close(%s/out) failed: %m", conn->name);
-               conn->fd_in = conn->fd_out = -1;
-       }
+       fd_close_maybe_stdio(&conn->fd_in, &conn->fd_out);
 }
 
 void connection_deinit(struct connection *conn)
index 5650b412123ff301c1104ae599c990ef9eb6f3ea..6bf435486a2df1445d2034fd22edb857bd44484a 100644 (file)
@@ -301,9 +301,7 @@ void client_destroy(struct client *client, const char *prefix,
        i_stream_destroy(&client->input);
        o_stream_destroy(&client->output);
 
-       net_disconnect(client->fd_in);
-       if (client->fd_in != client->fd_out)
-               net_disconnect(client->fd_out);
+       fd_close_maybe_stdio(&client->fd_in, &client->fd_out);
        client_state_reset(client, "destroyed");
        i_free(client->lhlo);
        pool_unref(&client->state_pool);
index 4f5008c90ddf529c6d1b9189538dd9e3f0de8d5b..9581c8aea34ead14e2630ca102440ccff761d2c5 100644 (file)
@@ -642,9 +642,7 @@ static void client_default_destroy(struct client *client, const char *reason)
        i_stream_destroy(&client->input);
        o_stream_destroy(&client->output);
 
-       net_disconnect(client->fd_in);
-       if (client->fd_in != client->fd_out)
-               net_disconnect(client->fd_out);
+       fd_close_maybe_stdio(&client->fd_in, &client->fd_out);
        mail_storage_service_user_free(&client->service_user);
 
        pop3_client_count--;