]> Pileus Git - ~andy/fetchmail/commitdiff
Ready to ship.
authorEric S. Raymond <esr@thyrsus.com>
Mon, 2 Jul 2001 01:40:30 +0000 (01:40 -0000)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 2 Jul 2001 01:40:30 +0000 (01:40 -0000)
svn path=/trunk/; revision=3389

Makefile.in
NEWS
odmr.c
sink.c

index a5042ff4069a4fc9566d3f55861c43635fa8a656..046a3c80952575ec1dfdcd06db498d115f0867b6 100644 (file)
@@ -4,7 +4,7 @@
 # So just uncomment all the lines marked QNX.
 
 PACKAGE = fetchmail
-VERSION = 5.8.10
+VERSION = 5.8.11
 
 # Ultrix 2.2 make doesn't expand the value of VPATH.
 srcdir = @srcdir@
diff --git a/NEWS b/NEWS
index b3fe4dc72b510ab65c8efbce25125160b0079ce1..d389918516f9b27b10b6e0f827189786ded4af4e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,12 @@
 
 (The `lines' figures total .c, .h, .l, and .y files under version control.)
 
+fetchmail-5.8.11 (Sun Jul  1 21:39:26 EDT 2001), 20973 lines:
+
 * Signal-processing fix for Debian bug #102711.
+* More ODMR patches from Matt Armstrong.
+
+There are 353 people on fetchmail-friends and 607 on fetchmail-announce.
 
 fetchmail-5.8.10 (Mon Jun 25 17:04:08 EDT 2001), 20922 lines:
 
diff --git a/odmr.c b/odmr.c
index 06f9437d5736431aa1c4a93ed6b1c6453fb7d93e..d08b13d0c8e82f5d367bc93dc4dad9c22a21bb53 100644 (file)
--- a/odmr.c
+++ b/odmr.c
@@ -182,7 +182,13 @@ static int odmr_getrange(int sock, struct query *ctl, const char *id,
 static int odmr_logout(int sock, struct query *ctl)
 /* send logout command */
 {
-    return(gen_transact(sock, "QUIT"));
+    /* if we have a smtp_socket, then we've turned around and the
+       local smtp server is in control of the connection (so we don't
+       send QUIT) */
+    if (ctl->smtp_socket == -1)
+       return(gen_transact(sock, "QUIT"));
+    else
+       return(PS_SUCCESS);
 }
 
 const static struct method odmr =
diff --git a/sink.c b/sink.c
index 3e55b89a1867581fe8ae768805b3b793d7450f0c..291756e8990a0df651459bf8566f7744ee6e5d25 100644 (file)
--- a/sink.c
+++ b/sink.c
@@ -127,6 +127,10 @@ int smtp_open(struct query *ctl)
                                             ctl->server.plugout)) == -1)
                continue;
 
+           /* return immediately for ODMR */
+           if (ctl->server.protocol == P_ODMR)
+               return(ctl->smtp_socket); /* success */
+
            /* are we doing SMTP or LMTP? */
            SMTP_setmode(ctl->listener);
 
@@ -729,6 +733,13 @@ int open_sink(struct query *ctl, struct msgblk *msg,
         */
        if (!(*good_addresses)) 
        {
+           if (!run.postmaster[0])
+           {
+               if (outlevel >= O_VERBOSE)
+                   report(stderr, _("no address matches; no postmaster set.\n"));
+               SMTP_rset(ctl->smtp_socket);    /* required by RFC1870 */
+               return(PS_REFUSED);
+           }
            if (strchr(run.postmaster, '@'))
                strncpy(addr, run.postmaster, sizeof(addr));
            else
@@ -1005,7 +1016,7 @@ int close_sink(struct query *ctl, struct msgblk *msg, flag forward)
        if (rc)
        {
            report(stderr, 
-                  _("MDA exited abnormally or returned nonzero status\n"));
+                  _("MDA returned nonzero status %d\n"), rc);
            return(FALSE);
        }
     }