aliases and mailing lists. Hopefully, this ends some of
the confusion surrounding virtual domain support. Updated
several FAQ entries concerning virtual domain support.
+
+ Documentation: added FAQ entry for the biff service.
cp `censored_ls conf/*` $CONFIG_DIRECTORY || exit 1
chmod a+r,go-w $CONFIG_DIRECTORY/* || exit 1
- test -z "$install_root" && {
- echo "Warning: you still need to edit myorigin/mydestination in" 1>&2
- echo "$CONFIG_DIRECTORY/main.cf. See also html/faq.html for dialup" 1>&2
- echo "sites or for sites inside a firewalled network." 1>&2
- echo "" 1>&2
- echo "BTW: Edit your alias database and be sure to set up aliases" 1>&2
- echo "for root and postmaster, then run $NEWALIASES_PATH." 1>&2
- }
+ test -z "$install_root" && need_config=1
fi
# Save settings.
done
)
esac
+
+test "$need_config" = 1 && cat <<EOF 1>&2
+
+ Warning: you still need to edit myorigin/mydestination in
+ $CONFIG_DIRECTORY/main.cf. See also html/faq.html for dialup
+ sites or for sites inside a firewalled network.
+
+ BTW: Edit your alias database and be sure to set up aliases
+ for root and postmaster, then run $NEWALIASES_PATH.
+
+EOF
+
+exit 0
#
# Postfix-style virtual domain.
#
-# Do not list the virtual domain in the main.cf mydestina-
-# tion configuration parameter. Such an entry is required
-# only for a Sendmail-style virtual domain.
+# Do not list a Postfix-style virtual domain in the main.cf
+# mydestination configuration parameter. Such an entry is
+# required only for a Sendmail-style virtual domain.
#
# With a Postfix-style virtual domain, the Postfix SMTP
# server accepts mail for known-user@virtual.domain and
# The main.cf mydestination entry is required for a Send-
# mail-style virtual domain.
#
-# Do not specify a virtual.domain whatever entry in the vir-
-# tual table. Such an entry is required only with a Postfix-
-# style virtual domain.
+# Do not specify a virtual.domain whatever virtual map entry
+# for a Sendmail-style virtual domain. Such an entry is
+# required only with a Postfix-style virtual domain.
#
# With a Sendmail-style virtual domain, the Postfix local
# delivery agent delivers mail for an unknown user@vir-
Postfix-style virtual domain.
- Do not list the virtual domain in the <b>main.cf</b> <b>mydestina-</b>
- <b>tion</b> configuration parameter. Such an entry is required
- only for a Sendmail-style virtual domain.
+ Do not list a Postfix-style virtual domain in the <b>main.cf</b>
+ <b>mydestination</b> configuration parameter. Such an entry is
+ required only for a Sendmail-style virtual domain.
With a Postfix-style virtual domain, the Postfix SMTP
server accepts mail for <i>known-user@virtual.domain</i> and
The <b>main.cf</b> <b>mydestination</b> entry is required for a Send-
mail-style virtual domain.
- Do not specify a <i>virtual.domain</i> <i>whatever</i> entry in the vir-
- tual table. Such an entry is required only with a Postfix-
- style virtual domain.
+ Do not specify a <i>virtual.domain</i> <i>whatever</i> virtual map entry
+ for a Sendmail-style virtual domain. Such an entry is
+ required only with a Postfix-style virtual domain.
With a Sendmail-style virtual domain, the Postfix local
delivery agent delivers mail for an unknown <i>user</i>@<i>vir-</i>
The \fIvirtual.domain anything\fR entry is required for a
Postfix-style virtual domain.
-Do not list the virtual domain in the \fBmain.cf mydestination\fR
-configuration parameter. Such an entry is required only for a
-Sendmail-style virtual domain.
+Do not list a Postfix-style virtual domain in the \fBmain.cf
+mydestination\fR configuration parameter.
+Such an entry is required only for a Sendmail-style virtual domain.
With a Postfix-style virtual domain, the Postfix SMTP server
accepts mail for \fIknown-user@virtual.domain\fR and rejects
The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
virtual domain.
-Do not specify a \fIvirtual.domain whatever\fR entry in the
-virtual table. Such an entry is required only with a
-Postfix-style virtual domain.
+Do not specify a \fIvirtual.domain whatever\fR virtual map entry
+for a Sendmail-style virtual domain.
+Such an entry is required only with a Postfix-style virtual domain.
With a Sendmail-style virtual domain, the Postfix local delivery
agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
# The \fIvirtual.domain anything\fR entry is required for a
# Postfix-style virtual domain.
#
-# Do not list the virtual domain in the \fBmain.cf mydestination\fR
-# configuration parameter. Such an entry is required only for a
-# Sendmail-style virtual domain.
+# Do not list a Postfix-style virtual domain in the \fBmain.cf
+# mydestination\fR configuration parameter.
+# Such an entry is required only for a Sendmail-style virtual domain.
#
# With a Postfix-style virtual domain, the Postfix SMTP server
# accepts mail for \fIknown-user@virtual.domain\fR and rejects
# The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
# virtual domain.
#
-# Do not specify a \fIvirtual.domain whatever\fR entry in the
-# virtual table. Such an entry is required only with a
-# Postfix-style virtual domain.
+# Do not specify a \fIvirtual.domain whatever\fR virtual map entry
+# for a Sendmail-style virtual domain.
+# Such an entry is required only with a Postfix-style virtual domain.
#
# With a Sendmail-style virtual domain, the Postfix local delivery
# agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
-#define DEF_MAIL_VERSION "Snapshot-20001118"
+#define DEF_MAIL_VERSION "Snapshot-20001119"
extern char *var_mail_version;
/* LICENSE
if (recipient_limit < message->rcpt_limit)
recipient_limit = message->rcpt_limit;
}
+ if (recipient_limit <= 0)
+ msg_panic("%s: no recipient slots available", message->queue_id);
/*
* Read envelope records. XXX Rely on the front-end programs to enforce
UPDATE(recipient->address, STR(reply.recipient));
}
+ /*
+ * XXX The nexthop destination is also used as lookup key for the
+ * per-destination queue. Fold the nexthop to lower case so that we
+ * don't have multiple queues for the same site.
+ */
+ lowercase(STR(reply.nexthop));
+
/*
* Bounce recipients that have moved. We do it here instead of in the
* local delivery agent. The benefit is that we can bounce mail for
/* has messages pending delivery. This routine implements
/* round-robin search among job's peers.
/* DIAGNOSTICS
-/* None
+/* Panic: consistency check failure.
/* LICENSE
/* .ad
/* .fi
void qmgr_peer_free(QMGR_PEER *peer)
{
+ char *myname = "qmgr_peer_free";
QMGR_JOB *job = peer->job;
+ QMGR_QUEUE *queue = peer->queue;
+
+ /*
+ * Sanity checks. It is an error to delete a referenced peer structure.
+ */
+ if (peer->refcount != 0)
+ msg_panic("%s: refcount: %d", myname, peer->refcount);
+ if (peer->entry_list.next != 0)
+ msg_panic("%s: entry list not empty: %s", myname, queue->name);
QMGR_LIST_UNLINK(job->peer_list, QMGR_PEER *, peer, peers);
- htable_delete(job->peer_byname, peer->queue->name, (void (*) (char *)) 0);
+ htable_delete(job->peer_byname, queue->name, (void (*) (char *)) 0);
myfree((char *) peer);
}
/* limit specified for the transport. This routine implements
/* "slow open" mode, and eliminates the "thundering herd" problem.
/* DIAGNOSTICS
-/* None
+/* Panic: consistency check failure.
/* LICENSE
/* .ad
/* .fi
/*
* If we find a suitable transport, rotate the list of transports to
* effectuate round-robin selection. See similar selection code in
- * qmgr_queue_select().
+ * qmgr_peer_select().
*/
#define STAY_AWAY (QMGR_TRANSPORT_STAT_BUSY | QMGR_TRANSPORT_STAT_DEAD)
UPDATE(recipient->address, STR(reply.recipient));
}
+ /*
+ * XXX The nexthop destination is also used as lookup key for the
+ * per-destination queue. Fold the nexthop to lower case so that we
+ * don't have multiple queues for the same site.
+ */
+ lowercase(STR(reply.nexthop));
+
/*
* Bounce recipients that have moved. We do it here instead of in the
* local delivery agent. The benefit is that we can bounce mail for