summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-04-28 13:44:41 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-04-28 13:44:41 +0000
commitfd525f5e1258d391771d4ce2b356bc80dd2bf4d2 (patch)
tree94dd87c5554f0349f9abd1e225aea5eb86792557 /src
parentce3e7c62fe2d15e0fee98472839505425c7467ec (diff)
downloadzabbix-fd525f5e1258d391771d4ce2b356bc80dd2bf4d2.tar.gz
zabbix-fd525f5e1258d391771d4ce2b356bc80dd2bf4d2.tar.xz
zabbix-fd525f5e1258d391771d4ce2b356bc80dd2bf4d2.zip
More support for active checks.
git-svn-id: svn://svn.zabbix.com/trunk@1730 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_server/trapper.c39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/zabbix_server/trapper.c b/src/zabbix_server/trapper.c
index d691f51f..6c41ecbb 100644
--- a/src/zabbix_server/trapper.c
+++ b/src/zabbix_server/trapper.c
@@ -59,6 +59,7 @@ int process_trap(int sockfd,char *s)
{
char *p;
char *server,*key,*value_string;
+ char result[MAX_STRING_LEN];
int ret=SUCCEED;
@@ -92,6 +93,23 @@ int process_trap(int sockfd,char *s)
}
ret=process_data(sockfd,server,key,value_string);
+ if( SUCCEED == ret)
+ {
+ snprintf(result,sizeof(result)-1,"OK\n");
+ }
+ else
+ {
+ snprintf(result,sizeof(result)-1,"NOT OK\n");
+ }
+ zabbix_log( LOG_LEVEL_DEBUG, "Sending back [%s]", result);
+ zabbix_log( LOG_LEVEL_DEBUG, "Length [%d]", strlen(result));
+ zabbix_log( LOG_LEVEL_DEBUG, "Sockfd [%d]", sockfd);
+ if( write(sockfd,result,strlen(result)) == -1)
+ {
+ zabbix_log( LOG_LEVEL_WARNING, "Error sending result back [%s]",strerror(errno));
+ zabbix_syslog("Trapper: error sending result back [%s]",strerror(errno));
+ }
+ zabbix_log( LOG_LEVEL_DEBUG, "After write()");
}
return ret;
}
@@ -100,7 +118,6 @@ void process_trapper_child(int sockfd)
{
ssize_t nread;
char line[MAX_STRING_LEN];
- char result[MAX_STRING_LEN];
static struct sigaction phan;
phan.sa_handler = &signal_handler;
@@ -134,23 +151,9 @@ void process_trapper_child(int sockfd)
}
zabbix_log( LOG_LEVEL_DEBUG, "Got line:%s", line);
- if( SUCCEED == process_trap(sockfd,line) )
- {
- snprintf(result,sizeof(result)-1,"OK\n");
- }
- else
- {
- snprintf(result,sizeof(result)-1,"NOT OK\n");
- }
- zabbix_log( LOG_LEVEL_DEBUG, "Sending back [%s]", result);
- zabbix_log( LOG_LEVEL_DEBUG, "Length [%d]", strlen(result));
- zabbix_log( LOG_LEVEL_DEBUG, "Sockfd [%d]", sockfd);
- if( write(sockfd,result,strlen(result)) == -1)
- {
- zabbix_log( LOG_LEVEL_WARNING, "Error sending result back [%s]",strerror(errno));
- zabbix_syslog("Trapper: error sending result back [%s]",strerror(errno));
- }
- zabbix_log( LOG_LEVEL_DEBUG, "After write()");
+
+ process_trap(sockfd,line);
+
alarm(0);
}