diff options
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | odmr.c | 8 | ||||
-rw-r--r-- | sink.c | 13 |
4 files changed, 25 insertions, 3 deletions
diff --git a/Makefile.in b/Makefile.in index a5042ff4..046a3c80 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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@ @@ -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: @@ -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 = @@ -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); } } |