1
0
mirror of https://github.com/php/php-src.git synced 2026-03-26 17:22:15 +01:00

Merge branch 'PHP-5.6'

* PHP-5.6:
  Fix #70456: mysqlnd doesn't activate TCP keep-alive when connecting to a server

Resolved conflicts:
	ext/mysqlnd/mysqlnd_net.c
This commit is contained in:
Christoph M. Becker
2015-09-09 03:19:55 +02:00

View File

@@ -61,6 +61,27 @@ mysqlnd_set_sock_no_delay(php_stream * stream)
/* }}} */
/* {{{ mysqlnd_set_sock_keepalive */
static int
mysqlnd_set_sock_keepalive(php_stream * stream)
{
int socketd = ((php_netstream_data_t*)stream->abstract)->socket;
int ret = SUCCESS;
int flag = 1;
int result = setsockopt(socketd, SOL_SOCKET, SO_KEEPALIVE, (char *) &flag, sizeof(int));
DBG_ENTER("mysqlnd_set_sock_keepalive");
if (result == -1) {
ret = FAILURE;
}
DBG_RETURN(ret);
}
/* }}} */
/* {{{ mysqlnd_net::network_read_ex */
static enum_func_status
MYSQLND_METHOD(mysqlnd_net, network_read_ex)(MYSQLND_NET * const net, zend_uchar * const buffer, const size_t count,
@@ -260,6 +281,8 @@ MYSQLND_METHOD(mysqlnd_net, post_connect_set_opt)(MYSQLND_NET * const net,
if (!memcmp(scheme, "tcp://", sizeof("tcp://") - 1)) {
/* TCP -> Set TCP_NODELAY */
mysqlnd_set_sock_no_delay(net_stream);
/* TCP -> Set SO_KEEPALIVE */
mysqlnd_set_sock_keepalive(net_stream);
}
}