diff -urN zabbix-1.1.3.orig/src/zabbix_server/server.c zabbix-1.1.3/src/zabbix_server/server.c --- zabbix-1.1.3.orig/src/zabbix_server/server.c 2006-10-25 08:23:50.000000000 -0400 +++ zabbix-1.1.3/src/zabbix_server/server.c 2006-10-25 08:36:04.000000000 -0400 @@ -100,6 +100,7 @@ /* 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;*/ @@ -342,6 +343,7 @@ {"UnreachableDelay",&CONFIG_UNREACHABLE_DELAY,0,TYPE_INT,PARM_OPT,1,3600}, {"UnavailableDelay",&CONFIG_UNAVAILABLE_DELAY,0,TYPE_INT,PARM_OPT,1,3600}, {"ListenPort",&CONFIG_LISTEN_PORT,0,TYPE_INT,PARM_OPT,1024,32768}, + {"ListenIP",&CONFIG_LISTEN_IP,0,TYPE_STRING,PARM_OPT,0,0}, /* {"NoTimeWait",&CONFIG_NOTIMEWAIT,0,TYPE_INT,PARM_OPT,0,1},*/ {"DisablePinger",&CONFIG_DISABLE_PINGER,0,TYPE_INT,PARM_OPT,0,1}, {"DisableHousekeeping",&CONFIG_DISABLE_HOUSEKEEPING,0,TYPE_INT,PARM_OPT,0,1}, @@ -448,7 +450,14 @@ 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)