summaryrefslogtreecommitdiffstats
path: root/src/zabbix_agent
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-06-24 12:25:34 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-06-24 12:25:34 +0000
commit91569219c172fea78ae0a95368a1aa7cccd92779 (patch)
tree13160d591e29130ba78a321d16454792a746075d /src/zabbix_agent
parent305fbb4a83625bb5e63356c86c626c401e9df2b2 (diff)
downloadzabbix-91569219c172fea78ae0a95368a1aa7cccd92779.tar.gz
zabbix-91569219c172fea78ae0a95368a1aa7cccd92779.tar.xz
zabbix-91569219c172fea78ae0a95368a1aa7cccd92779.zip
- 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
Diffstat (limited to 'src/zabbix_agent')
-rw-r--r--src/zabbix_agent/zabbix_agentd.c10
1 files changed, 10 insertions, 0 deletions
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)
{