ngircd-tor/src/ngircd
Alexander Barton 8ab097afb7 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>
2013-02-04 21:52:27 +01:00
..
.gitignore Add Cygwin binaries (*.exe) to .gitignore files 2012-12-25 18:52:49 +01:00
Makefile.ng Correctly add irc-metadata.{c|h} to Makefile.ng ... 2012-11-05 23:57:14 +01:00
array.c Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
array.h Fixed some spelling errors in documentation and code comments 2011-12-30 00:50:27 +01:00
channel.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
channel.h Implement channel exception list (mode 'e') 2012-01-21 19:59:57 +01:00
class.c G/K-Lines: only add and delete valid IRC masks 2012-01-22 18:53:16 +01:00
class.h Streamline handling of connection rejects (bad password, G/K-line) 2012-01-22 18:33:45 +01:00
client-cap.c New function Client_CapSet() in addition to Client_Cap{Add|Del} 2012-04-27 23:56:56 +02:00
client-cap.h "multi-prefix" capability 1/2: implement complete CAP infrastructure 2012-04-28 00:36:41 +02:00
client.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
client.h Rework cloaked hostname handling, implement "METADATA cloakhost" 2012-11-24 16:15:35 +01:00
conf-ssl.h conf-ssl.h: Use "gnutls_session_t" instead of "gnutls_session" 2012-11-11 10:50:32 +01:00
conf.c Correctly detect when SSL subsystem must be initialized 2013-01-07 20:34:55 +01:00
conf.h Correctly detect when SSL subsystem must be initialized 2013-01-07 20:34:55 +01:00
conn-encoding.c Implement new IRC+ "CHARCONV" command 2012-09-17 00:56:36 +02:00
conn-encoding.h Implement new IRC+ "CHARCONV" command 2012-09-17 00:56:36 +02:00
conn-func.c Get rid of Conn_ResetPenalty(), it is unused 2012-12-31 18:23:21 +01:00
conn-func.h Get rid of Conn_ResetPenalty(), it is unused 2012-12-31 18:23:21 +01:00
conn-ssl.c Correctly detect when SSL subsystem must be initialized 2013-01-07 20:34:55 +01:00
conn-ssl.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
conn-zip.c conn: avoid needlesly scary 'buffer overflow' messages 2011-04-29 23:10:01 +02:00
conn-zip.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
conn.c Implement support for systemd(8) "socket activation" 2013-02-04 21:52:27 +01:00
conn.h Implement new IRC+ "CHARCONV" command 2012-09-17 00:56:36 +02:00
defines.h Use "${docdir}/Commands.txt" as help text file 2013-01-01 19:25:06 +01:00
hash.c hash: Use UINT32 instead of uint32_t 2011-06-27 10:27:07 +02:00
hash.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
io.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
io.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
irc-cap.c Get_CAP_String(): make it buildable with pre-ANSI C compilers 2012-08-27 22:42:04 +02:00
irc-cap.h Implement core IRC capability handling and "CAP" command 2012-03-31 15:59:06 +02:00
irc-channel.c PredefChannelsOnly: Fix message for non pre-defined channels 2012-11-04 20:38:36 +01:00
irc-channel.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
irc-encoding.c Implement new IRC+ "CHARCONV" command 2012-09-17 00:56:36 +02:00
irc-encoding.h Implement new IRC+ "CHARCONV" command 2012-09-17 00:56:36 +02:00
irc-info.c Enable WHOIS to display information about IRC Services 2013-02-03 21:32:53 +01:00
irc-info.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
irc-login.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
irc-login.h Implement SVSNICK command to change remote nicknames 2012-11-02 17:50:31 +01:00
irc-metadata.c Rework cloaked hostname handling, implement "METADATA cloakhost" 2012-11-24 16:15:35 +01:00
irc-metadata.h Implement METADATA command to update client metadata 2012-11-05 23:34:21 +01:00
irc-mode.c MODE: don't report error on "more modes than parameters" 2013-01-13 17:18:04 +01:00
irc-mode.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
irc-op.c Implement channel mode 'V' (invite disallow) 2012-10-06 20:49:35 +02:00
irc-op.h Add missong Doxygen @file tags to ngircd.h and irc-op.h 2011-02-13 17:52:39 +01:00
irc-oper.c Send RPL_REHASHING if rehash was accepted 2012-09-27 00:07:40 +02:00
irc-oper.h Implement IRC_xLINE(): handler for "GLINE" and "KLINE" commands 2011-12-25 16:57:36 +01:00
irc-server.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
irc-server.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
irc-write.c Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00
irc-write.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
irc.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
irc.h New function IRC_CheckListTooBig() to check size of list replies 2012-01-06 20:05:07 +01:00
lists.c Spelling fix: "nick name" -> "nickname" 2012-11-02 14:30:19 +01:00
lists.h New function Lists_CheckReason() to get reason of list entries 2012-01-22 18:11:24 +01:00
log.c Exit message: use singular & plural :-) 2013-01-27 23:22:00 +01:00
log.h Correctly re-open syslog logging after reading of configuration 2012-02-14 11:01:13 +01:00
login.c configure.in: use AC_CANONICAL_HOST (not AC_CANONICAL_TARGET) 2012-09-13 00:06:08 +02:00
login.h New "login" source file 2012-03-31 15:38:46 +02:00
match.c New function MatchCaseInsensitiveList() to check list of patterns 2012-08-26 13:11:45 +02:00
match.h New function MatchCaseInsensitiveList() to check list of patterns 2012-08-26 13:11:45 +02:00
messages.h Enable WHOIS to display information about IRC Services 2013-02-03 21:32:53 +01:00
ngircd.c Streamline punctuation of log messages 2013-01-26 17:00:03 +01:00
ngircd.h Doxygen'ify and update comments in ngircd.{c|h} 2011-02-13 17:52:39 +01:00
numeric.c Rework cloaked hostname handling, implement "METADATA cloakhost" 2012-11-24 16:15:35 +01:00
numeric.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
op.c Op_Check(): always accept commands from a remote server itself 2011-12-25 19:11:43 +01:00
op.h Op_Check(): return client that initiated the request or NULL 2011-12-25 16:52:31 +01:00
pam.c Move client password from the Client to the Connection struct. 2012-08-23 11:07:08 -04:00
pam.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
parse.c Return better "Connection not registered as server link" errors 2013-01-22 10:54:06 +01:00
parse.h Doxygen'ify parse.h 2011-02-13 17:52:39 +01:00
proc.c Proc_Close(): Only close socket if it is still valid 2012-01-06 02:26:04 +01:00
proc.h New function Proc_Close() to shutdown pipes to child processes 2011-08-23 12:31:17 +02:00
resolve.c Add some more casts in assert() statemens 2012-12-25 19:21:40 +01:00
resolve.h Add Doxygen @file documentation to each source and header file 2011-02-13 17:52:38 +01:00
sighandlers.c Spelling fix: "nick name" -> "nickname" 2012-11-02 14:30:19 +01:00
sighandlers.h Code cleanup: mostly removing empty lines 2011-02-13 17:52:38 +01:00