Merge branch '2.2' into develop
This commit is contained in:
@ -2405,21 +2405,7 @@ DCB* dcb_accept(DCB* dcb)
|
||||
{
|
||||
dcb->stats.n_accepts++;
|
||||
|
||||
/* set nonblocking */
|
||||
sendbuf = MXS_CLIENT_SO_SNDBUF;
|
||||
|
||||
if (setsockopt(c_sock, SOL_SOCKET, SO_SNDBUF, &sendbuf, optlen) != 0)
|
||||
{
|
||||
MXS_ERROR("Failed to set socket options: %d, %s", errno, mxs_strerror(errno));
|
||||
}
|
||||
|
||||
sendbuf = MXS_CLIENT_SO_RCVBUF;
|
||||
|
||||
if (setsockopt(c_sock, SOL_SOCKET, SO_RCVBUF, &sendbuf, optlen) != 0)
|
||||
{
|
||||
MXS_ERROR("Failed to set socket options: %d, %s", errno, mxs_strerror(errno));
|
||||
}
|
||||
setnonblocking(c_sock);
|
||||
configure_network_socket(c_sock, client_conn.ss_family);
|
||||
|
||||
client_dcb = dcb_alloc(DCB_ROLE_CLIENT_HANDLER, dcb->listener);
|
||||
|
||||
|
@ -348,9 +348,12 @@ static void sigterm_handler(int i)
|
||||
|
||||
if (n_shutdowns == 1)
|
||||
{
|
||||
if (write(STDERR_FILENO, shutdown_msg, sizeof(shutdown_msg) - 1) == -1)
|
||||
if (!daemon_mode)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
if (write(STDERR_FILENO, shutdown_msg, sizeof(shutdown_msg) - 1) == -1)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -366,16 +369,22 @@ static void sigint_handler(int i)
|
||||
|
||||
if (n_shutdowns == 1)
|
||||
{
|
||||
if (write(STDERR_FILENO, shutdown_msg, sizeof(shutdown_msg) - 1) == -1)
|
||||
if (!daemon_mode)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
if (write(STDERR_FILENO, shutdown_msg, sizeof(shutdown_msg) - 1) == -1)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (n_shutdowns == 2)
|
||||
{
|
||||
if (write(STDERR_FILENO, patience_msg, sizeof(patience_msg) - 1) == -1)
|
||||
if (!daemon_mode)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
if (write(STDERR_FILENO, patience_msg, sizeof(patience_msg) - 1) == -1)
|
||||
{
|
||||
printf("Failed to write shutdown message!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1919,6 +1928,11 @@ int main(int argc, char** argv)
|
||||
mxs_log_finish();
|
||||
}
|
||||
|
||||
if (cnf->log_target != MXB_LOG_TARGET_STDOUT && daemon_mode)
|
||||
{
|
||||
mxs_log_redirect_stdout(true);
|
||||
}
|
||||
|
||||
if (!init_log())
|
||||
{
|
||||
rc = MAXSCALE_BADCONFIG;
|
||||
|
@ -983,17 +983,18 @@ void utils_end()
|
||||
replace_values_re = NULL;
|
||||
}
|
||||
|
||||
static bool configure_network_socket(int so)
|
||||
bool configure_network_socket(int so, int type)
|
||||
{
|
||||
int sndbufsize = MXS_BACKEND_SO_SNDBUF;
|
||||
int rcvbufsize = MXS_BACKEND_SO_RCVBUF;
|
||||
int sndbufsize = MXS_SO_SNDBUF_SIZE;
|
||||
int rcvbufsize = MXS_SO_RCVBUF_SIZE;
|
||||
int one = 1;
|
||||
|
||||
if (setsockopt(so, SOL_SOCKET, SO_SNDBUF, &sndbufsize, sizeof(sndbufsize)) != 0
|
||||
|| setsockopt(so, SOL_SOCKET, SO_RCVBUF, &rcvbufsize, sizeof(rcvbufsize)) != 0
|
||||
|| setsockopt(so, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) != 0)
|
||||
|| (type != AF_UNIX && setsockopt(so, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)) != 0))
|
||||
{
|
||||
MXS_ERROR("Failed to set socket option: %d, %s.", errno, mxs_strerror(errno));
|
||||
mxb_assert(!true);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1065,7 +1066,7 @@ int open_network_socket(enum mxs_socket_type type,
|
||||
|
||||
freeaddrinfo(ai);
|
||||
|
||||
if ((type == MXS_SOCKET_NETWORK && !configure_network_socket(so))
|
||||
if ((type == MXS_SOCKET_NETWORK && !configure_network_socket(so, addr->ss_family))
|
||||
|| (type == MXS_SOCKET_LISTENER && !configure_listener_socket(so)))
|
||||
{
|
||||
close(so);
|
||||
|
Reference in New Issue
Block a user