From 91569219c172fea78ae0a95368a1aa7cccd92779 Mon Sep 17 00:00:00 2001 From: hugetoad Date: Sat, 24 Jun 2006 12:25:34 +0000 Subject: - ZABBIX agent to bind even if TIME_WAIT sockets exist (Alexei) git-svn-id: svn://svn.zabbix.com/trunk@2973 97f52cf1-0a1b-0410-bd0e-c28be96e8082 --- src/zabbix_agent/zabbix_agentd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/zabbix_agent') diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c index ecf8d24d..430864e6 100644 --- a/src/zabbix_agent/zabbix_agentd.c +++ b/src/zabbix_agent/zabbix_agentd.c @@ -400,6 +400,7 @@ int tcp_listen(const char *host, int port, socklen_t *addrlenp) { int sockfd; struct sockaddr_in serv_addr; + int on; /* struct linger ling;*/ @@ -409,6 +410,15 @@ int tcp_listen(const char *host, int port, socklen_t *addrlenp) exit(1); } + /* Enable address reuse */ + /* This is to immediately use the address even if it is in TIME_WAIT state */ + /* http://www-128.ibm.com/developerworks/linux/library/l-sockpit/index.html */ + on = 1; + if( -1 == setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) )) + { + zabbix_log(LOG_LEVEL_WARNING, "Cannot setsockopt SO_REUSEADDR [%s]", strerror(errno)); + } + /* if(CONFIG_NOTIMEWAIT == 1) { -- cgit