From e9be34c9b798141dd6c224cf33934904935c49b2 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 7 Jan 2015 19:01:26 +0000 Subject: Complete conversion of s6-ipcserver and s6-tcpserver (4 and 6) to socketbinder + d model. With documentation (!) --- doc/s6-ipcserver-access.html | 2 +- doc/s6-ipcserver-socketbinder.html | 71 ++++++ doc/s6-ipcserver.html | 91 ++++--- doc/s6-ipcserverd.html | 131 ++++++++++ doc/s6-sudod.html | 3 + doc/s6-tcpserver-access.html | 9 +- doc/s6-tcpserver4-socketbinder.html | 70 ++++++ doc/s6-tcpserver4d.html | 112 +++++++++ doc/s6-tcpserver6-socketbinder.html | 70 ++++++ doc/s6-tcpserver6d.html | 112 +++++++++ src/conn-tools/s6-ipcserver.c | 4 +- src/conn-tools/s6-ipcserverd.c | 10 +- src/conn-tools/s6-tcpserver.c | 129 +++++++--- src/conn-tools/s6-tcpserver4.c | 463 +++++++----------------------------- src/conn-tools/s6-tcpserver6.c | 461 +++++++---------------------------- 15 files changed, 911 insertions(+), 827 deletions(-) create mode 100644 doc/s6-ipcserver-socketbinder.html create mode 100644 doc/s6-ipcserverd.html create mode 100644 doc/s6-tcpserver4-socketbinder.html create mode 100644 doc/s6-tcpserver4d.html create mode 100644 doc/s6-tcpserver6-socketbinder.html create mode 100644 doc/s6-tcpserver6d.html diff --git a/doc/s6-ipcserver-access.html b/doc/s6-ipcserver-access.html index 817425b..515138c 100644 --- a/doc/s6-ipcserver-access.html +++ b/doc/s6-ipcserver-access.html @@ -22,7 +22,7 @@ control tool for Unix domain sockets on systems where the getpeereid() system call can be implemented. It is meant to be run after -s6-ipcserver and before +s6-ipcserverd and before the application program on the s6-ipcserver command line.

diff --git a/doc/s6-ipcserver-socketbinder.html b/doc/s6-ipcserver-socketbinder.html new file mode 100644 index 0000000..04670cd --- /dev/null +++ b/doc/s6-ipcserver-socketbinder.html @@ -0,0 +1,71 @@ + + + + + s6-networking: the s6-ipcserver-socketbinder program + + + + + + +

+s6-networking
+Software
+skarnet.org +

+ +

The s6-ipcserver-socketbinder program

+ +

+s6-ipcserver-socketbinder binds a Unix domain +socket, then executes a program. +

+ +

Interface

+ +
+     s6-ipcserver-socketbinder [ -d | -D ] [ -b backlog ] path prog...
+
+ + -

Signals

+

Implementation

Notes

diff --git a/doc/s6-ipcserverd.html b/doc/s6-ipcserverd.html new file mode 100644 index 0000000..916de12 --- /dev/null +++ b/doc/s6-ipcserverd.html @@ -0,0 +1,131 @@ + + + + + s6-networking: the s6-ipcserverd program + + + + + + +

+s6-networking
+Software
+skarnet.org +

+ +

The s6-ipcserverd program

+ +

+s6-ipcserverd is the serving part of the +s6-ipcserver super-server. +It assumes that its stdin is a bound and listening Unix +domain socket, and +it accepts connections from clients connecting to it, forking a +program to handle each connection. +

+ +

Interface

+ +
+     s6-ipcserverd [ -1 ] [ -v verbosity ] [ -P | -p ] [ -c maxconn ] [ -C localmaxconn ] prog...
+
+ + + +

Environment variables

+ +

+ For each connection, an instance of prog... is spawned with +the following variables set: +

+ + + +

+ If client credentials lookup has been disabled, IPCREMOTEEUID and +IPCREMOTEEUID will be set, but empty. +

+ + +

Options

+ + + +

Signals

+ + + +

Notes

+ + + + + diff --git a/doc/s6-sudod.html b/doc/s6-sudod.html index d896d87..c783736 100644 --- a/doc/s6-sudod.html +++ b/doc/s6-sudod.html @@ -124,6 +124,9 @@ VAR variable will be removed from the environment.) and file descriptors over the socket.
  • s6-sudod spawns sargv cargv.
  • + (Actually, s6-ipcserver does not do this +itself: it executes into other programs that each do one of the tasks. But for +our example, it does not matter.)

    diff --git a/doc/s6-tcpserver-access.html b/doc/s6-tcpserver-access.html index cb758d9..a89d9e3 100644 --- a/doc/s6-tcpserver-access.html +++ b/doc/s6-tcpserver-access.html @@ -36,7 +36,10 @@ just like tcpwrappers' tcpd program.

  • s6-tcpserver-access checks it is run under a UCSPI server tool such as s6-tcpserver, s6-tcpserver4 or - s6-tcpserver6.
  • + s6-tcpserver6, or their + stripped-down versions + s6-tcpserver4d or + s6-tcpserver6d.
  • It checks that the remote end of the connection fits the accepted criteria defined by the database contained in rulesdir or rulesfile. If the database tells it to reject the connection, @@ -224,9 +227,9 @@ environment modifications, if any, s6-tcpserver-access execs into