check_tcp was returning uninitialized string with user-defined refused outcome

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@833 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
Karl DeBisschop 2004-03-01 12:27:19 +00:00
parent f7c1eca1c4
commit 3c81964713
2 changed files with 18 additions and 9 deletions

View file

@ -206,6 +206,7 @@ main (int argc, char **argv)
server_port = PORT;
server_send = SEND;
server_quit = QUIT;
status = strdup ("");
if (process_arguments (argc, argv) == ERROR)
usage (_("Could not parse arguments\n"));
@ -259,7 +260,6 @@ main (int argc, char **argv)
buffer = malloc (MAXBUF);
memset (buffer, '\0', MAXBUF);
status = strdup ("");
/* watch for the expect string */
while ((i = my_recv ()) > 0) {
buffer[i] = '\0';
@ -271,7 +271,7 @@ main (int argc, char **argv)
}
/* return a CRITICAL status if we couldn't read any data */
if (status == NULL)
if (strlen(status) == 0)
die (STATE_CRITICAL, _("No data received from host\n"));
strip (status);

View file

@ -252,11 +252,7 @@ my_connect (const char *host_name, int port, int *sd, int proto)
if (result < 0) {
switch (errno) {
case ECONNREFUSED:
switch (econn_refuse_state) {
case STATE_OK:
case STATE_WARNING:
was_refused = TRUE;
}
was_refused = TRUE;
break;
}
}
@ -269,8 +265,21 @@ my_connect (const char *host_name, int port, int *sd, int proto)
if (result == 0)
return STATE_OK;
else if (was_refused)
return econn_refuse_state;
else if (was_refused) {
switch (econn_refuse_state) { /* a user-defined expected outcome */
case STATE_OK:
case STATE_WARNING: /* user wants WARN or OK on refusal */
return econn_refuse_state;
break;
case STATE_CRITICAL: /* user did not set econn_refuse_state */
printf ("%s\n", strerror(errno));
return econn_refuse_state;
break;
default: /* it's a logic error if we do not end up in STATE_(OK|WARNING|CRITICAL) */
return STATE_UNKNOWN;
break;
}
}
else {
printf ("%s\n", strerror(errno));
return STATE_CRITICAL;