summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-10 18:20:22 +0000
committeralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-10 18:20:22 +0000
commitc779a874296a088e660b07ff886c7a11fa977f60 (patch)
treea47b47ac3b8fb4202282120b2dc4dd58313ddf4a
parentd477272a5fd321c30a14bf12604079a8e4346905 (diff)
downloadzabbix-c779a874296a088e660b07ff886c7a11fa977f60.tar.gz
zabbix-c779a874296a088e660b07ff886c7a11fa977f60.tar.xz
zabbix-c779a874296a088e660b07ff886c7a11fa977f60.zip
- support of ListenIP for ZABBIX server (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@3456 97f52cf1-0a1b-0410-bd0e-c28be96e8082
-rw-r--r--ChangeLog1
-rw-r--r--misc/conf/zabbix_server.conf7
-rw-r--r--src/zabbix_server/server.c11
3 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c170fb4..f4046fde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,7 @@ Integrated from 1.1.x
1.1.4
+ - support of ListenIP for ZABBIX server (Alexei)
- changed PostgreSQL last OID function to pg_last_oid() (Alexei)
- fix for start time in graph navigation (Alexei)
- minor fix for Spanish translation (Alexei)
diff --git a/misc/conf/zabbix_server.conf b/misc/conf/zabbix_server.conf
index 25794754..75061a81 100644
--- a/misc/conf/zabbix_server.conf
+++ b/misc/conf/zabbix_server.conf
@@ -24,11 +24,16 @@ StartPollers=6
# This parameter must be between 2 and 255
StartTrappers=5
-# Listen port for trapping. Default port number is 10051. This parameter
+# Listen port for trapper. Default port number is 10051. This parameter
# must be between 1024 and 32767
ListenPort=10051
+# Listen interface for trapper. Trapper will listen all network interfaces
+# if this parameter is missing.
+
+#ListenIP=127.0.0.1
+
# How often ZABBIX will perform housekeeping procedure
# (in hours)
# Default value is 1 hour
diff --git a/src/zabbix_server/server.c b/src/zabbix_server/server.c
index a53ce13d..f6067dd6 100644
--- a/src/zabbix_server/server.c
+++ b/src/zabbix_server/server.c
@@ -102,6 +102,7 @@ int CONFIG_POLLER_FORKS = POLLER_FORKS;
/* For trapper */
int CONFIG_TRAPPERD_FORKS = TRAPPERD_FORKS;
int CONFIG_LISTEN_PORT = 10051;
+char *CONFIG_LISTEN_IP = NULL;
int CONFIG_TRAPPER_TIMEOUT = TRAPPER_TIMEOUT;
/**/
/*int CONFIG_NOTIMEWAIT =0;*/
@@ -161,6 +162,7 @@ void init_config(void)
{"UnreachablePeriod",&CONFIG_UNREACHABLE_PERIOD,0,TYPE_INT,PARM_OPT,1,3600},
{"UnreachableDelay",&CONFIG_UNREACHABLE_DELAY,0,TYPE_INT,PARM_OPT,1,3600},
{"UnavailableDelay",&CONFIG_UNAVAILABLE_DELAY,0,TYPE_INT,PARM_OPT,1,3600},
+ {"ListenIP",&CONFIG_LISTEN_IP,0,TYPE_STRING,PARM_OPT,0,0},
{"ListenPort",&CONFIG_LISTEN_PORT,0,TYPE_INT,PARM_OPT,1024,32768},
/* {"NoTimeWait",&CONFIG_NOTIMEWAIT,0,TYPE_INT,PARM_OPT,0,1},*/
{"DisablePinger",&CONFIG_DISABLE_PINGER,0,TYPE_INT,PARM_OPT,0,1},
@@ -267,7 +269,14 @@ int tcp_listen(const char *host, int port, socklen_t *addrlenp)
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+ if(CONFIG_LISTEN_IP == NULL)
+ {
+ serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+ }
+ else
+ {
+ serv_addr.sin_addr.s_addr = inet_addr(CONFIG_LISTEN_IP);
+ }
serv_addr.sin_port = htons(port);
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)