[git commit] mail: commonalize send_r_n()

Denys Vlasenko vda.linux at googlemail.com
Thu Dec 17 11:34:25 UTC 2020


commit: https://git.busybox.net/busybox/commit/?id=b6237c0657074e8a61b2123601df36389659b603
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
send_mail_command                                     85      55     -30

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 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


More information about the busybox-cvs mailing list