From 0194f2957ddbc9001b8274207d4b63d291b8b29b Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Wed, 23 Jul 2008 09:15:20 +0000 Subject: [PATCH] Make some tweaks to bsmtp based on patch submitted in bug #1124. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7421 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/tools/bsmtp.c | 28 +++++++++++++++------------- bacula/technotes-2.5 | 2 ++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/bacula/src/tools/bsmtp.c b/bacula/src/tools/bsmtp.c index 5e6124ba24..a139ba427c 100644 --- a/bacula/src/tools/bsmtp.c +++ b/bacula/src/tools/bsmtp.c @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2001-2007 Free Software Foundation Europe e.V. + Copyright (C) 2001-2008 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -480,19 +480,19 @@ hp: * we do. */ get_response(); /* banner */ - chat("helo %s\r\n", my_hostname); - chat("mail from:%s\r\n", cleanup_addr(from_addr, buf, sizeof(buf))); + chat("HELO %s\r\n", my_hostname); + chat("MAIL FROM:%s\r\n", cleanup_addr(from_addr, buf, sizeof(buf))); for (i = 0; i < argc; i++) { Dmsg1(20, "rcpt to: %s\n", argv[i]); - chat("rcpt to:%s\r\n", cleanup_addr(argv[i], buf, sizeof(buf))); + chat("RCPT TO:%s\r\n", cleanup_addr(argv[i], buf, sizeof(buf))); } if (cc_addr) { - chat("rcpt to:%s\r\n", cleanup_addr(cc_addr, buf, sizeof(buf))); + chat("RCPT TO:%s\r\n", cleanup_addr(cc_addr, buf, sizeof(buf))); } Dmsg0(20, "Data\n"); - chat("data\r\n"); + chat("DATA\r\n"); /* * Send message header @@ -565,28 +565,30 @@ hp: while (fgets(buf, sizeof(buf), stdin)) { if (maxlines > 0 && ++lines > maxlines) { Dmsg1(20, "skip line because of maxlines limit: %lu\n", maxlines); + while (fgets(buf, sizeof(buf), stdin)) { + ++lines; + } break; } buf[sizeof(buf)-1] = '\0'; buf[strlen(buf)-1] = '\0'; - if (buf[0] == '.' && buf[1] == '\0') { /* quote lone dots */ - fputs("..\r\n", sfp); - } else { /* pass body through unchanged */ - fputs(buf, sfp); - fputs("\r\n", sfp); + if (buf[0] == '.') { /* add extra . see RFC 2821 4.5.2 */ + fputs(".", sfp); } + fputs(buf, sfp); + fputs("\r\n", sfp); } if (lines > maxlines) { Dmsg1(10, "hit maxlines limit: %lu\n", maxlines); - fprintf(sfp, "\r\n[maximum of %lu lines exceeded, skipped %lu lines of output]\r\n", maxlines, lines-maxlines); + fprintf(sfp, "\r\n\r\n[maximum of %lu lines exceeded, skipped %lu lines of output]\r\n", maxlines, lines-maxlines); } /* * Send SMTP quit command */ chat(".\r\n"); - chat("quit\r\n"); + chat("QUIT\r\n"); /* * Go away gracefully ... diff --git a/bacula/technotes-2.5 b/bacula/technotes-2.5 index 161cf23624..2bc7822ba3 100644 --- a/bacula/technotes-2.5 +++ b/bacula/technotes-2.5 @@ -33,6 +33,8 @@ separator in console (!$%&'()*+,-/:;<>?[]^`{|}~) General: 23Jul08 +kes Make some tweaks to bsmtp based on patch submitted in bug #1124. + This fixes bug #1124. kes Make the default bat restore Pool be Any. This fixes bug #1118. 22Jul08 kes Remove debug statement that crashes the SD at the end of -- 2.39.5