Mercurial > dovecot > core-2.2
changeset 22623:f733d647ff82
director: Add director_output_buffer_size setting
This allows configuring the max buffer size for outgoing connections.
Previously it was hardcoded to 10 MB, which wasn't necessarily enough for
very busy directors.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Wed, 25 Oct 2017 17:18:03 +0300 |
parents | c0417a608a71 |
children | f7e2f55e6e91 |
files | src/director/director-connection.c src/director/director-settings.c src/director/director-settings.h |
diffstat | 3 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/director/director-connection.c Mon Oct 16 13:53:58 2017 +0300 +++ b/src/director/director-connection.c Wed Oct 25 17:18:03 2017 +0300 @@ -47,7 +47,6 @@ #include <unistd.h> #define MAX_INBUF_SIZE 1024 -#define MAX_OUTBUF_SIZE (1024*1024*10) #define OUTBUF_FLUSH_THRESHOLD (1024*128) /* Max time to wait for connect() to finish before aborting */ #define DIRECTOR_CONNECTION_CONNECT_TIMEOUT_MSECS (10*1000) @@ -2045,7 +2044,7 @@ conn->fd = fd; conn->dir = dir; conn->input = i_stream_create_fd(conn->fd, MAX_INBUF_SIZE, FALSE); - conn->output = o_stream_create_fd(conn->fd, MAX_OUTBUF_SIZE, FALSE); + conn->output = o_stream_create_fd(conn->fd, dir->set->director_output_buffer_size, FALSE); o_stream_set_no_error_handling(conn->output, TRUE); array_append(&dir->connections, &conn, 1); return conn;
--- a/src/director/director-settings.c Mon Oct 16 13:53:58 2017 +0300 +++ b/src/director/director-settings.c Wed Oct 25 17:18:03 2017 +0300 @@ -76,6 +76,7 @@ DEF(SET_TIME, director_user_kick_delay), DEF(SET_IN_PORT, director_doveadm_port), DEF(SET_BOOL, director_consistent_hashing), + DEF(SET_SIZE, director_output_buffer_size), SETTING_DEFINE_LIST_END }; @@ -89,7 +90,8 @@ .director_flush_socket = "", .director_user_expire = 60*15, .director_user_kick_delay = 2, - .director_doveadm_port = 0 + .director_doveadm_port = 0, + .director_output_buffer_size = 10 * 1024 * 1024, }; const struct setting_parser_info director_setting_parser_info = {
--- a/src/director/director-settings.h Mon Oct 16 13:53:58 2017 +0300 +++ b/src/director/director-settings.h Wed Oct 25 17:18:03 2017 +0300 @@ -15,6 +15,7 @@ unsigned int director_user_kick_delay; in_port_t director_doveadm_port; bool director_consistent_hashing; + uoff_t director_output_buffer_size; }; extern const struct setting_parser_info director_setting_parser_info;