# HG changeset patch # User Timo Sirainen # Date 1508941083 -10800 # Node ID f733d647ff820f8d1046045250fa29b96f1a0cd5 # Parent c0417a608a71cc03f1e2e1043b2a1775c3a690c7 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. diff -r c0417a608a71 -r f733d647ff82 src/director/director-connection.c --- 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 #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; diff -r c0417a608a71 -r f733d647ff82 src/director/director-settings.c --- 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 = { diff -r c0417a608a71 -r f733d647ff82 src/director/director-settings.h --- 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;