qmail
14 years agodebian/rules: Use `git' potty wrapper. master 1.03-6
Mark Wooding [Thu, 8 Apr 2010 09:01:37 +0000 (10:01 +0100)]
debian/rules: Use `git' potty wrapper.

14 years agodns.c: Increase DNS packet buffer to 64K.
Mark Wooding [Thu, 8 Apr 2010 08:36:40 +0000 (09:36 +0100)]
dns.c: Increase DNS packet buffer to 64K.

Otherwise qmail-remote fails on sites that return more than 512 bytes of
stuff to ANY queries, and you get bounces.  We have a sufficiently
recent resolver library that it will automatically fall back to TCP to
fill the buffer, and 64K per outgoing message is not a big deal.

18 years agoaddrcheck: Run address verification services with a timeout.
Mark Wooding [Thu, 27 Apr 2006 19:33:39 +0000 (20:33 +0100)]
addrcheck: Run address verification services with a timeout.

This entails reordering the code which reads the answer, to check for
the process exiting before reading its output.  This also means that
we deadlock the service if it tries to write more than a pipe-buffer's
worth of stuff, but we're expecting a single character, dammit -- it
shouldn't try to give us an essay.

If the timeout goes off, we report a temporary failure, as with any
other untoward situation.

18 years agoqmail-valid-addresses security: scan read dot-qmail files as owner
Mark Wooding [Fri, 14 Apr 2006 20:18:47 +0000 (21:18 +0100)]
qmail-valid-addresses security: scan read dot-qmail files as owner

Usually, qmail-valid-addresses is run as root, and it scans for and
reads all the dot-qmail files as root.  This is bad: if a user creates
(say) a symlink to a read-sensitive device with the right name, then
root will open and read the device, causing it to do weird things.
There are also other problems to do with leaking the existence of files
in directories unreadable to the user in question.  Even if we were to
check with lstat(2) before reading the file, there's an unavoidable race
between the lstat(2) and the open(2), during which a malicious user
could switch in a link.

The new implementation has qmail-valid-addresses switching effective uid
before scanning that user's home directory.  Since all the file I/O is
done as the user who (presumably) owns the files, this can't do any evil
things that user couldn't have done on his own.

This change also fixes a bug which failed to scan dot-qmail files in
subdirectories.

18 years agoqmail-smtpd: Oops. I want 550, not 553, for unknown mailboxes.
Mark Wooding [Mon, 10 Apr 2006 12:21:37 +0000 (13:21 +0100)]
qmail-smtpd: Oops.  I want 550, not 553, for unknown mailboxes.

18 years agoaddrcheck: Take the domain as following the last `@', not the first.
Mark Wooding [Thu, 6 Apr 2006 11:25:37 +0000 (12:25 +0100)]
addrcheck: Take the domain as following the last `@', not the first.

This was just a silly mistake on my part.  Now we follow the spec in
addresses.5 properly.

18 years agoqmail-local: Sender and environment settings in .qmail files.
Mark Wooding [Wed, 29 Mar 2006 12:39:50 +0000 (13:39 +0100)]
qmail-local: Sender and environment settings in .qmail files.

Support `!VAR=VALUE', and `!VAR' lines, to set and delete environment
variable VAR.  Also support `<SENDER' to set the envelope sender for
further forwardings.

18 years agoMerge branch 'nail' mdw/1.03-5
Mark Wooding [Thu, 16 Mar 2006 23:16:15 +0000 (23:16 +0000)]
Merge branch 'nail'

* nail:
  addrcheck: Don't spew userv error messages at SMTP clients.
  addrcheck: Strip off the domain part before passing to userv service.
  addrcheck: Add commentary for the functions, because I'm confused.

18 years agoaddrcheck: Don't spew userv error messages at SMTP clients. mdw/addrcheck
Mark Wooding [Thu, 16 Mar 2006 23:01:38 +0000 (23:01 +0000)]
addrcheck: Don't spew userv error messages at SMTP clients.

They don't like it.  Whose stupid idea was it to send stderr to the
socket in inetd anyway?

18 years agoaddrcheck: Strip off the domain part before passing to userv service.
Mark Wooding [Tue, 7 Mar 2006 12:38:38 +0000 (12:38 +0000)]
addrcheck: Strip off the domain part before passing to userv service.

18 years agoaddrcheck: Add commentary for the functions, because I'm confused.
Mark Wooding [Tue, 7 Mar 2006 11:49:02 +0000 (11:49 +0000)]
addrcheck: Add commentary for the functions, because I'm confused.

18 years agoUpdate changelog.
Mark Wooding [Tue, 14 Feb 2006 16:01:04 +0000 (16:01 +0000)]
Update changelog.

18 years agoMerge branches 'idx/verh' and 'idx/qmqpc'
Mark Wooding [Tue, 14 Feb 2006 15:55:38 +0000 (15:55 +0000)]
Merge branches 'idx/verh' and 'idx/qmqpc'

* idx/verh:
  [PATCH] Rewrite ##X tags in headers of incoming messages

* idx/qmqpc:
  [PATCH] qmqpc: Read servers from the command line.

18 years ago[PATCH] qmqpc: Read servers from the command line.
Mark Wooding [Tue, 14 Feb 2006 15:55:14 +0000 (15:55 +0000)]
[PATCH] qmqpc: Read servers from the command line.

This patch patches qmail-qmqpc.[c8] to allow specification of serves on
the command line. This allows the individual process to control the servers
used, rather than the central /var/qmail/control/qmqpservers. This offers
a simple means to extend ezmlm servers. The patch is for qmail-1.03.

18 years ago[PATCH] Rewrite ##X tags in headers of incoming messages
Mark Wooding [Tue, 14 Feb 2006 15:52:22 +0000 (15:52 +0000)]
[PATCH] Rewrite ##X tags in headers of incoming messages

Users of ezmlm lists sometimes do not know their subscription address
when they want to unsubscribe. Not all get the "Return-Path" header from
their delivery agent/MUA, and of the ones that do, many can still not
decipher the information. rfc2369 provides a standard way to supply
unsubscribe information. For the header to work optimally, it should
contain the command adapted to the subscriber's subscription address.

These patches enable qmail to replace tags with the subscribers address.
This is normally done ONLY in headers to avoid the risk of message
corruption.
If for some reason no substitution is done, the header remains in its
original form, which is harmless as far as message integrity is
concerned.

If any header starts with '#' this character is removed and substitution
will be extented into the body. This is safe since no legal header
starts
with '#'. It is assumed that for messages with this flag it is desired
that any tag in the message is substituted.

Assume: Subscriber=user@host, list=list@listhost.

and header added by ezmlm:
    List-Unsubscribe: <mailto:list-unsubscribe-##L=##H@listhost>

Then: Header after qmail processing:
      List-Unsubscribe: <mailto:list-unsubscribe-user=host@listhost>

18 years agodebian: Add source-package rule.
Mark Wooding [Tue, 14 Feb 2006 12:43:42 +0000 (12:43 +0000)]
debian: Add source-package rule.

This is much easier with git-tar-tree lying around.

18 years agoMerge branch 'mdw/addrcheck'
Mark Wooding [Tue, 14 Feb 2006 03:11:09 +0000 (03:11 +0000)]
Merge branch 'mdw/addrcheck'

* mdw/addrcheck:
  addrcheck: Optionally invoke userv service to decide address validity.
  qmail-valid-addresses: Cope with missing files.
  qmail-smtpd: Validation of recipient mailbox names.

18 years agoMinor fixing.
Mark Wooding [Thu, 6 Oct 2005 12:40:30 +0000 (13:40 +0100)]
Minor fixing.

  * error: don't try to declare errno by hand: include the standard
    header file instead.

  * debian: fix maintainer email address.

18 years agoaddrcheck: Optionally invoke userv service to decide address validity.
Mark Wooding [Mon, 6 Feb 2006 19:40:05 +0000 (19:40 +0000)]
addrcheck: Optionally invoke userv service to decide address validity.

It may be that the existence of a mailbox can be best determined
programmatically, rather than by the existence of a .qmail-BLAH file for
it.  For example, imagine a remailer which uses encrypted email
addresses: it'd be better to check the authentication on an address than
to have a .qmail file for each one.

If a user's .qmail-FOO-default file has a first line of the form
`#?ANYTHING then that user's userv service `addrcheck:USER-FOO-default'
is invoked, with these arguments:

  * the remainder of the destination email address (including the domain
    part);

  * the envelope sender (which may be useful);

  * the entire destination email address; and

  * the key `USER-FOO-default' which the address matched.

The service should output a `+' or `-' sign to indicate acceptance or
rejection.  Failure to do this, or exiting with a nonzero status, causes
a temporary error to be reported to the SMTP client.

18 years agoqmail-valid-addresses: Cope with missing files.
Mark Wooding [Thu, 6 Oct 2005 12:40:30 +0000 (12:40 +0000)]
qmail-valid-addresses: Cope with missing files.

It's not an error for the virtualdomains or locals files to be missing,
so cope if we can't find them.

18 years agoqmail-smtpd: Validation of recipient mailbox names.
Mark Wooding [Tue, 9 Aug 2005 12:55:05 +0000 (12:55 +0000)]
qmail-smtpd: Validation of recipient mailbox names.

Lots of spam arrives for non-existent mailboxes.  If the SMTP server
accepts it, we have to put up with the bounces.  We introduce a new CDB
which describes all the valid mailboxes on the system.

18 years agodebian: New, stripped-down mini-qmail package.
Mark Wooding [Tue, 9 Aug 2005 12:45:00 +0000 (13:45 +0100)]
debian: New, stripped-down mini-qmail package.

This contains only what's needed for a serverless, queueless leaf node.

18 years agoqmail: Indirect via QMAILQUEUE environment variable to find qmail-queue. mdw/1.03-4
Mark Wooding [Wed, 1 Oct 2003 00:28:03 +0000 (01:28 +0100)]
qmail: Indirect via QMAILQUEUE environment variable to find qmail-queue.

This lets us insert a filter program, say a spam checker, between
qmail-smtpd and the mail queue, with the right to refuse a message
before it's accepted by the SMTP server.

18 years agoMake it work with newer Debian stuff.
Mark Wooding [Tue, 30 Sep 2003 08:13:28 +0000 (09:13 +0100)]
Make it work with newer Debian stuff.

18 years agoIgnore uninteresting files.
Mark Wooding [Tue, 30 Sep 2003 08:13:28 +0000 (09:13 +0100)]
Ignore uninteresting files.

18 years agoRelease qmail 1.03-2 mdw/1.03-2
Mark Wooding [Tue, 8 Jun 1999 18:48:54 +0000 (18:48 +0000)]
Release qmail 1.03-2

18 years agoMerge branch 'mdw/relayhosts'
Mark Wooding [Tue, 14 Feb 2006 02:52:33 +0000 (02:52 +0000)]
Merge branch 'mdw/relayhosts'

* mdw/relayhosts:
  qmail-smtpd: Read list of hosts allowed to relay from control/relayhosts

Conflicts:

qmail-control.9
qmail-showctl.c
qmail-smtpd.c

18 years agoqmail-smtpd: Read list of hosts allowed to relay from control/relayhosts
Mark Wooding [Tue, 14 Feb 2006 02:46:08 +0000 (02:46 +0000)]
qmail-smtpd: Read list of hosts allowed to relay from control/relayhosts

18 years agoMerge branch 'mdw/bounce-msgid'
Mark Wooding [Tue, 14 Feb 2006 01:30:30 +0000 (01:30 +0000)]
Merge branch 'mdw/bounce-msgid'

* mdw/bounce-msgid:
  qmail-send: Add message-id to bounce messages.

18 years agoqmail-send: Add message-id to bounce messages.
Mark Wooding [Tue, 8 Jun 1999 18:30:46 +0000 (18:30 +0000)]
qmail-send: Add message-id to bounce messages.

RFC1123 says that message-ids are optional, but SAUCE, for example,
objects to messages without them.  Avoid upsetting SAUCE.

18 years agoDebianization for 1.03-1 debian debian/1.03-1
Mark Wooding [Sun, 28 Jun 1998 15:21:03 +0000 (15:21 +0000)]
Debianization for 1.03-1

18 years agoDebianization for 1.01-2 debian/1.01-2
Mark Wooding [Wed, 18 Mar 1998 23:33:15 +0000 (23:33 +0000)]
Debianization for 1.01-2

18 years agoUpstream qmail 1.03 djb djb/1.03
Mark Wooding [Sun, 28 Jun 1998 14:46:53 +0000 (15:46 +0100)]
Upstream qmail 1.03

18 years agoUpstream qmail 1.01 djb/1.01
Mark Wooding [Wed, 18 Mar 1998 23:33:14 +0000 (23:33 +0000)]
Upstream qmail 1.01