OpenBSD CVS

CVS log for src/usr.sbin/smtpd/smtpctl.c


[BACK] Up to [local] / src / usr.sbin / smtpd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.172 / (download) - annotate - [select for diffs], Wed May 31 16:51:46 2023 UTC (12 months, 1 week ago) by op
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, HEAD
Changes since 1.171: +2 -1 lines
Diff to previous 1.171 (colored)

add missing include of time.h

spotted after a report on OpenSMTPD-portable.  While here include
sys/time.h in smtpd.h, as noted in event_init(3), since it includes
event.h.

ok millert@

Revision 1.171 / (download) - annotate - [select for diffs], Mon May 15 12:03:04 2023 UTC (12 months, 3 weeks ago) by op
Branch: MAIN
Changes since 1.170: +2 -2 lines
Diff to previous 1.170 (colored)

cast to '(long long)' instead of '(long long int)'

while here adjust the spacing in some of the touched lines.
requested by deraadt@, ok tb@

Revision 1.170 / (download) - annotate - [select for diffs], Fri Feb 25 17:31:40 2022 UTC (2 years, 3 months ago) by rob
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.169: +5 -5 lines
Diff to previous 1.169 (colored)

Whitespace.

Revision 1.169 / (download) - annotate - [select for diffs], Mon Jun 14 17:58:16 2021 UTC (2 years, 11 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.168: +1 -12 lines
Diff to previous 1.168 (colored)

add required headers for smtpd.h and remove unnecessary ones in other files.

ok jung@

Revision 1.168 / (download) - annotate - [select for diffs], Wed May 26 18:08:55 2021 UTC (3 years ago) by eric
Branch: MAIN
Changes since 1.167: +3 -2 lines
Diff to previous 1.167 (colored)

replaces calls to err(3)/errx(3) with fatal()/fatalx() from log.c
for code that runs in the daemon.

ok florian@ millert@

Revision 1.163.2.1 / (download) - annotate - [select for diffs], Mon Feb 24 16:20:06 2020 UTC (4 years, 3 months ago) by millert
Branch: OPENBSD_6_5
Changes since 1.163: +2 -2 lines
Diff to previous 1.163 (colored) next main 1.164 (colored)

OpenBSD 6.5 errata 031, February 24, 2020:

An out of bounds read in smtpd allows an attacker to inject arbitrary
commands into the envelope file which are then executed as root.
Separately, missing privilege revocation in smtpctl allows arbitrary
commands to be run with the _smtpq group.

Revision 1.165.2.1 / (download) - annotate - [select for diffs], Mon Feb 24 16:19:32 2020 UTC (4 years, 3 months ago) by millert
Branch: OPENBSD_6_6
Changes since 1.165: +2 -2 lines
Diff to previous 1.165 (colored) next main 1.166 (colored)

OpenBSD 6.6 errata 021, February 24, 2020:

An out of bounds read in smtpd allows an attacker to inject arbitrary
commands into the envelope file which are then executed as root.
Separately, missing privilege revocation in smtpctl allows arbitrary
commands to be run with the _smtpq group.

Revision 1.167 / (download) - annotate - [select for diffs], Mon Feb 24 16:16:07 2020 UTC (4 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.166: +2 -2 lines
Diff to previous 1.166 (colored)

Fix two security vulnerabilities discovered by Qualys.
An out of bounds read in smtpd allows an attacker to inject arbitrary
commands into the envelope file which are then executed as root.
Separately, missing privilege revocation in smtpctl allows arbitrary
commands to be run with the _smtpq group.

Revision 1.166 / (download) - annotate - [select for diffs], Mon Jan 6 11:03:06 2020 UTC (4 years, 5 months ago) by gilles
Branch: MAIN
Changes since 1.165: +2 -2 lines
Diff to previous 1.165 (colored)

do not allow passing options to smtpctl encrypt

Revision 1.165 / (download) - annotate - [select for diffs], Tue Jul 23 08:11:10 2019 UTC (4 years, 10 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE
Branch point for: OPENBSD_6_6
Changes since 1.164: +2 -1 lines
Diff to previous 1.164 (colored)

include grp.h for setgroups()

Revision 1.164 / (download) - annotate - [select for diffs], Tue Jul 2 09:36:20 2019 UTC (4 years, 11 months ago) by martijn
Branch: MAIN
Changes since 1.163: +3 -13 lines
Diff to previous 1.163 (colored)

Replace mkstemp/fdopen/unlink dances with tmpfile.
No functional change.

OK gilles@

Revision 1.163 / (download) - annotate - [select for diffs], Mon Jan 14 09:37:40 2019 UTC (5 years, 4 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE
Branch point for: OPENBSD_6_5
Changes since 1.162: +10 -1 lines
Diff to previous 1.162 (colored)

correctly retrieve envelope strings. fixes mailq output.

ok gilles@

Revision 1.162 / (download) - annotate - [select for diffs], Thu May 31 21:06:12 2018 UTC (6 years ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.161: +2 -2 lines
Diff to previous 1.161 (colored)

remove 'where' parameter from all x*() functions in utils.c, it doesn't
really help us with anything, propagate the change in codebase

ok millert@

Revision 1.161 / (download) - annotate - [select for diffs], Thu May 24 11:38:24 2018 UTC (6 years ago) by gilles
Branch: MAIN
Changes since 1.160: +2 -2 lines
Diff to previous 1.160 (colored)

switch smtpd to new grammar

ok eric@

Revision 1.160 / (download) - annotate - [select for diffs], Mon May 14 15:23:05 2018 UTC (6 years ago) by gilles
Branch: MAIN
Changes since 1.159: +1 -27 lines
Diff to previous 1.159 (colored)

kill corrupt / uncorrupt queue mechanism as it has never been usable and it
will be made irrelevant when the new config comes up soon

ok eric@

Revision 1.159 / (download) - annotate - [select for diffs], Thu Apr 26 20:57:59 2018 UTC (6 years, 1 month ago) by eric
Branch: MAIN
Changes since 1.158: +2 -1 lines
Diff to previous 1.158 (colored)

sync log.h with other daemons

ok gilles@

Revision 1.158 / (download) - annotate - [select for diffs], Wed Mar 14 22:22:30 2018 UTC (6 years, 2 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.157: +14 -4 lines
Diff to previous 1.157 (colored)

newaliases is so 70s, very tied to the 'db' table backend (which has not
been the default for a long time now) but users still assume this is the
way to update aliases within the MTA.

when smtpctl is invoked as newaliases, have it notify the daemon that it
has had the aliases table updated, no matter what backend it uses, as it
will at worst be a noop and at best do what user expected.

ok eric@

Revision 1.157 / (download) - annotate - [select for diffs], Tue Jan 30 12:44:55 2018 UTC (6 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.156: +6 -3 lines
Diff to previous 1.156 (colored)

don't reject smtp responses containing non-printable chars as long
as the status is valid. use strnvis() for displaying status lines
in "smtpctl show queue".

ok gilles@ sunil@

Revision 1.156 / (download) - annotate - [select for diffs], Fri Jan 26 08:00:54 2018 UTC (6 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.155: +88 -49 lines
Diff to previous 1.155 (colored)

allow unpriviledged user to run "encrypt" and "spf walk"

ok todd@, gilles@, sunil@

Revision 1.155 / (download) - annotate - [select for diffs], Sat Jan 6 07:59:27 2018 UTC (6 years, 5 months ago) by sunil
Branch: MAIN
Changes since 1.154: +4 -1 lines
Diff to previous 1.154 (colored)

Import gilles@'s standalone spfwalk utility into smtpctl(8) as
'spf walk' command.

Ok gilles@

Revision 1.154 / (download) - annotate - [select for diffs], Thu Jul 27 18:48:30 2017 UTC (6 years, 10 months ago) by sunil
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.153: +7 -8 lines
Diff to previous 1.153 (colored)

smtpctl(8): Use an int to determine mode instead of __progname.

Ok millert@ gilles@

Revision 1.153 / (download) - annotate - [select for diffs], Fri May 19 19:56:42 2017 UTC (7 years ago) by eric
Branch: MAIN
Changes since 1.152: +6 -12 lines
Diff to previous 1.152 (colored)

- switch to recallocarray
- remove pre-allocation
- use a better growth pattern

ok gilles@ deraadt@

Revision 1.152 / (download) - annotate - [select for diffs], Mon Jan 9 09:53:23 2017 UTC (7 years, 5 months ago) by reyk
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.151: +2 -2 lines
Diff to previous 1.151 (colored)

smtpd joins the 7 other daemons that share the same log.c file.

The only major difference was the "log_trace" concept that is only
used by smtpd - move it from log.c into util.c and make it a local
concept.  This also needed to rename the global "verbose" variable to
"tracing" in a few places.

OK krw@ gilles@ eric@

Revision 1.151 / (download) - annotate - [select for diffs], Sun Sep 4 09:33:49 2016 UTC (7 years, 9 months ago) by eric
Branch: MAIN
Changes since 1.150: +1 -9 lines
Diff to previous 1.150 (colored)

Remove the "smtpctl stop" command.
The daemon is stopped with kill(1).

ok gilles@

Revision 1.150 / (download) - annotate - [select for diffs], Sat Sep 3 16:06:26 2016 UTC (7 years, 9 months ago) by eric
Branch: MAIN
Changes since 1.149: +24 -18 lines
Diff to previous 1.149 (colored)

get rid of the type-checking system on internal messages.
bump all imsg protocol versions since message format changed.

ok gilles@ sunil@

Revision 1.149 / (download) - annotate - [select for diffs], Fri Apr 29 08:55:08 2016 UTC (8 years, 1 month ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.148: +55 -10 lines
Diff to previous 1.148 (colored)

fix "smtpctl show queue" reporting "invalid" envelope state.
runtime state is not serialized with the envelope, so add it to the imsg.

ok gilles@

Revision 1.148 / (download) - annotate - [select for diffs], Thu Mar 17 19:40:43 2016 UTC (8 years, 2 months ago) by krw
Branch: MAIN
Changes since 1.147: +4 -4 lines
Diff to previous 1.147 (colored)

Last parameter to execl[e]() functions *must* be cast to a pointer.
Just NULL is not good practise as NULL is theoretically allowed to
be an integer rather than a pointer.

Use (char *)NULL consistently instead of scattering a few (char *)0
and (void *)NULL into the mix.

Prompted by and probably ok deraadt@ millert@ kettenis@

Definitely ok mestre@ ratchov@

Revision 1.147 / (download) - annotate - [select for diffs], Fri Feb 12 03:11:16 2016 UTC (8 years, 3 months ago) by sunil
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.146: +41 -66 lines
Diff to previous 1.146 (colored)

Cleanup getopt(3) mis-use in sendmail compat code.

Avoid multiple getopt(3) evaluations without optreset set and
unspecified behavior of optind = 0 as per POSIX. Instead, iterate
over argv the first time for classification. Fixes -portable without
any divergence from -current, and all newaliases opts are handled
in one place.

Looks good to me millert@
Ok gilles@ jung@ eric@

Revision 1.146 / (download) - annotate - [select for diffs], Tue Feb 9 10:38:02 2016 UTC (8 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.145: +6 -6 lines
Diff to previous 1.145 (colored)

rename variable sun to s_un to ease portability

diff from Freddy DISSAUX, ok gilles@, jung@, sunil@, millert@

Revision 1.145 / (download) - annotate - [select for diffs], Wed Feb 3 08:03:21 2016 UTC (8 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.144: +2 -2 lines
Diff to previous 1.144 (colored)

NULL initialize two file pointers to make it more obvious when reading that
they can't end up uninitialized after the mkstemp/fdopen dance

Revision 1.144 / (download) - annotate - [select for diffs], Mon Dec 28 22:08:30 2015 UTC (8 years, 5 months ago) by jung
Branch: MAIN
Changes since 1.143: +7 -7 lines
Diff to previous 1.143 (colored)

remove spaces after '!'

no binary change

ok millert

Revision 1.143 / (download) - annotate - [select for diffs], Tue Dec 22 21:50:22 2015 UTC (8 years, 5 months ago) by gilles
Branch: MAIN
Changes since 1.142: +9 -4 lines
Diff to previous 1.142 (colored)

fix sendmail options parsing
diff from Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com>

Revision 1.142 / (download) - annotate - [select for diffs], Tue Dec 22 15:59:10 2015 UTC (8 years, 5 months ago) by sunil
Branch: MAIN
Changes since 1.141: +2 -2 lines
Diff to previous 1.141 (colored)

Kill a trailing whitespace that snuck in with previous commit.

Revision 1.141 / (download) - annotate - [select for diffs], Mon Dec 21 11:20:07 2015 UTC (8 years, 5 months ago) by sunil
Branch: MAIN
Changes since 1.140: +40 -1 lines
Diff to previous 1.140 (colored)

Start accepting some sendmail compatible commandline arguments.

This diff teaches smtpctl to understand '-bi -O AliasFile=<path_aliases>'
and generate aliases.db.

Ok gilles@ jung@ millert@

Revision 1.140 / (download) - annotate - [select for diffs], Fri Dec 11 07:30:24 2015 UTC (8 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.139: +2 -2 lines
Diff to previous 1.139 (colored)

whitespace

Revision 1.139 / (download) - annotate - [select for diffs], Thu Dec 10 07:49:58 2015 UTC (8 years, 6 months ago) by sunil
Branch: MAIN
Changes since 1.138: +10 -2 lines
Diff to previous 1.138 (colored)

While listing envelopes using mailq(or smtpctl show queue), pass
the data between processes by dumping to and loading from a buffer
which is shorter compared to transferring a structure.  Also fixes
mailq on platforms where PATH_MAX is way larger than on OpenBSD
thus exceeding max imsg.

Ok jung@ millert@

Revision 1.138 / (download) - annotate - [select for diffs], Mon Dec 7 12:29:19 2015 UTC (8 years, 6 months ago) by sunil
Branch: MAIN
Changes since 1.137: +9 -9 lines
Diff to previous 1.137 (colored)

Merge makemap(8) into smtpctl(8).

Ok gilles@, jung@

Revision 1.137 / (download) - annotate - [select for diffs], Sat Dec 5 13:14:21 2015 UTC (8 years, 6 months ago) by claudio
Branch: MAIN
Changes since 1.136: +2 -2 lines
Diff to previous 1.136 (colored)

EAGAIN handling for imsg_read. OK henning@ benno@

Revision 1.136 / (download) - annotate - [select for diffs], Thu Nov 5 09:14:31 2015 UTC (8 years, 7 months ago) by sunil
Branch: MAIN
Changes since 1.135: +27 -1 lines
Diff to previous 1.135 (colored)

Implement smtpctl uncorrupt <msgid>

"uncorrupt" moves envelopes from corrupt bucket back to the queue
for further discovery by the daemon.

After correcting the corrupt envelopes, admin could now...

# smtpctl uncorrupt msgid
# smtpctl discover msgid

to schedule the messages.

Ok gilles@

Revision 1.135 / (download) - annotate - [select for diffs], Thu Oct 29 10:25:36 2015 UTC (8 years, 7 months ago) by sunil
Branch: MAIN
Changes since 1.134: +35 -1 lines
Diff to previous 1.134 (colored)

Implement smtpctl discover <evpid|msgid>.

discover subcommand schedules envelopes manually moved to the queue.
It triggers a queue walk searching for envelopes with the given id,
schedules them and informs the user number of envelopes scheduled.
Admins no longer would need to restart the daemon to discover
manually moved messages.

Ok gilles@

Revision 1.134 / (download) - annotate - [select for diffs], Wed Oct 28 07:24:28 2015 UTC (8 years, 7 months ago) by sunil
Branch: MAIN
Changes since 1.133: +1 -6 lines
Diff to previous 1.133 (colored)

Remove dead code.

Ok jung@ gilles@

Revision 1.133 / (download) - annotate - [select for diffs], Tue Oct 27 21:01:09 2015 UTC (8 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.132: +3 -2 lines
Diff to previous 1.132 (colored)

enqueue pledge: getmailname() needs dns, ~/dead.letter needs cpath/wpath

ok jung@, ok millert@

Revision 1.132 / (download) - annotate - [select for diffs], Fri Oct 16 13:37:44 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.131: +2 -2 lines
Diff to previous 1.131 (colored)

Implement real "flock" request and add it to userland programs that
use pledge and file locking.  OK deraadt@

Revision 1.131 / (download) - annotate - [select for diffs], Thu Oct 15 08:18:23 2015 UTC (8 years, 7 months ago) by sunil
Branch: MAIN
Changes since 1.130: +4 -1 lines
Diff to previous 1.130 (colored)

Let "all" as an argument for "resume envelope", "pause envelope"
and "remove" subcommands.

seems potentially useful millert@, Ok gilles@

Revision 1.130 / (download) - annotate - [select for diffs], Tue Oct 13 08:06:22 2015 UTC (8 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.129: +5 -1 lines
Diff to previous 1.129 (colored)

let the enqueuer pledge() in both online and offline modes

ok deraadt@

Revision 1.129 / (download) - annotate - [select for diffs], Mon Oct 12 07:58:19 2015 UTC (8 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.128: +1 -4 lines
Diff to previous 1.128 (colored)

do not umask() [with the wrong umask] around mkstemp() calls, no matter
how broken other systems are.
ok guenther gilles

Revision 1.128 / (download) - annotate - [select for diffs], Fri Oct 9 14:37:38 2015 UTC (8 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.127: +53 -3 lines
Diff to previous 1.127 (colored)

turn our local enqueuer setgid _smtpq and restrict access to offline queue,
the enqueuer will revoke group and regain real gid right after mkstemp.

this would have prevented the symlink/hardlink attacks against offline, and
it will avoid having to deal with new ways users can mess with it.

ok eric@, ok millert@

Revision 1.127 / (download) - annotate - [select for diffs], Tue Oct 6 06:07:28 2015 UTC (8 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.126: +2 -2 lines
Diff to previous 1.126 (colored)

fix chdir() call for the sake of correctness

reported by qualys

Revision 1.126 / (download) - annotate - [select for diffs], Tue Oct 6 05:48:34 2015 UTC (8 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.125: +5 -4 lines
Diff to previous 1.125 (colored)

fix reallocarray() constructs to always use temporary variable

Revision 1.125 / (download) - annotate - [select for diffs], Tue Jan 20 17:37:54 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.124: +5 -4 lines
Diff to previous 1.124 (colored)

use <limits.h> comprehensively.  For now try to push <> includes to
each .c file, and out of the .h files.  To avoid overinclude.
ok gilles, in principle.  If this has been done right, -portable should
become easier to maintain.

Revision 1.124 / (download) - annotate - [select for diffs], Sun Jul 20 01:38:40 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.123: +3 -2 lines
Diff to previous 1.123 (colored)

Make sure the correct errno is reported by warn* or err* and not
the errno of an intervening cleanup operation like close/unlink/etc.

Diff from Doug Hogan (doug (at) acyclic.org)

Revision 1.123 / (download) - annotate - [select for diffs], Tue Jul 8 20:14:46 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.122: +2 -2 lines
Diff to previous 1.122 (colored)

get rid of mfa leftovers

Revision 1.122 / (download) - annotate - [select for diffs], Mon Jul 7 09:11:24 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.121: +2 -2 lines
Diff to previous 1.121 (colored)

Allow to enable profiling at runtime and fix timings output.

ok gilles@

Revision 1.121 / (download) - annotate - [select for diffs], Fri May 23 13:28:32 2014 UTC (10 years ago) by espie
Branch: MAIN
Changes since 1.120: +4 -3 lines
Diff to previous 1.120 (colored)

use reallocarray
okay gilles@

Revision 1.120 / (download) - annotate - [select for diffs], Tue May 20 18:47:01 2014 UTC (10 years ago) by eric
Branch: MAIN
Changes since 1.119: +3 -3 lines
Diff to previous 1.119 (colored)

format string cleanup: change "%i" to "%d" and fix a few typos

Revision 1.119 / (download) - annotate - [select for diffs], Tue Apr 22 13:57:58 2014 UTC (10 years, 1 month ago) by gilles
Branch: MAIN
Changes since 1.118: +3 -3 lines
Diff to previous 1.118 (colored)

malloc -> calloc

Revision 1.118 / (download) - annotate - [select for diffs], Sat Apr 19 13:57:17 2014 UTC (10 years, 1 month ago) by gilles
Branch: MAIN
Changes since 1.117: +8 -8 lines
Diff to previous 1.117 (colored)

(void) cast a strlcpy() that cannot truncate
(void) cast a few snprintf()/strlcat() that cannot truncate and that would
	be harmless if they could

Revision 1.117 / (download) - annotate - [select for diffs], Fri Apr 4 16:10:42 2014 UTC (10 years, 2 months ago) by eric
Branch: MAIN
Changes since 1.116: +9 -9 lines
Diff to previous 1.116 (colored)

Merge the mda, mta and smtp processes into a single unprivileged
process managing message reception, delivery and transfer.  Mostly
mechanical, but very intrusive as it required to rewamp all IMSG to
fix ambiguities.

with and ok gilles@

Revision 1.116 / (download) - annotate - [select for diffs], Mon Feb 17 13:33:56 2014 UTC (10 years, 3 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.115: +20 -1 lines
Diff to previous 1.115 (colored)

new "smtpctl show status" command to show if mta/mda/smtp are currently running or paused.

Revision 1.115 / (download) - annotate - [select for diffs], Tue Feb 4 15:22:39 2014 UTC (10 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.114: +50 -3 lines
Diff to previous 1.114 (colored)

Allow the admin to pause relaying to a specific domain:
 - smtpctl pause mta from <source> for <domain>
 - smtpctl resume mta from <source> for <domain>
 - smtpctl show mta paused

Revision 1.114 / (download) - annotate - [select for diffs], Thu Dec 26 17:25:32 2013 UTC (10 years, 5 months ago) by eric
Branch: MAIN
Changes since 1.113: +4 -4 lines
Diff to previous 1.113 (colored)

bcopy -> memmove
bzero -> memset

Revision 1.113 / (download) - annotate - [select for diffs], Wed Nov 13 09:15:41 2013 UTC (10 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.112: +14 -0 lines
Diff to previous 1.112 (colored)

document smtpctl "show hosts" and "show relays".
add an encrypt wrapper usable for auth tables.

Revision 1.112 / (download) - annotate - [select for diffs], Wed Oct 30 21:37:48 2013 UTC (10 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.111: +19 -1 lines
Diff to previous 1.111 (colored)

add "smtpctl show relays" and "smtpctl show hosts" commands

Revision 1.111 / (download) - annotate - [select for diffs], Sun Oct 27 17:47:53 2013 UTC (10 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.110: +2 -1 lines
Diff to previous 1.110 (colored)

Implement a feedback mechanism which allows the mta to "hold" envelopes
in the scheduler when it has too many tasks for a given relay.  The
envelopes are put on a wait queue, and are not scheduled again until
the mta "releases" some envelopes from that queue.

It prevents from having too many inflight envelopes, which are out of reach
for the admin.

Revision 1.110 / (download) - annotate - [select for diffs], Fri Oct 25 21:31:23 2013 UTC (10 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.109: +2 -4 lines
Diff to previous 1.109 (colored)

local enqueuer improvements:

- parse the whole input before trying to establish the connection
  to the local socket: fixes timeout problems when reading the output
  of a long running program.

- use sendmail(8)-like exit status.

Revision 1.109 / (download) - annotate - [select for diffs], Fri Oct 25 18:58:10 2013 UTC (10 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.108: +135 -123 lines
Diff to previous 1.108 (colored)

Improve reporting in smtpctl and a few fixes.

When sending a request to the scheduler, wait for the success/failure
report from the scheduler.  Simplify the code by introducing generic
functions for interruptible iteration over envelopes.  Report the total
number of affected envelopes for schedule, pause, resume and remove
envelope operations.

Revision 1.108 / (download) - annotate - [select for diffs], Fri Jul 19 21:14:52 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.107: +51 -0 lines
Diff to previous 1.107 (colored)

Many MTA improvements:

- Better transient error handling logic: failing destinations are
  automatically disabled for a while.  When a destination is active
  again, ask the scheduler to retry previous envelopes immediatly.
- More informative error report when all routes fail for a mail.
- Implement a "smtpctl show hoststats" command to get the latest stat
  message per MX domain.
- Implement a "smtpctl show routes" command to show the state the
  currently known routes to remote MXs.
- Implement a "smtpctl resume route" command to re-enable a route that
  has been disabled.
- Do not hardcode limits
- Minor code improvements

Revision 1.107 / (download) - annotate - [select for diffs], Fri Jul 19 15:14:23 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.106: +59 -0 lines
Diff to previous 1.106 (colored)

scheduler improvements:
- implement suspend/resume scheduling for individual envelopes or message,
  with the associated smtpctl commands.
- allow the mta to request immediate scheduling of an envelope.
- on temporary failures a penalty can be given to further delay the next try.

Revision 1.106 / (download) - annotate - [select for diffs], Fri Jul 19 13:41:23 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.105: +688 -586 lines
Diff to previous 1.105 (colored)

New implementation for smtpctl and the command line parser.  Allows
richer syntax, and makes the code way simpler to follow and extend
with new commands.

Revision 1.105 / (download) - annotate - [select for diffs], Fri Jul 19 11:14:08 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.104: +1 -14 lines
Diff to previous 1.104 (colored)

Get rid of env->sc_pw and env->sc_pwqueue.  Early queue initialization
now happens in queue_init(), and backends take the queue passwd as
parameter in their init function.

Remove useless SMTPD_FILTER_USER while there.

Revision 1.104 / (download) - annotate - [select for diffs], Fri May 24 17:03:14 2013 UTC (11 years ago) by eric
Branch: MAIN
Changes since 1.103: +70 -49 lines
Diff to previous 1.103 (colored)

sync with OpenSMTPD 5.3.2

ok gilles@

Revision 1.103 / (download) - annotate - [select for diffs], Wed Apr 17 15:02:38 2013 UTC (11 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.102: +4 -4 lines
Diff to previous 1.102 (colored)

large time_t problems
ok gilles

Revision 1.102 / (download) - annotate - [select for diffs], Fri Apr 12 18:22:49 2013 UTC (11 years, 2 months ago) by eric
Branch: MAIN
Changes since 1.101: +2 -2 lines
Diff to previous 1.101 (colored)

replace MAX_LINE_SIZE and SMTP_LINE_MAX with SMTPD_MAXLINESIZE for
consistency and clarity.  Remove useless and confusing extra byte in
a few arrays based on this define.

ok gilles@

Revision 1.101 / (download) - annotate - [select for diffs], Thu Feb 14 12:30:49 2013 UTC (11 years, 3 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.100: +9 -1 lines
Diff to previous 1.100 (colored)

- smtpctl trace expand, enables tracing of aliases expansion
- replace "users" keyword with "userbase" when providing alternate userbase
- disambiguise expansion nodes when expanding across domains and userbases
- allow use of '=' instead of '=>' when declaring a mapping

ok eric@

Revision 1.100 / (download) - annotate - [select for diffs], Mon Jan 28 11:09:53 2013 UTC (11 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.99: +9 -1 lines
Diff to previous 1.99 (colored)

- introduce 'smtpctl trace lookup' to trace lookup process
- improve logging of the transfer process

trace by me, logging by eric

Revision 1.99 / (download) - annotate - [select for diffs], Sat Jan 26 09:37:23 2013 UTC (11 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.98: +214 -48 lines
Diff to previous 1.98 (colored)

Sync with our smtpd repo:

* first bricks of ldap and sqlite support (not finished but both working)
* new table API to replace map API, all lookups are done through tables
* improved handling of temporary errors throughout the daemon
* improved scheduler and mta logic: connection reuse, optimizes batches
* improved queue: more tolerant to admin errors, new layout, less disk-IO
* improved memory usage under high load
* SSL certs/keys isolated to lookup process to avoid facing network
* VIRTUAL support improved, fully virtual setups possible now
* runtime tracing of processes through smtpctl trace
* ssl_privsep.c sync-ed with relayd
* ssl.c no longer contains smtpd specific interfaces
* smtpd-specific ssl bits moved to ssl_smtpd.c
* update mail address in copyright

FLUSH YOUR QUEUE. FLUSH YOUR QUEUE. FLUSH YOUR QUEUE. FLUSH YOUR QUEUE.

smtpd.conf(5) simplified, it will require adaptations

ok eric@

Revision 1.98 / (download) - annotate - [select for diffs], Fri Nov 23 09:25:44 2012 UTC (11 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.97: +5 -13 lines
Diff to previous 1.97 (colored)

Replace the qwalk API (to retreive on disk envelopes at runtime) with
a simple QOP_WALK queue operation. Some knf and formating fixes while
there.

ok gilles@

Revision 1.97 / (download) - annotate - [select for diffs], Tue Nov 20 09:47:46 2012 UTC (11 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.96: +190 -57 lines
Diff to previous 1.96 (colored)

Allow "smtpctl show queue" to run in "online" mode if the smtpd server
is running.  The scheduler sends the runtime state of each envelope to
the queue process which loads the envelope, fills the runtime bits and
sends the envelope back to the client. Iteration over the envelope set
happens in small chunks to make the request interruptible and to allow
the server to keep doing its job in the meantime.

Adpat "smtpctl schedule-all" to schedule the messages one by one using
the same iteration mechanism.

Document "smtpctl monitor" and "smtpctl show queue".

ok gilles@

Revision 1.96 / (download) - annotate - [select for diffs], Tue Nov 13 09:35:18 2012 UTC (11 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.95: +184 -185 lines
Diff to previous 1.95 (colored)

Simplify the smtpctl code: add a try_connect() function to test if
the server is running, and flush()/next_message() helpers to make
imsg request/response loops easier.

ok gilles@

Revision 1.95 / (download) - annotate - [select for diffs], Mon Nov 12 14:58:53 2012 UTC (11 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.94: +59 -3 lines
Diff to previous 1.94 (colored)

Cleanups and improvements:

* Log more events (especially client session) and use a better scheme
  for that: each messages is prefixed with a token to easily identify
  its class:
    - info/warn/debug: general server messages
    - smtp-in: smtp client connections
    - relay: status update for relayed messages
    - delivery: status update for local deliveries

* Implement "smtpctl monitor" to display updates of selected internal
  counters.

* When reloading the on-disk queue at startup do not commit a message
  if no envelope was submitted for that message.

* Remove unused stuff in the config parser.

ok gilles@

Revision 1.94 / (download) - annotate - [select for diffs], Fri Oct 26 19:16:42 2012 UTC (11 years, 7 months ago) by chl
Branch: MAIN
Changes since 1.93: +9 -7 lines
Diff to previous 1.93 (colored)

add a new uptime.human entry in stats, derived from uptime, but displayed
in a human readable fashion:

uptime=123456
uptime.human=1d10h17m36s

ok gilles@

Revision 1.93 / (download) - annotate - [select for diffs], Sun Oct 14 11:58:23 2012 UTC (11 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.92: +12 -1 lines
Diff to previous 1.92 (colored)

introduce map_file.c which will deprecate map_stdio.c

The idea is to have a file-backed map but to have smtpd(8) cache the maps
so that it cannot be partially read if edited while mail is received. The
file is read and converted to a static map (map_static.c), changes aren't
visible to smtpd until an explicit: smtpctl update map  which reads file,
builds a new static map and invalidates the former.

partial-read issue discussed with beck@ and halex@
idea to convert internally to a static map by eric@

diff ok eric@ and chl@

Revision 1.92 / (download) - annotate - [select for diffs], Wed Oct 10 19:39:11 2012 UTC (11 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.91: +68 -11 lines
Diff to previous 1.91 (colored)

teach smtpctl how to display envelopes and messages using their id.
this allows an admin to inspect the queue without having to manually
extract bucket and find the path to an envelope or message.

diff by Sunil Nimmagadda <sunil@poolp.org>

ok eric@, chl@ and I

Revision 1.91 / (download) - annotate - [select for diffs], Wed Sep 19 20:08:53 2012 UTC (11 years, 8 months ago) by eric
Branch: MAIN
Changes since 1.90: +11 -11 lines
Diff to previous 1.90 (colored)

use lower case for envelope fields.

requested by gilles@

Revision 1.90 / (download) - annotate - [select for diffs], Wed Sep 19 18:20:36 2012 UTC (11 years, 8 months ago) by eric
Branch: MAIN
Changes since 1.89: +12 -5 lines
Diff to previous 1.89 (colored)

Remove DF_ENQUEUE flag. It is mostly unused and logically broken.
Ignore it in existing envelopes until it gets completely dropped.
Change "smtpctl show queue" to display the address family of the
envelope source instead of the ENQUEUE flag.

ok gilles@

Revision 1.89 / (download) - annotate - [select for diffs], Thu Aug 30 22:06:00 2012 UTC (11 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.88: +4 -6 lines
Diff to previous 1.88 (colored)

- rename show_envelope() to show_queue_envelope()
- remove SHOW_RUNQUEUE it was a noop since runqueues have been removed
  years ago from smtpd

Revision 1.88 / (download) - annotate - [select for diffs], Sat Aug 25 10:23:12 2012 UTC (11 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.87: +27 -4 lines
Diff to previous 1.87 (colored)

- introduce struct stat_value
- statistics can now have a type (counter, timestamp, timeval, timespec and
  possibly others in the future)
- stat_increment() / stat_decrement() now take an increment/decrement value
  and are at the moment only of type counter
- stat_set() now takes a stat_value
- provide helpers to convert raw values to stat_value

ok eric@, ok chl@

while at it fix a rq_queue_dump() call using a bogus timestamp in scheduler
ramqueue.

Revision 1.87 / (download) - annotate - [select for diffs], Sun Aug 19 14:16:58 2012 UTC (11 years, 9 months ago) by chl
Branch: MAIN
Changes since 1.86: +6 -6 lines
Diff to previous 1.86 (colored)

coding style: replace all occurences of u_int* with uint*

ok eric@

Revision 1.86 / (download) - annotate - [select for diffs], Sat Aug 18 18:18:23 2012 UTC (11 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.85: +45 -130 lines
Diff to previous 1.85 (colored)

- introduce stat_backend, an API for pluggable statistic backends
  > statistics are no longer static structures in shared memory
  > statistics are only set, smtpd never uses them in its logic
  > each statistic is a key/value where key can be any (dynamic) string
- convert all uses of the former API to use the new one
- implement stat_ramstat that keeps non-persistent stats in ram structure

ok eric@, ok chl@

Revision 1.85 / (download) - annotate - [select for diffs], Wed Aug 8 17:33:55 2012 UTC (11 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.84: +2 -2 lines
Diff to previous 1.84 (colored)

remove useless defines

ok gilles@ chl@

Revision 1.84 / (download) - annotate - [select for diffs], Tue Aug 7 20:36:10 2012 UTC (11 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.83: +2 -2 lines
Diff to previous 1.83 (colored)

fix evpid parsing on 32bit archs

ok gilles@

Revision 1.83 / (download) - annotate - [select for diffs], Mon Jul 9 09:57:53 2012 UTC (11 years, 11 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.82: +13 -13 lines
Diff to previous 1.82 (colored)

- runner is the terminology we used back when we had runqueues, we no
  longer have them and runner is actually a scheduler so rename.
- introduce scheduler_backend which does the same to scheduler than
  queue_backend does to queue and map_backend does to maps
- remove all occurences of RUNNER and runner, replace them with SCHEDULER
  and scheduler

ok eric@, ok chl@

Revision 1.82 / (download) - annotate - [select for diffs], Mon Jul 2 17:00:05 2012 UTC (11 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.81: +2 -2 lines
Diff to previous 1.81 (colored)

Lookup queue and scheduler backends by name, rather than enum.
Add a command-line option to specify the backend to use at runtime.

ok gilles@

Revision 1.81 / (download) - annotate - [select for diffs], Wed Jun 20 20:45:23 2012 UTC (11 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.80: +7 -7 lines
Diff to previous 1.80 (colored)

Finally get rid of the queue_kind enum in the queue API. Keep that
internally in fsqueue backend for now, and let the fsqueue_message()
and fsqueue_envelope() dispatchers do the right thing.

Based on a diff by chl@

ok chl@ gilles@

Revision 1.80 / (download) - annotate - [select for diffs], Sun May 13 09:18:52 2012 UTC (12 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.79: +2 -2 lines
Diff to previous 1.79 (colored)

Remove sizes entry so it doesn't appear as a valid command in the
"smtpctl show" output, and use errx rather than err for the unknown
message error.

ok gilles

Revision 1.79 / (download) - annotate - [select for diffs], Sun Apr 15 12:12:35 2012 UTC (12 years, 1 month ago) by chl
Branch: MAIN
Changes since 1.78: +1 -3 lines
Diff to previous 1.78 (colored)

Remove dead assignments and newly created unused variables.

Found by LLVM/Clang Static Analyzer.

ok gilles@

Revision 1.78 / (download) - annotate - [select for diffs], Sat Jan 28 11:33:07 2012 UTC (12 years, 4 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.77: +1 -40 lines
Diff to previous 1.77 (colored)

- introduce the scheduler_backend API
- introduce the scheduler_ramqueue backend
- remove all occurences of ramqueue outside of the ramqueue backend
- teach runner how to use the new API

it is now possible to write custom schedulers !

ok eric@, ok chl@

Revision 1.77 / (download) - annotate - [select for diffs], Tue Jan 24 12:20:18 2012 UTC (12 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.76: +2 -2 lines
Diff to previous 1.76 (colored)

Add a parameter to the queue backend init() call to specify wether the
call is issued by smtpd or smtpctl.  In the latter case, only perform
sanity checks and do not touch directories.  A running server no
longer lose its "incoming/" directory each time smtpctl is called...

ok gilles@

Revision 1.76 / (download) - annotate - [select for diffs], Thu Jan 12 22:59:55 2012 UTC (12 years, 5 months ago) by eric
Branch: MAIN
Changes since 1.75: +1 -8 lines
Diff to previous 1.75 (colored)

The status field in the envelope is confusing. Its only purpose is to
notify the runner of what happened with an envelope that has been
scheduled.  It is not part of the state of the envelope, and it is not
even dumped.  So it should only be set by mta/mda, checked by runner
to decide what to do with the envelope, and ignored everywhere else.

ok gilles@

Revision 1.75 / (download) - annotate - [select for diffs], Thu Jan 12 18:06:18 2012 UTC (12 years, 5 months ago) by eric
Branch: MAIN
Changes since 1.74: +1 -2 lines
Diff to previous 1.74 (colored)

Remove dead code for config reloading for now. It is not functionnal
and confusing.

ok gilles@

Revision 1.74 / (download) - annotate - [select for diffs], Sun Dec 18 22:52:25 2011 UTC (12 years, 5 months ago) by chl
Branch: MAIN
Changes since 1.73: +2 -1 lines
Diff to previous 1.73 (colored)

Add missing header needed by PRI format string

ok eric@

Revision 1.73 / (download) - annotate - [select for diffs], Wed Dec 14 18:42:27 2011 UTC (12 years, 5 months ago) by eric
Branch: MAIN
Changes since 1.72: +99 -1 lines
Diff to previous 1.72 (colored)

move show_queue() and related functions from queue_shared.c
to smtpctl.c

ok gilles@

Revision 1.72 / (download) - annotate - [select for diffs], Wed Nov 23 13:48:03 2011 UTC (12 years, 6 months ago) by chl
Branch: MAIN
Changes since 1.71: +22 -13 lines
Diff to previous 1.71 (colored)

Fix Segmentation Fault when launching mailq(8)

Bug reported by Mark Patruck <mark at wrapped.cx>

ok gilles@ eric@

Revision 1.71 / (download) - annotate - [select for diffs], Tue Nov 15 23:06:39 2011 UTC (12 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.70: +18 -3 lines
Diff to previous 1.70 (colored)

Qwalk, our API to linearly walk over the persistent queue, did not take the
queue_backend into account and assumed a filesystem with a specific layout.

This commit does plenty of things:

- make qwalk an abstraction in the queue_backend API, and impose queue
  drivers to implement qwalk_open(), qwalk() and qwalk_close();

- move previous qwalk_open(), qwalk() and qwalk_close() to the fsqueue
  driver since they were fsqueue specific ...

- make qwalk API work with msgid/evpid instead of pathnames since we're
  going to use the queue_backend API to load envelopes by evpid anyway;

- makes smtpd use *solely* the queue_backend API when manipulating the
  queue. pathnames were removed from smtpd.h and moved into the fsqueue
  which means we can now store a queue anywhere ... as long as we write
  the ten functions or so required for a queue driver ;-)

ok eric@, ok chl@

Revision 1.70 / (download) - annotate - [select for diffs], Wed Oct 26 20:47:31 2011 UTC (12 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.69: +5 -5 lines
Diff to previous 1.69 (colored)

- fix smtpctl pause/resume so the ramqueue scheduling is done correctly
- rename IMSG and smtpctl pause/resume parameters
- update man page

tested by me, ok chl@, eric@

Revision 1.69 / (download) - annotate - [select for diffs], Sun Oct 23 17:12:41 2011 UTC (12 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.68: +12 -1 lines
Diff to previous 1.68 (colored)

- smtpctl schedule no longer works, instead, use 'smtpctl schedule-id <id>'
- introduce 'smtpctl schedule-all'

ok eric@

Revision 1.68 / (download) - annotate - [select for diffs], Sun Oct 23 09:30:07 2011 UTC (12 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.67: +1 -2 lines
Diff to previous 1.67 (colored)

fsqueue no longer stores envelopes by dumping the structure, instead use a
couple of load/dump functions to convert to and from a human readable fmt.
while at it kill struct delivery and merge back its fields to the envelope.

this basically means we shouldn't require users to flush their queues every
time we make a change to struct envelope.

work is not done, but we're at a better state than the binary fsqueue so
we'll improve it in-tree.

has been running on my own box for the last 12 hours or so
ok eric@, chl@

Revision 1.67 / (download) - annotate - [select for diffs], Thu Sep 1 19:56:49 2011 UTC (12 years, 9 months ago) by eric
Branch: MAIN
Changes since 1.66: +111 -63 lines
Diff to previous 1.66 (colored)

Introduce a small set of functions to manage stat counters in a
simpler and hopefully saner way.

ok gilles@ chl@

Revision 1.66 / (download) - annotate - [select for diffs], Tue Aug 30 07:06:06 2011 UTC (12 years, 9 months ago) by chl
Branch: MAIN
Changes since 1.65: +7 -7 lines
Diff to previous 1.65 (colored)

fix format string

ok gilles@

Revision 1.65 / (download) - annotate - [select for diffs], Mon Aug 29 21:43:09 2011 UTC (12 years, 9 months ago) by chl
Branch: MAIN
Changes since 1.64: +3 -2 lines
Diff to previous 1.64 (colored)

cast all printed time_t to long long int, and change format string accordingly.

ok gilles@

Revision 1.64 / (download) - annotate - [select for diffs], Fri Aug 26 14:39:47 2011 UTC (12 years, 9 months ago) by chl
Branch: MAIN
Changes since 1.63: +2 -1 lines
Diff to previous 1.63 (colored)

add missing header needed by time()

ok gilles@

Revision 1.63 / (download) - annotate - [select for diffs], Tue Aug 16 19:12:40 2011 UTC (12 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.62: +31 -2 lines
Diff to previous 1.62 (colored)

smtpctl show sizes, displays the size of queue-related structures, useful
for developers to see the impact of structure changes on memory and disk
usage, and useful for users to better understand 'smtpctl show stats'

Revision 1.62 / (download) - annotate - [select for diffs], Tue Aug 16 19:02:03 2011 UTC (12 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.61: +9 -1 lines
Diff to previous 1.61 (colored)

add a host-tree and an envelope-tree in the ramqueue, they will be used to
improve scheduling and general ramqueue operations. unused yet

Revision 1.61 / (download) - annotate - [select for diffs], Thu Jul 21 23:29:24 2011 UTC (12 years, 10 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.60: +26 -1 lines
Diff to previous 1.60 (colored)

- update smtpctl.8 to reflect reality
- bring back 'smtpctl schedule' and 'smtpctl remove' to life

Things you should know:

The ramqueue data structure is not finished yet and lacks an envelope tree
for evpid lookups. I wanted to wait until I'm done but too many people are
affected by not being able to reschedule envelopes, this is a quick fix.

So right now there's an O(rrible) complexity as both commands will perform
a (possibly aborted) queue scan leading to O(n). I will make that O(log n)
soon.

Also, smtpctl remove no longer supports removing an entire message, I will
fix that very soon too.

Revision 1.60 / (download) - annotate - [select for diffs], Sun May 1 12:57:11 2011 UTC (13 years, 1 month ago) by eric
Branch: MAIN
Changes since 1.59: +3 -1 lines
Diff to previous 1.59 (colored)

the smtpd env is meant to be global, so do not pass it all around.

discussed with and ok gilles@

Revision 1.59 / (download) - annotate - [select for diffs], Sun Apr 17 13:36:07 2011 UTC (13 years, 1 month ago) by gilles
Branch: MAIN
Changes since 1.58: +6 -6 lines
Diff to previous 1.58 (colored)

cleanups, cosmethic changes, functions that should be static are now static
no functionnal change

Revision 1.58 / (download) - annotate - [select for diffs], Wed Apr 13 20:53:18 2011 UTC (13 years, 2 months ago) by gilles
Branch: MAIN
Changes since 1.57: +13 -28 lines
Diff to previous 1.57 (colored)

following an idea from jacekm@, smtpd now uses a ram-queue instead of doing
a continuous walk on the disk-queue. the implementation differs from what
jacekm@ commited (and I backed out) a while ago in that it uses a queue and
a host tree required for upcoming features.

code will be improved in tree, it requires changes to be done in queue and
bounce API, I just wanted to commit a working version first ...

tested by todd@ and I

Revision 1.57 / (download) - annotate - [select for diffs], Sat Apr 2 16:40:19 2011 UTC (13 years, 2 months ago) by eric
Branch: MAIN
Changes since 1.56: +9 -1 lines
Diff to previous 1.56 (colored)

add stat counters for the lookup agent

ok gilles@

Revision 1.56 / (download) - annotate - [select for diffs], Wed Mar 9 20:59:22 2011 UTC (13 years, 3 months ago) by gilles
Branch: MAIN
Changes since 1.55: +4 -1 lines
Diff to previous 1.55 (colored)

smtpctl show stats displays inet4/inet6 repartition for incoming sessions

Revision 1.55 / (download) - annotate - [select for diffs], Sun Nov 28 14:35:58 2010 UTC (13 years, 6 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.54: +2 -10 lines
Diff to previous 1.54 (colored)

remove all unused headers

Revision 1.54 / (download) - annotate - [select for diffs], Sun Nov 28 13:56:43 2010 UTC (13 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.53: +2 -1 lines
Diff to previous 1.53 (colored)

a bit of .h cleanups, no functionnal change

Revision 1.53 / (download) - annotate - [select for diffs], Wed Nov 24 23:27:04 2010 UTC (13 years, 6 months ago) by todd
Branch: MAIN
Changes since 1.52: +16 -2 lines
Diff to previous 1.52 (colored)

add *maxactive stats
"ok and no need to keep them for yourself" gilles@

Revision 1.52 / (download) - annotate - [select for diffs], Sat Oct 9 22:05:35 2010 UTC (13 years, 8 months ago) by gilles
Branch: MAIN
Changes since 1.51: +29 -102 lines
Diff to previous 1.51 (colored)

backout the "new" queue code commited 4 months ago. it has many good ideas,
is way more optimized than what we had earlier and there's definitely stuff
we want to keep, however it is early optimization that doesn't account for
many features and makes them hard (if not impossible) to write without
ugly workarounds that ruin the purpose of the optimizations.

the backout goes to 30 May's right before the commit and catches up on all
the non-queue related commits that happened since then.

i'll work on reintroducing the ideas from this queue when the basic
features we expect from a MTA are implemented.

suggested on tech@ about a week ago, no objections, several "please make
smtpd move forward" mails from hackers and tech readers.

Revision 1.51 / (download) - annotate - [select for diffs], Tue Jun 1 23:06:25 2010 UTC (14 years ago) by jacekm
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.50: +102 -29 lines
Diff to previous 1.50 (colored)

new queue, again; gcc2 compile tested by deraadt

Revision 1.50 / (download) - annotate - [select for diffs], Tue Jun 1 19:47:09 2010 UTC (14 years ago) by jacekm
Branch: MAIN
Changes since 1.49: +29 -102 lines
Diff to previous 1.49 (colored)

New queue doesn't compile on gcc2, back out.  Spotted by deraadt@

Revision 1.49 / (download) - annotate - [select for diffs], Tue Jun 1 11:37:26 2010 UTC (14 years ago) by jacekm
Branch: MAIN
Changes since 1.48: +2 -1 lines
Diff to previous 1.48 (colored)

Include birth time in smtpctl show queue raw.

Revision 1.48 / (download) - annotate - [select for diffs], Mon May 31 23:38:56 2010 UTC (14 years ago) by jacekm
Branch: MAIN
Changes since 1.47: +101 -29 lines
Diff to previous 1.47 (colored)

Rewrite entire queue code.

Major goals:

1) Fix bad performance caused by the runner process doing full queue
read in 1s intervals.  My Soekris can now happily accept >50 msg/s
while having multi-thousand queue; before, one hundred queue would
bring the system to its knees.

2) Introduce Qmail-like scheduler that doesn't write as much to the
disk so that it needs less code for servicing error conditions,
which in some places can be tricky to get right.

3) Introduce separation between the scheduler and the backend; these
two queue aspects shouldn't be too tied too each other.  This means
that eg. storing queue in SQL requires rewrite of just queue_backend.c.

4) Make on-disk queue format architecture independent, and more
easily extensible, to reduce number of flag days in the future.

Minor goals:

ENOSPC no longer prevents delivery attempts, fixed session limiting
for relayed mail, improved batching of "relay via" mails, human-readable
mailq output, "show queue raw" command, clearer logging, sending
of single bounce about multiple recipients, exact delay= computation,
zero delay between deliveries while within session limit (currently
1s delay between re-scheduling is enforced), mta no longer requests
content fd, corrected session limit for bounce submissions, tiny
<100B queue files instead of multi-KB, detect loops before accepting
mail, reduce traffic on imsg channels by killing enormous struct
submit_status.

Revision 1.47 / (download) - annotate - [select for diffs], Wed Apr 21 18:54:43 2010 UTC (14 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.46: +7 -7 lines
Diff to previous 1.46 (colored)

Runner process is just a helper for queue, so tear down its imsg
channels to parent, mda, mta, lka, smtp, and control.  This leaves
just the channel to queue, which forwards imsgs on runner's behalf
and redirects any replies back to it.

OK gilles@

Revision 1.46 / (download) - annotate - [select for diffs], Sun Jan 10 16:42:35 2010 UTC (14 years, 5 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.45: +11 -18 lines
Diff to previous 1.45 (colored)

- teach runner how to remove a message from queue given a message id/uid
	and assuming message is not in processing/scheduled state
- teach smtpctl how to request message removal from runner

discussed with todd@, idea ok jacekm@

Revision 1.45 / (download) - annotate - [select for diffs], Sun Jan 3 14:37:37 2010 UTC (14 years, 5 months ago) by chl
Branch: MAIN
Changes since 1.44: +13 -2 lines
Diff to previous 1.44 (colored)

Implement "log verbose" and "log brief" to enable or disable verbose debug
logging on runtime.

Based on claudio@'s work on ripd, ospfd, ospf6d, dvmrpd, ldpd, bgpd.

With help/ideas/testing from gilles@ jacekm@ todd@

ok jacekm@

Revision 1.44 / (download) - annotate - [select for diffs], Mon Dec 14 18:21:53 2009 UTC (14 years, 5 months ago) by jacekm
Branch: MAIN
Changes since 1.43: +3 -1 lines
Diff to previous 1.43 (colored)

Control maximum number of bounce sessions similarly to how the mta and mda
are now controlled.

Revision 1.43 / (download) - annotate - [select for diffs], Mon Dec 14 16:44:14 2009 UTC (14 years, 5 months ago) by jacekm
Branch: MAIN
Changes since 1.42: +4 -2 lines
Diff to previous 1.42 (colored)

Impose sessions limit on the delivery sessions (mta and mda).

Revision 1.42 / (download) - annotate - [select for diffs], Sun Dec 13 22:02:55 2009 UTC (14 years, 6 months ago) by jacekm
Branch: MAIN
Changes since 1.41: +3 -0 lines
Diff to previous 1.41 (colored)

Use safe fd limits in smtp, lka, queue, and control.  Removes a
possibility for fd-starvation fatal when under heavy load.

Revision 1.41 / (download) - annotate - [select for diffs], Sun Dec 13 21:48:21 2009 UTC (14 years, 6 months ago) by jacekm
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

typo

Revision 1.40 / (download) - annotate - [select for diffs], Fri Nov 13 20:34:51 2009 UTC (14 years, 7 months ago) by chl
Branch: MAIN
Changes since 1.39: +2 -1 lines
Diff to previous 1.39 (colored)

add missing headers needed by time()

ok jacekm@

Revision 1.39 / (download) - annotate - [select for diffs], Sun Oct 25 19:46:31 2009 UTC (14 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.38: +4 -2 lines
Diff to previous 1.38 (colored)

smtpctl reload is work in progress, do not expose it and make sure smtpd's
control process does not try to handle it.

spotted and reported by martijn@bunix.org

Revision 1.38 / (download) - annotate - [select for diffs], Sat Sep 12 12:24:51 2009 UTC (14 years, 9 months ago) by jacekm
Branch: MAIN
Changes since 1.37: +1 -3 lines
Diff to previous 1.37 (colored)

Simplify line len checking: use one limit for all SMTP exchanges.
This is not as strict as various RFCs want it, but we can make it
more granular later.  For now, let all mails flow by using the
maximum of all limits found in the RFCs.
ok gilles@

Revision 1.37 / (download) - annotate - [select for diffs], Sat Sep 12 09:38:45 2009 UTC (14 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.36: +2 -1 lines
Diff to previous 1.36 (colored)

cmdlinetoolong stat was incremented at the wrong place, fix

Revision 1.36 / (download) - annotate - [select for diffs], Sat Sep 12 09:22:33 2009 UTC (14 years, 9 months ago) by gilles
Branch: MAIN
Changes since 1.35: +3 -2 lines
Diff to previous 1.35 (colored)

- fix a compile time warning
- add a new stats counter to distinguish between command lines which
  exceeded the limit and data lines which exceeded the limits

Revision 1.35 / (download) - annotate - [select for diffs], Wed Sep 2 12:47:06 2009 UTC (14 years, 9 months ago) by jacekm
Branch: MAIN
Changes since 1.34: +2 -1 lines
Diff to previous 1.34 (colored)

Include mbox write errors in "show stats".  Suggested by gilles.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Aug 27 11:38:50 2009 UTC (14 years, 9 months ago) by jacekm
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

s/relayd/smtpd/

Revision 1.33 / (download) - annotate - [select for diffs], Sat Aug 8 19:16:41 2009 UTC (14 years, 10 months ago) by ian
Branch: MAIN
Changes since 1.32: +7 -2 lines
Diff to previous 1.32 (colored)

mailq is a common sendmail alias for showing the queue; make smtpctl
implement this, ignoring sendmail options for now.
OK gilles@, jackekm@

Revision 1.32 / (download) - annotate - [select for diffs], Sat Aug 8 00:16:49 2009 UTC (14 years, 10 months ago) by gilles
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored)

missing header

Revision 1.31 / (download) - annotate - [select for diffs], Sat Jun 6 04:14:21 2009 UTC (15 years ago) by pyr
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.30: +2 -9 lines
Diff to previous 1.30 (colored)

Sync with relayd:
Stop pushing event handling in the imsg framework.
Instead, provide a small glue layer on top of both imsg and libevent.
This finally clearly separates event handling and imsg construction.

Sidetrack bonus: remove the mega-ugly hack of having a dummy imsg_event_add
stub in smtpctl.
ok jaceckm@

Revision 1.30 / (download) - annotate - [select for diffs], Sat Jun 6 03:22:21 2009 UTC (15 years ago) by jacekm
Branch: MAIN
Changes since 1.29: +4 -3 lines
Diff to previous 1.29 (colored)

if smtpctl is run in unsupported mode, exit with a warning instead of
defaulting to smtpctl-mode; aja@ ok

Revision 1.29 / (download) - annotate - [select for diffs], Sat May 30 16:30:33 2009 UTC (15 years ago) by gilles
Branch: MAIN
Changes since 1.28: +4 -1 lines
Diff to previous 1.28 (colored)

- increment stats.mta.sessions_active when session is allocated in mta
- reorder alphabetically and add mta to the statistics

Revision 1.28 / (download) - annotate - [select for diffs], Wed May 27 13:09:07 2009 UTC (15 years ago) by jacekm
Branch: MAIN
Changes since 1.27: +2 -1 lines
Diff to previous 1.27 (colored)

request flood mitigation:
1) each state may have 2 responses sent quickly;
2) more responses are delayed exponentially, up to a defined limit.

Delay count is user visible (smtp.errors.delays).

ok gilles@

Revision 1.27 / (download) - annotate - [select for diffs], Sun May 24 14:22:24 2009 UTC (15 years ago) by jacekm
Branch: MAIN
Changes since 1.26: +38 -53 lines
Diff to previous 1.26 (colored)

Instead of keeping stats private to each process, and querying every
process individually whenever stats need to be fetched, keep stats
in MAP_ANON shared memory allocated by parent.

This means control has direct access to stats and can respond very
quickly without troubling any other daemon processes.

ok gilles@

Revision 1.26 / (download) - annotate - [select for diffs], Wed May 20 11:58:06 2009 UTC (15 years ago) by gilles
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

fix a pasto causing "smtpctl resume mta" to try to resume mda
spotted and diff by giovanni <qgiovanni@gmail.com>

Revision 1.25 / (download) - annotate - [select for diffs], Mon May 18 20:23:35 2009 UTC (15 years ago) by jacekm
Branch: MAIN
Changes since 1.24: +15 -3 lines
Diff to previous 1.24 (colored)

Complete rework of bufferevent event masking allowing for  more
strictness:
- Drop clients attempting command pipelining; protects the daemon
from all kinds of abuse.
- Replace F_EVLOCKED flag with F_WRITEONLY which has cleaner sematics:
when up, session must not be destroyed nor read from, but may be
written to.
- Write callback becomes a central place for enabling EV_READ.
- Delay bufferevent creation until after ssl handshake is completed.

A bunch of session error stats were added to smtpctl's "show stats".
These could help spotting event masking errors in the future.

ok gilles@

Revision 1.24 / (download) - annotate - [select for diffs], Thu Apr 23 08:28:45 2009 UTC (15 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

sort "show stats" output

Revision 1.23 / (download) - annotate - [select for diffs], Tue Apr 21 18:12:05 2009 UTC (15 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.22: +5 -3 lines
Diff to previous 1.22 (colored)

Make /usr/sbin/sendmail not fail due to smtpd being down.

The approach is to save cmdline + stdin in a file under a newly
added directory /var/spool/smtpd/offline (uid 0 gid 0 mode 1777).
Next time daemon starts, it uses information in that directory
to replay sendmail on user's behalf.

ok gilles@

Revision 1.22 / (download) - annotate - [select for diffs], Mon Apr 20 17:07:01 2009 UTC (15 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.21: +2 -1 lines
Diff to previous 1.21 (colored)

Rewrite smtp session timeouts; use evtimer_* from event(3) instead
of regularly walking session tree in search of idle clients. Gives
the smtp process a chance to become idle.

As a bonus, add smtp.sessions.timeout counter to "smtpctl show stats".

ok gilles@

Revision 1.21 / (download) - annotate - [select for diffs], Thu Apr 16 15:35:06 2009 UTC (15 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.20: +3 -2 lines
Diff to previous 1.20 (colored)

Total rewrite of the sendmail interface. Adds support for -t, -v,
and -F cmdline args. Also, date and Message-Id headers are added
when missing.

The main trouble with the current enqueue code is that it requires
dealing with problems in the control process that are already solved
in the smtp process, ie. duplicating a lot of code which interacts
with untrusted clients. This diff solves this by making sendmail
obtain a SMTP socket from smtp via smtpd.sock, and using that socket
to deliver the message. For smtpd it looks as if connection was
made from the network, only difference being the F_MESSAGE_ENQUEUED
message flag, handy when differentation between local and remote
deliveries is wanted.

Most of the features come from the femail program, created by henning@.

Additional testing by Nigel J. Taylor.

ok gilles@, henning@ happy with smtpd using femail code

Revision 1.20 / (download) - annotate - [select for diffs], Wed Apr 15 20:34:59 2009 UTC (15 years, 1 month ago) by jacekm
Branch: MAIN
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored)

s/ssmtp/smtps/; ok gilles@

Revision 1.19 / (download) - annotate - [select for diffs], Mon Mar 23 21:48:40 2009 UTC (15 years, 2 months ago) by jmc
Branch: MAIN
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

various minor improvements; ok jacekm gilles

Revision 1.18 / (download) - annotate - [select for diffs], Sun Mar 22 13:52:03 2009 UTC (15 years, 2 months ago) by ian
Branch: MAIN
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

trivial message repair, ok jacek@

Revision 1.17 / (download) - annotate - [select for diffs], Sun Mar 15 19:32:10 2009 UTC (15 years, 2 months ago) by gilles
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16 (colored)

since we are going to share code in smtp sessions and mta sessions, we need
to also share the statistics structure, still being worked on

Revision 1.16 / (download) - annotate - [select for diffs], Sun Mar 1 12:12:58 2009 UTC (15 years, 3 months ago) by jacekm
Branch: MAIN
Changes since 1.15: +3 -2 lines
Diff to previous 1.15 (colored)

In "smtpctl show stats", break queue.inserts into queue.inserts.remote
and queue.inserts.local; ok gilles@

Revision 1.15 / (download) - annotate - [select for diffs], Tue Feb 24 12:07:47 2009 UTC (15 years, 3 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.14: +13 -1 lines
Diff to previous 1.14 (colored)

teach smtpctl's parser how to deal with parameters that are not necessarily
a token so that it is possible to do: smtpctl schedule <message id/uid>

introduce F_MESSAGE_FORCESCHEDULE which lets the runner schedule a message
even if the retry delay has not been expired.

F_MESSAGE_ENQUEUED is a valid flag for a message and should not cause an\
errx() in smtpctl show queue

Revision 1.14 / (download) - annotate - [select for diffs], Tue Feb 17 22:49:22 2009 UTC (15 years, 3 months ago) by jacekm
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

imsg_init depends on ibuf being calloc'd. fix few places where malloc
is used instead; ok gilles@

Problem made visible by malloc.conf = AFGJ, and pointed out by otto@

Revision 1.13 / (download) - annotate - [select for diffs], Fri Feb 13 20:44:46 2009 UTC (15 years, 3 months ago) by jacekm
Branch: MAIN
Changes since 1.12: +11 -11 lines
Diff to previous 1.12 (colored)

Make stats output more sysctl-like by killing spaces around '='; ok gilles@

Revision 1.12 / (download) - annotate - [select for diffs], Fri Jan 30 21:52:55 2009 UTC (15 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.11: +2 -1 lines
Diff to previous 1.11 (colored)

when decreasing ssl related counters, make sure the session was flagged as
F_SECURE. while at it, add "smtp.sessions.aborted" which keeps track of
sessions which were interrupted before completion.

Revision 1.11 / (download) - annotate - [select for diffs], Fri Jan 30 21:40:21 2009 UTC (15 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.10: +8 -0 lines
Diff to previous 1.10 (colored)

improve statistics for smtp process. not only collect the current sessions
count, but also the total sessions count, ssmtp sessions (both current and
total) and starttls sessions (both current and total)

# ./smtpctl/smtpctl show stats|grep smtp.sessions
smtp.sessions = 0
smtp.sessions.active = 0
smtp.sessions.ssmtp = 0
smtp.sessions.ssmtp.active = 0
smtp.sessions.starttls = 0
smtp.sessions.starttls.active = 0
#

Revision 1.10 / (download) - annotate - [select for diffs], Fri Jan 30 21:22:33 2009 UTC (15 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 (colored)

clear the F_EVLOCK flag earlier to prevent the error event handler from
being called again with F_EVLOCK set. this fixes a bug where disconnect
after smtpd sends greeting and before entering any command failed to go
into session_destroy().

while at it, rename the "smtp.clients" statistic to "smtp.sessions" and
add counters to struct s_smtp so that I can add ssmtp and starttls with
my next commit ;)

Revision 1.9 / (download) - annotate - [select for diffs], Thu Jan 29 22:34:21 2009 UTC (15 years, 4 months ago) by jacekm
Branch: MAIN
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

fix compiler warning

Revision 1.8 / (download) - annotate - [select for diffs], Thu Jan 29 21:59:15 2009 UTC (15 years, 4 months ago) by jacekm
Branch: MAIN
Changes since 1.7: +46 -1 lines
Diff to previous 1.7 (colored)

Implement "smtpctl show stats"; ok gilles@

Revision 1.7 / (download) - annotate - [select for diffs], Thu Jan 29 12:43:25 2009 UTC (15 years, 4 months ago) by jacekm
Branch: MAIN
Changes since 1.6: +3 -5 lines
Diff to previous 1.6 (colored)

Common queue walking code for smtpd and smtpctl. Kills majority of showqueue.c,
the remaining code was moved to queue_shared.c; ok gilles@

Revision 1.6 / (download) - annotate - [select for diffs], Tue Jan 27 22:48:29 2009 UTC (15 years, 4 months ago) by gilles
Branch: MAIN
Changes since 1.5: +35 -22 lines
Diff to previous 1.5 (colored)

first bricks of enqueue code which allows smtpctl to submit mail to queue
without "talking" smtp to listeners. currently, a big part of the server
side code is done (and requires a cleanup), next step is to get it usable
properly from a mail user agent.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Jan 4 22:35:09 2009 UTC (15 years, 5 months ago) by gilles
Branch: MAIN
Changes since 1.4: +13 -5 lines
Diff to previous 1.4 (colored)

- smtp can now pause/resume the accepting of incoming messages
- smtpctl recognizes "pause incoming" and "resume incoming"
- setup imsg communication between control process and smtp process

Revision 1.4 / (download) - annotate - [select for diffs], Sun Jan 4 19:37:41 2009 UTC (15 years, 5 months ago) by gilles
Branch: MAIN
Changes since 1.3: +17 -1 lines
Diff to previous 1.3 (colored)

- runner is now capable of pausing/resuming the scheduling of deliveries
for both mda and mta batches.
- smtpctl can be used to disable/enable deliveries at runtime using the
pause/resume commands.

ok jacekm@

Revision 1.3 / (download) - annotate - [select for diffs], Sat Dec 27 16:45:01 2008 UTC (15 years, 5 months ago) by jacekm
Branch: MAIN
Changes since 1.2: +7 -4 lines
Diff to previous 1.2 (colored)

Break showqueue and showrunqueue into 2 words; ok gilles@

Revision 1.2 / (download) - annotate - [select for diffs], Sat Dec 6 02:44:08 2008 UTC (15 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.1: +21 -1 lines
Diff to previous 1.1 (colored)

- teach smtpctl how to inspect queue and runqueue, it supports two commands
	`showqueue' which displays the content of the queue (all envelopes)
	`showrunqueue` which displays envelopes scheduled for delivery. The
	utility will be improved and extended, but for now we need at least
	this basic support to help debug queue-related issues.

	Output format is spamdb-alike:
	type|envelope uid|sender|recipient|last delivery date|retry count

	ok jacek@

Revision 1.1 / (download) - annotate - [select for diffs], Fri Dec 5 03:28:37 2008 UTC (15 years, 6 months ago) by gilles
Branch: MAIN

- smtpctl utility to control the smtpd, don't expect too much yet as it is
	just an empty clone of relayctl with the glue needed to have it
	exchange imsg with smtpd correctly. code mostly by pyr@, reviewed
	by chl@ and I a while ago.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.