]> git.sur5r.net Git - bacula/bacula/commitdiff
Make some tweaks to bsmtp based on patch submitted in bug #1124.
authorKern Sibbald <kern@sibbald.com>
Wed, 23 Jul 2008 09:15:20 +0000 (09:15 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 23 Jul 2008 09:15:20 +0000 (09:15 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7421 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/tools/bsmtp.c
bacula/technotes-2.5

index 5e6124ba249c8115048b6662aaad19f1d4492056..a139ba427ccce9249e63495e77044ac1ede6ef4e 100644 (file)
@@ -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 ...
index 161cf23624b1988b1d1d1744c40f133f653cdc24..2bc7822ba392341c7692d31787498599f4565c1e 100644 (file)
@@ -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