Commits
- Commit:
5e7fdc369f7cff8574369a8b17f7efc9510331d0
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
got-notify-email: bufferize smtp parsing
instead of read(2)ing one byte at the time, use a temporary buffer.
Special care is needed for the regress where all the replies are
queued up-front instead of a real SMTP server where we'd get a reply
only after a command.
ok and improvements stsp@
- Commit:
efc5c202ae4f6c024cb91a6e4d52cbc03df1f621
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
got-notify-email: split dial() out of send_email()
This allows to reduce the set of pledge(2) promises needed at runtime
down to only "stdio" which will also help sandboxing -portable.
ok stsp
- Commit:
a806a88322a11af5b725b9ea9269cc6b9b3a482c
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
mark smtp_timeout as static
- Commit:
16b8fb35f06a1fdfee94209957d97e0689579abd
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fmt
- Commit:
b2ce1dae7426855da5636b9762b278f2d89651de
- From:
- Thomas Adam <thomas@xteddy.org>
- Date:
portable: enable got-notify-email
Now that gotd has the start of helpers, got-notify-email is the first.
This is still behind the --enable-gotd flag.
- Commit:
ce1bfad9f1f7c6b1599e0bfed0a1b169d4a30781
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
add initial support for commit notifications to gotd(8)
At present only email notifications are implemented.
Code for HTTP notifications is not yet finished, hence HTTP-related
documentation remains hidden for now.
This adds a new 'notify' process which has an "exec" pledge. It runs
helper programs which implement the notification transport layer,
such as got-notify-email which speaks SMTP. This design avoids having
to link all of gotd with network libraries and related crypto libraries.
Notification content is generated by the 'repo_write' process. Commit log
messages and diffstats are written to a file which the 'notify' process
will pass on to its helpers on stdin. The default output looks similar
to 'got log -d'. If too many new commits are present the output looks
similar to 'got log -s' instead. Tags always look like 'got tag -l'.
The session process coordinates generation of notifications. It maintains
a notification queue which holds one notification per updated reference,
and passes notification requests from this queue to the 'repo_write'
process for notification content creation and then to the 'notify'
process for notification delivery.
Only one notification can be in flight at a time to avoid file descriptor
starvation if many references get updated in a single client session.
ok op@