aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.in2
-rw-r--r--NEWS5
-rw-r--r--odmr.c8
-rw-r--r--sink.c13
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);
}
}