Implement support for systemd(8) "socket activation"
authorAlexander Barton <alex@barton.de>
Mon, 4 Feb 2013 20:46:20 +0000 (21:46 +0100)
committerAlexander Barton <alex@barton.de>
Mon, 4 Feb 2013 20:52:27 +0000 (21:52 +0100)
commit8ab097afb743061c6c9b865bdb401ba51285c347
tree8b0691d84cc2a49eeee7c30285f623fa6abf252a
parent84e24afd2f6607a2345c4df2b2f9ad81e9dd4bbc
Implement support for systemd(8) "socket activation"

This patch enables ngIRCd to work with listening sockets already
initialized and passed-in by systemd(8) and hereby to support on-demand
"socket activation".

systemd(8) uses two environment variables to pass information about the
sockets to ngIRCd, LISTEN_PID and LISTEN_FDS, and this mechanism only
kicks in when both variables are set. In all other cases, and therefore
in most installations out there, nothing changes at all.

Please note:
If socket activation is in effect, ngIRCd will not initialize any (other)
soeckets on its own! All sockets must be configured in the systemd(8)
socket unit configuration file in this case, see ./contrib/ngircd.socket
for example.

Probably it would be interesting to match passed-in sockets to configured
listening sockets and to initialize all the remaining ones not already
set up by systemd(8), but this is kept back for an other patch ...

See
 - <http://0pointer.de/blog/projects/socket-activation.html>
 - <http://0pointer.de/blog/projects/socket-activation2.html>
 - <http://www.freedesktop.org/software/systemd/man/systemd.socket.html>
contrib/Makefile.am
contrib/README
contrib/ngircd.socket [new file with mode: 0644]
src/ngircd/conn.c