diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | misc/conf/zabbix_agentd.conf | 4 | ||||
-rw-r--r-- | misc/conf/zabbix_trapperd.conf | 6 | ||||
-rw-r--r-- | src/zabbix_agent/zabbix_agent.c | 6 | ||||
-rw-r--r-- | src/zabbix_agent/zabbix_agentd.c | 42 | ||||
-rw-r--r-- | src/zabbix_sucker/zabbix_sucker.c | 6 | ||||
-rw-r--r-- | src/zabbix_trapper/zabbix_trapper.c | 6 | ||||
-rw-r--r-- | src/zabbix_trapper/zabbix_trapperd.c | 27 |
8 files changed, 67 insertions, 35 deletions
@@ -1,8 +1,7 @@ Changes for 1.0beta2: -(Is connection via Unix socket faster ?) -(Add reconnect in case if server gone) -(net_listen[] should be unsupported) + - added parameter ListenPort to zabbix_agentd and zabbix_trapperd + (Alexei) - all *.html documents were renamed to *.php (Alexei) - clean compilation on HP-UX 11.xx (Alexei) - change host status to Unreachable if agent drops connection (Alexei) diff --git a/misc/conf/zabbix_agentd.conf b/misc/conf/zabbix_agentd.conf index 1efd02aa..1d235ed5 100644 --- a/misc/conf/zabbix_agentd.conf +++ b/misc/conf/zabbix_agentd.conf @@ -7,6 +7,10 @@ Server=127.0.0.1 +# Listen port. Default is 10000 + +ListenPort=10000 + # Number of pre-forked instances of zabbix_agentd. # Default value is 5 # This parameter must be between 1 and 16 diff --git a/misc/conf/zabbix_trapperd.conf b/misc/conf/zabbix_trapperd.conf index 6003e56b..f4847cc9 100644 --- a/misc/conf/zabbix_trapperd.conf +++ b/misc/conf/zabbix_trapperd.conf @@ -7,8 +7,14 @@ # Number of pre-forked instances of zabbix_trapperd # Default value is 5 # This parameter must be between 2 and 255 + StartTrappers=5 +# Listen port. Default port number is 10001. This parameter +# must be between 1024 and 32767 + +ListenPort=10001 + # Specifies debug level # 1 - critical information # 2 - warnings (default) diff --git a/src/zabbix_agent/zabbix_agent.c b/src/zabbix_agent/zabbix_agent.c index 39128f22..04a780bd 100644 --- a/src/zabbix_agent/zabbix_agent.c +++ b/src/zabbix_agent/zabbix_agent.c @@ -56,9 +56,11 @@ void process_config_file(void) exit(1); } - lineno=1; + lineno=0; while(fgets(line,1024,file) != NULL) { + lineno++; + if(line[0]=='#') continue; if(strlen(line)==1) continue; @@ -103,8 +105,6 @@ void process_config_file(void) fclose(file); exit(1); } - - lineno++; } fclose(file); } diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c index 00537c99..c9ec426f 100644 --- a/src/zabbix_agent/zabbix_agentd.c +++ b/src/zabbix_agent/zabbix_agentd.c @@ -39,8 +39,9 @@ static pid_t *pids; -char *config_host_allowed=NULL; -int config_agentd_forks=AGENTD_FORKS; +char *CONFIG_HOST_ALLOWED=NULL; +int CONFIG_AGENTD_FORKS=AGENTD_FORKS; +int CONFIG_LISTEN_PORT=10000; void signal_handler( int sig ) { @@ -139,9 +140,11 @@ void process_config_file(void) exit(1); } - lineno=1; + lineno=0; while(fgets(line,1024,file) != NULL) { + lineno++; + if(line[0]=='#') continue; if(strlen(line)==1) continue; @@ -164,7 +167,7 @@ void process_config_file(void) if(strcmp(parameter,"Server")==0) { - config_host_allowed=strdup(value); + CONFIG_HOST_ALLOWED=strdup(value); } else if(strcmp(parameter,"StartAgents")==0) { @@ -175,7 +178,18 @@ void process_config_file(void) fclose(file); exit(1); } - config_agentd_forks=i; + CONFIG_AGENTD_FORKS=i; + } + else if(strcmp(parameter,"ListenPort")==0) + { + i=atoi(value); + if( (i<=1024) || (i>32767) ) + { + syslog( LOG_CRIT, "Wrong value of ListenPort in line %d. Should be between 1024 and 32767.", lineno); + fclose(file); + exit(1); + } + CONFIG_LISTEN_PORT=i; } else if(strcmp(parameter,"DebugLevel")==0) { @@ -219,7 +233,6 @@ void process_config_file(void) exit(1); } - lineno++; } fclose(file); } @@ -236,9 +249,9 @@ int check_security(int sockfd) sname=inet_ntoa(name.sin_addr); - if(strcmp(sname, config_host_allowed)!=0) + if(strcmp(sname, CONFIG_HOST_ALLOWED)!=0) { - syslog( LOG_WARNING, "Connection from [%s] rejected. Allowed server is [%s] ",sname, config_host_allowed); + syslog( LOG_WARNING, "Connection from [%s] rejected. Allowed server is [%s] ",sname, CONFIG_HOST_ALLOWED); return FAIL; } } @@ -291,7 +304,7 @@ void process_child(int sockfd) alarm(0); } -int tcp_listen(const char *host, const char *serv, socklen_t *addrlenp) +int tcp_listen(const char *host, int port, socklen_t *addrlenp) { int sockfd; struct sockaddr_in serv_addr; @@ -305,11 +318,11 @@ int tcp_listen(const char *host, const char *serv, 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); - serv_addr.sin_port = htons(10000); + serv_addr.sin_port = htons(port); if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) { - syslog( LOG_CRIT, "Cannot bind to port %d. Another zabbix_agentd already running ?",10000); + syslog( LOG_CRIT, "Cannot bind to port %d. Another zabbix_agentd already running ?", port); exit(1); } @@ -369,7 +382,6 @@ int main() int i; char host[128]; - char *port="10000"; static struct sigaction phan; @@ -392,11 +404,11 @@ int main() exit(FAIL); } - listenfd = tcp_listen(host,port,&addrlen); + listenfd = tcp_listen(host,CONFIG_LISTEN_PORT,&addrlen); - pids = calloc(config_agentd_forks, sizeof(pid_t)); + pids = calloc(CONFIG_AGENTD_FORKS, sizeof(pid_t)); - for(i = 0; i<config_agentd_forks; i++) + for(i = 0; i<CONFIG_AGENTD_FORKS; i++) { pids[i] = child_make(i, listenfd, addrlen); /* syslog( LOG_WARNING, "zabbix_agentd #%d started", pids[i]);*/ diff --git a/src/zabbix_sucker/zabbix_sucker.c b/src/zabbix_sucker/zabbix_sucker.c index 6acaf8ef..aadd770b 100644 --- a/src/zabbix_sucker/zabbix_sucker.c +++ b/src/zabbix_sucker/zabbix_sucker.c @@ -138,9 +138,11 @@ void process_config_file(void) exit(1); } - lineno=1; + lineno=0; while(fgets(line,1024,file) != NULL) { + lineno++; + if(line[0]=='#') continue; if(strlen(line)==1) continue; @@ -226,8 +228,6 @@ void process_config_file(void) fclose(file); exit(1); } - - lineno++; } fclose(file); diff --git a/src/zabbix_trapper/zabbix_trapper.c b/src/zabbix_trapper/zabbix_trapper.c index b586a9f8..c4e51495 100644 --- a/src/zabbix_trapper/zabbix_trapper.c +++ b/src/zabbix_trapper/zabbix_trapper.c @@ -65,9 +65,11 @@ void process_config_file(void) exit(1); } - lineno=1; + lineno=0; while(fgets(line,1024,file) != NULL) { + lineno++; + if(line[0]=='#') continue; if(strlen(line)==1) continue; @@ -131,8 +133,6 @@ void process_config_file(void) fclose(file); exit(1); } - - lineno++; } fclose(file); diff --git a/src/zabbix_trapper/zabbix_trapperd.c b/src/zabbix_trapper/zabbix_trapperd.c index c900abeb..fab453a1 100644 --- a/src/zabbix_trapper/zabbix_trapperd.c +++ b/src/zabbix_trapper/zabbix_trapperd.c @@ -33,6 +33,7 @@ static pid_t *pids; int CONFIG_TRAPPERD_FORKS = TRAPPERD_FORKS; +int CONFIG_LISTEN_PORT = 10001; char *CONFIG_DBNAME = NULL; char *CONFIG_DBUSER = NULL; char *CONFIG_DBPASSWORD = NULL; @@ -70,9 +71,11 @@ void process_config_file(void) exit(1); } - lineno=1; + lineno=0; while(fgets(line,1024,file) != NULL) { + lineno++; + if(line[0]=='#') continue; if(strlen(line)==1) continue; @@ -104,6 +107,17 @@ void process_config_file(void) } CONFIG_TRAPPERD_FORKS=i; } + else if(strcmp(parameter,"ListenPort")==0) + { + i=atoi(value); + if( (i<=1024) || (i>32767) ) + { + syslog( LOG_CRIT, "Wrong value of ListenPort in line %d. Should be between 1024 and 32768.", lineno); + fclose(file); + exit(1); + } + CONFIG_LISTEN_PORT=i; + } else if(strcmp(parameter,"DebugLevel")==0) { if(strcmp(value,"1") == 0) @@ -147,8 +161,6 @@ void process_config_file(void) fclose(file); exit(1); } - - lineno++; } fclose(file); @@ -276,7 +288,7 @@ void process_child(int sockfd) alarm(0); } -int tcp_listen(const char *host, const char *serv, socklen_t *addrlenp) +int tcp_listen(const char *host, int port, socklen_t *addrlenp) { int sockfd; struct sockaddr_in serv_addr; @@ -290,11 +302,11 @@ int tcp_listen(const char *host, const char *serv, 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); - serv_addr.sin_port = htons(10001); + serv_addr.sin_port = htons(port); if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) { - syslog( LOG_CRIT, "Cannot bind to port %d. Another zabbix_trapperd running ?",10001); + syslog( LOG_CRIT, "Cannot bind to port %d. Another zabbix_trapperd running ?", port); exit(1); } @@ -355,7 +367,6 @@ int main() int i; char host[128]; - char *port="10001"; static struct sigaction phan; @@ -378,7 +389,7 @@ int main() exit(FAIL); } - listenfd = tcp_listen(host,port,&addrlen); + listenfd = tcp_listen(host,CONFIG_LISTEN_PORT,&addrlen); pids = calloc(CONFIG_TRAPPERD_FORKS, sizeof(pid_t)); |