summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--misc/conf/zabbix_agentd.conf4
-rw-r--r--misc/conf/zabbix_trapperd.conf6
-rw-r--r--src/zabbix_agent/zabbix_agent.c6
-rw-r--r--src/zabbix_agent/zabbix_agentd.c42
-rw-r--r--src/zabbix_sucker/zabbix_sucker.c6
-rw-r--r--src/zabbix_trapper/zabbix_trapper.c6
-rw-r--r--src/zabbix_trapper/zabbix_trapperd.c27
8 files changed, 67 insertions, 35 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bfe2012..10f07c6f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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));