From b6237c0657074e8a61b2123601df36389659b603 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 17 Dec 2020 12:34:25 +0100 Subject: [PATCH] mail: commonalize send_r_n() function old new delta send_mail_command 85 55 -30 Signed-off-by: Denys Vlasenko --- mailutils/mail.c | 11 ++++++++--- mailutils/mail.h | 1 + mailutils/popmaildir.c | 1 + mailutils/sendmail.c | 9 ++------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mailutils/mail.c b/mailutils/mail.c index ce5267904..9735d48f6 100644 --- a/mailutils/mail.c +++ b/mailutils/mail.c @@ -69,6 +69,13 @@ void FAST_FUNC launch_helper(const char **argv) // parent goes on } +void FAST_FUNC send_r_n(const char *s) +{ + if (G.verbose) + bb_error_msg("send:'%s'", s); + printf("%s\r\n", s); +} + char* FAST_FUNC send_mail_command(const char *fmt, const char *param) { char *msg; @@ -77,9 +84,7 @@ char* FAST_FUNC send_mail_command(const char *fmt, const char *param) msg = (char*)fmt; if (fmt) { msg = xasprintf(fmt, param); - if (G.verbose) - bb_error_msg("send:'%s'", msg); - printf("%s\r\n", msg); + send_r_n(msg); } fflush_all(); return msg; diff --git a/mailutils/mail.h b/mailutils/mail.h index 2fcd0802d..a07d535cf 100644 --- a/mailutils/mail.h +++ b/mailutils/mail.h @@ -28,6 +28,7 @@ struct globals { void launch_helper(const char **argv) FAST_FUNC; void get_cred_or_die(int fd) FAST_FUNC; +void send_r_n(const char *s) FAST_FUNC; char *send_mail_command(const char *fmt, const char *param) FAST_FUNC; void printbuf_base64(const char *buf, unsigned len) FAST_FUNC; diff --git a/mailutils/popmaildir.c b/mailutils/popmaildir.c index 4f2d4124d..1f2db2892 100644 --- a/mailutils/popmaildir.c +++ b/mailutils/popmaildir.c @@ -68,6 +68,7 @@ static void pop3_checkr(const char *fmt, const char *param, char **ret) { char *msg = send_mail_command(fmt, param); +//FIXME: limit max len!!! char *answer = xmalloc_fgetline(stdin); if (answer && '+' == answer[0]) { free(msg); diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c index 4bb90d3e2..1a01b7110 100644 --- a/mailutils/sendmail.c +++ b/mailutils/sendmail.c @@ -102,13 +102,6 @@ // set to 0 to not limit #define MAX_HEADERS 256 -static void send_r_n(const char *s) -{ - if (G.verbose) - bb_error_msg("send:'%s'", s); - printf("%s\r\n", s); -} - static int smtp_checkp(const char *fmt, const char *param, int code) { char *answer; @@ -119,6 +112,7 @@ static int smtp_checkp(const char *fmt, const char *param, int code) // if code = -1 then just return this number // if code != -1 then checks whether the number equals the code // if not equal -> die saying msg +//FIXME: limit max len!!! while ((answer = xmalloc_fgetline(stdin)) != NULL) { if (G.verbose) bb_error_msg("recv:'%.*s'", (int)(strchrnul(answer, '\r') - answer), answer); @@ -426,6 +420,7 @@ int sendmail_main(int argc UNUSED_PARAM, char **argv) // this means we scan stdin for To:, Cc:, Bcc: lines until an empty line // and then use the rest of stdin as message body code = 0; // set "analyze headers" mode +//FIXME: limit max len!!! while ((s = xmalloc_fgetline(G.fp0)) != NULL) { dump: // put message lines doubling leading dots