aboutsummaryrefslogtreecommitdiffstats
path: root/sink.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2001-07-02 01:40:30 +0000
committerEric S. Raymond <esr@thyrsus.com>2001-07-02 01:40:30 +0000
commit200d2e7f1f2a00ceccba0e088674496ec403a4c1 (patch)
tree5bb9c5a672d7ce411e41cfd22e9b6f5c60e806f4 /sink.c
parentee4b6d57d007e30d3feb7951a5bb704c88b40fe0 (diff)
downloadfetchmail-200d2e7f1f2a00ceccba0e088674496ec403a4c1.tar.gz
fetchmail-200d2e7f1f2a00ceccba0e088674496ec403a4c1.tar.bz2
fetchmail-200d2e7f1f2a00ceccba0e088674496ec403a4c1.zip
Ready to ship.
svn path=/trunk/; revision=3389
Diffstat (limited to 'sink.c')
-rw-r--r--sink.c13
1 files changed, 12 insertions, 1 deletions
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);
}
}