diff options
| author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-04-28 13:44:41 +0000 |
|---|---|---|
| committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-04-28 13:44:41 +0000 |
| commit | fd525f5e1258d391771d4ce2b356bc80dd2bf4d2 (patch) | |
| tree | 94dd87c5554f0349f9abd1e225aea5eb86792557 /src | |
| parent | ce3e7c62fe2d15e0fee98472839505425c7467ec (diff) | |
| download | zabbix-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.c | 39 |
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); } |
