Merge pull request #1382 from riskersen/smtp_tls_expec

check_smtp: extended support for expect option
This commit is contained in:
Oliver Skibbe 2016-11-19 16:38:07 +01:00 committed by GitHub
commit 6438fec788

View file

@ -124,6 +124,7 @@ main (int argc, char **argv)
char *cmd_str = NULL;
char *helocmd = NULL;
char *error_msg = "";
char *server_response = NULL;
struct timeval tv;
/* Catch pipe errors in read/write - sometimes occurs when writing QUIT */
@ -185,21 +186,9 @@ main (int argc, char **argv)
printf (_("recv() failed\n"));
return STATE_WARNING;
}
else {
if (verbose)
printf ("%s", buffer);
/* strip the buffer of carriage returns */
strip (buffer);
/* make sure we find the response we are looking for */
if (!strstr (buffer, server_expect)) {
if (server_port == SMTP_PORT)
printf (_("Invalid SMTP response received from host: %s\n"), buffer);
else
printf (_("Invalid SMTP response received from host on port %d: %s\n"),
server_port, buffer);
return STATE_WARNING;
}
}
/* save connect return (220 hostname ..) for later use */
xasprintf(&server_response, "%s", buffer);
/* send the HELO/EHLO command */
send(sd, helocmd, strlen(helocmd), 0);
@ -280,6 +269,24 @@ main (int argc, char **argv)
}
#endif
if (verbose)
printf ("%s", buffer);
/* save buffer for later use */
xasprintf(&server_response, "%s%s", server_response, buffer);
/* strip the buffer of carriage returns */
strip (server_response);
/* make sure we find the droids we are looking for */
if (!strstr (server_response, server_expect)) {
if (server_port == SMTP_PORT)
printf (_("Invalid SMTP response received from host: %s\n"), server_response);
else
printf (_("Invalid SMTP response received from host on port %d: %s\n"),
server_port, server_response);
return STATE_WARNING;
}
if (send_mail_from) {
my_send(cmd_str, strlen(cmd_str));
if (recvlines(buffer, MAX_INPUT_BUFFER) >= 1 && verbose)