OpenBSD CVS

CVS log for src/usr.sbin/smtpd/smtpd-api.h


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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.36 / (download) - annotate - [select for diffs], Sun Dec 23 16:06:24 2018 UTC (5 years, 5 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, HEAD
Changes since 1.35: +4 -48 lines
Diff to previous 1.35 (colored)

the tree_* and dict_* api's in smtpd can be used standalone, do not have
them depend on smtpd.h, it makes it hard to reuse them elsewhere

ok eric@

Revision 1.35 / (download) - annotate - [select for diffs], Thu Nov 1 10:47:46 2018 UTC (5 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.34: +2 -1 lines
Diff to previous 1.34 (colored)

introduce K_REGEX table type and table_regex_match(), unused for now

ok eric@

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

switch smtpd to new grammar

ok eric@

Revision 1.33 / (download) - annotate - [select for diffs], Mon May 14 15:23:05 2018 UTC (6 years ago) by gilles
Branch: MAIN
Changes since 1.32: +1 -5 lines
Diff to previous 1.32 (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.32 / (download) - annotate - [select for diffs], Fri Sep 8 16:51:22 2017 UTC (6 years, 9 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.31: +1 -87 lines
Diff to previous 1.31 (colored)

remove more filter-related cruft

ok gilles@

Revision 1.31 / (download) - annotate - [select for diffs], Sat Sep 3 16:06:26 2016 UTC (7 years, 9 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.30: +5 -5 lines
Diff to previous 1.30 (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.30 / (download) - annotate - [select for diffs], Wed Jun 29 06:46:06 2016 UTC (7 years, 11 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.29: +5 -4 lines
Diff to previous 1.29 (colored)

Explicitely enclose SMTP transactions between BEGIN and COMMIT/ROLLBACK
filter events. Bump filter API version.

ok gilles@ jung@

Revision 1.29 / (download) - annotate - [select for diffs], Tue Feb 9 22:18:17 2016 UTC (8 years, 4 months ago) by gilles
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.28: +2 -1 lines
Diff to previous 1.28 (colored)

add PROC_QUEUE_MESSAGE_UNCORRUPT to smtpd-api.h, needed by privsep queues

Revision 1.28 / (download) - annotate - [select for diffs], Sat Dec 12 11:31:29 2015 UTC (8 years, 5 months ago) by sunil
Branch: MAIN
Changes since 1.27: +4 -4 lines
Diff to previous 1.27 (colored)

Implement senders map.

senders table allows to restrict the addresses that an authenticated
user can use in the SMTP dialogue.

Ok gilles@

Revision 1.27 / (download) - annotate - [select for diffs], Mon Nov 30 14:49:54 2015 UTC (8 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

fix prototype

Revision 1.26 / (download) - annotate - [select for diffs], Mon Nov 30 14:47:39 2015 UTC (8 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.25: +16 -11 lines
Diff to previous 1.25 (colored)

smtpd-api.h update, missing prototypes, no functional change

Revision 1.25 / (download) - annotate - [select for diffs], Mon Nov 23 21:50:12 2015 UTC (8 years, 6 months ago) by gilles
Branch: MAIN
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored)

allow table API to lookup for mailaddr mappings

ok sunil@, ok jung@

Revision 1.24 / (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.23: +2 -1 lines
Diff to previous 1.23 (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.23 / (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.22: +3 -1 lines
Diff to previous 1.22 (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.22 / (download) - annotate - [select for diffs], Wed Oct 14 21:02:11 2015 UTC (8 years, 7 months ago) by gilles
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

fix define and enhanced status code reason for 5.5.0

Revision 1.21 / (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.20: +2 -9 lines
Diff to previous 1.20 (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.20 / (download) - annotate - [select for diffs], Thu Jul 10 14:45:02 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.19: +11 -19 lines
Diff to previous 1.19 (colored)

Improve the scheduler, better and simpler.

- Get rid of the scheduler_batch structure. The scheduler can now return
  envelopes of different types in a single run, interlacing them to avoid
  batch effects.

- Ask for an acknowledgement from the queue when removing or expiring
  an envelope to benefit from the inflight envelope limitation mechanism.
  This ensures that the scheduler always keeps sending envelopes at a rate
  that the queue can sustain in all cases.

- Limit the number of envelopes in a holdq.  When a holdq is full,
  new envelopes are put back in the pending queue instead, with a
  shorter retry time.

- Plumbing for proc-ified schedulers.

imsg version bump. smtpctl stop before updating.

ok gilles@

Revision 1.19 / (download) - annotate - [select for diffs], Tue Jul 8 15:45:32 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.18: +6 -1 lines
Diff to previous 1.18 (colored)

various queue improvements:

- add a "close" hook to the backend API.
- improve the sync() pattern in queue_fs: only sync at commit
  time and not for every envelope creation
- various fixes to the experimental external queue API.

Revision 1.18 / (download) - annotate - [select for diffs], Tue Jul 8 14:24:16 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.17: +45 -29 lines
Diff to previous 1.17 (colored)

make the filter API move forward (still not plugged).

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jul 8 13:49:09 2014 UTC (9 years, 11 months ago) by eric
Branch: MAIN
Changes since 1.16: +4 -4 lines
Diff to previous 1.16 (colored)

Update the table API: lookup functions can take an optional parameters
dictionnary (currently not set). While there, add a helper for forking
external backends, and remove unused table functions.

ok gilles@

Revision 1.16 / (download) - annotate - [select for diffs], Tue Feb 4 15:44:06 2014 UTC (10 years, 4 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.15: +80 -1 lines
Diff to previous 1.15 (colored)

Add support for DSN and Enhanced Status Code

Revision 1.15 / (download) - annotate - [select for diffs], Tue Feb 4 14:56:03 2014 UTC (10 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

internal improvements and cleanups

- get rid of the whole penalty thing for failed envelopes in the mta and scheduler.
- do not disable routes on smtp errors
- try to schedule all types of envelopes on each scheduler frame.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Feb 4 13:55:34 2014 UTC (10 years, 4 months ago) by eric
Branch: MAIN
Changes since 1.13: +7 -1 lines
Diff to previous 1.13 (colored)

socketmap table backend.

Revision 1.13 / (download) - annotate - [select for diffs], Thu Dec 5 09:26:47 2013 UTC (10 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.12: +4 -3 lines
Diff to previous 1.12 (colored)

When a relay fails, let the scheduler update all envelopes in the
holdq as if they tempfailed.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Nov 20 09:22:42 2013 UTC (10 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

Rework the mda and scheduler to use the holdq mechanism instead of
tempfail for limiting the number of pending deliveries to the same
user.  This allows to reach optimal delivery time even in case of
burst, while keeping the number of inflight envelopes low.

Revision 1.11 / (download) - annotate - [select for diffs], Mon Nov 18 11:47:16 2013 UTC (10 years, 6 months ago) by eric
Branch: MAIN
Changes since 1.10: +4 -4 lines
Diff to previous 1.10 (colored)

change dict_poproot() prototype: do not take key placeholder parameter as
it can't work that way.

Revision 1.10 / (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.9: +5 -0 lines
Diff to previous 1.9 (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.9 / (download) - annotate - [select for diffs], Sun Oct 27 11:01:47 2013 UTC (10 years, 7 months ago) by eric
Branch: MAIN
Changes since 1.8: +13 -14 lines
Diff to previous 1.8 (colored)

Make the filter infrastructure move forward.
This is a work-in-progress and it's not supposed to be useable for now.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Jul 19 21:34:31 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.7: +92 -1 lines
Diff to previous 1.7 (colored)

Implement a scheduler_proc backend

Revision 1.7 / (download) - annotate - [select for diffs], Fri Jul 19 20:37:07 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.6: +32 -1 lines
Diff to previous 1.6 (colored)

Assorted queue improvements:
- cleanup the internal queue backend API and get rid of the QOP_* thing.
- implement a queue_proc backend
- rename queue_fsqueue.c to queue_fs
- enable support for queue encryption
- add an envelope cache
- better logging and error reporting

Revision 1.6 / (download) - annotate - [select for diffs], Fri Jul 19 19:53:33 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.5: +35 -1 lines
Diff to previous 1.5 (colored)

Add a table_proc backend for delegating table lookups to another
process.  Stop building experimental table_sqlite and table_ldap as
they will be provided as external backends.

Revision 1.5 / (download) - annotate - [select for diffs], Fri Jul 19 16:02:00 2013 UTC (10 years, 10 months ago) by eric
Branch: MAIN
Changes since 1.4: +17 -1 lines
Diff to previous 1.4 (colored)

Move the filter infrastructure forward.

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

sync with OpenSMTPD 5.3.2

ok gilles@

Revision 1.3 / (download) - annotate - [select for diffs], Fri Apr 12 18:22:49 2013 UTC (11 years, 1 month ago) by eric
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (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.2 / (download) - annotate - [select for diffs], Thu Feb 14 14:34:07 2013 UTC (11 years, 3 months ago) by eric
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)

grow MAX_LOCALPART_SIZE and MAX_DOMAINPART_SIZE by 1 (for the '\0')

ok gilles@

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jan 26 09:37:23 2013 UTC (11 years, 4 months ago) by gilles
Branch: MAIN

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@

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.