Fixed TCP_NODELAY being applied to sockets.

This commit is contained in:
Markus Makela
2015-07-23 17:59:48 +03:00
parent e48b70f62f
commit c6389287ba

View File

@ -1344,7 +1344,7 @@ int gw_MySQLListener(
struct sockaddr *current_addr; struct sockaddr *current_addr;
int one = 1; int one = 1;
int rc; int rc;
bool is_tcp = false;
memset(&serv_addr,0,sizeof(serv_addr)); memset(&serv_addr,0,sizeof(serv_addr));
memset(&local_addr,0,sizeof(local_addr)); memset(&local_addr,0,sizeof(local_addr));
@ -1385,6 +1385,7 @@ int gw_MySQLListener(
} }
current_addr = (struct sockaddr *) &serv_addr; current_addr = (struct sockaddr *) &serv_addr;
is_tcp = true;
} }
listen_dcb->fd = -1; listen_dcb->fd = -1;
@ -1394,10 +1395,12 @@ int gw_MySQLListener(
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,"Error: Failed to set socket options. Error %d: %s",errno,strerror(errno)))); LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,"Error: Failed to set socket options. Error %d: %s",errno,strerror(errno))));
} }
if(is_tcp)
{
if((syseno = setsockopt(l_so, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one))) != 0){ if((syseno = setsockopt(l_so, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one))) != 0){
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,"Error: Failed to set socket options. Error %d: %s",errno,strerror(errno)))); LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,"Error: Failed to set socket options. Error %d: %s",errno,strerror(errno))));
} }
}
// set NONBLOCKING mode // set NONBLOCKING mode
setnonblocking(l_so); setnonblocking(l_so);