From 200d2e7f1f2a00ceccba0e088674496ec403a4c1 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Mon, 2 Jul 2001 01:40:30 +0000 Subject: Ready to ship. svn path=/trunk/; revision=3389 --- Makefile.in | 2 +- NEWS | 5 +++++ odmr.c | 8 +++++++- 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@ diff --git a/NEWS b/NEWS index b3fe4dc7..d3899185 100644 --- 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 06f9437d..d08b13d0 100644 --- 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 3e55b89a..291756e8 100644 --- 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); } } -- cgit v1.2.3