diff options
Diffstat (limited to 'doc/s6-tcpserver4-socketbinder.html')
-rw-r--r-- | doc/s6-tcpserver4-socketbinder.html | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/doc/s6-tcpserver4-socketbinder.html b/doc/s6-tcpserver4-socketbinder.html deleted file mode 100644 index 6bf1c58..0000000 --- a/doc/s6-tcpserver4-socketbinder.html +++ /dev/null @@ -1,82 +0,0 @@ -<html> - <head> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <meta http-equiv="Content-Language" content="en" /> - <title>s6-networking: the s6-tcpserver4-socketbinder program</title> - <meta name="Description" content="s6-networking: the s6-tcpserver4-socketbinder program" /> - <meta name="Keywords" content="s6-networking s6-tcpserver4-socketbinder tcpserver ucspi inet ipv4 socket bind listen" /> - <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> --> - </head> -<body> - -<p> -<a href="index.html">s6-networking</a><br /> -<a href="//skarnet.org/software/">Software</a><br /> -<a href="//skarnet.org/">skarnet.org</a> -</p> - -<h1> The <tt>s6-tcpserver4-socketbinder</tt> program </h1> - -<p> -<tt>s6-tcpserver4-socketbinder</tt> binds an INET domain -socket to an IPv4 address and port, then executes a program. -</p> - -<h2> Interface </h2> - -<pre> - s6-tcpserver4-socketbinder [ -d | -D ] [ -b <em>backlog</em> ] [ -M | -m ] [ -B ] <em>ip</em> <em>port</em> <em>prog...</em> -</pre> - -<ul> - <li> s6-tcpserver4-socketbinder creates a TCP socket -and binds it to IPv4 address <em>ip</em>, port <em>port</em>. -It prepares the socket to accept connections by calling -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/listen.html">listen()</a>. </li> - <li> It then execs into <em>prog...</em> with the open socket -as its standard input. </li> -</ul> - -<h2> Options </h2> - -<ul> - <li> <tt>-d</tt> : allow instant rebinding to the same IP and port -even if it has been used not long ago - this is the SO_REUSEADDR flag to -<a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html">setsockopt()</a> -and is generally used with server programs. This is the default. </li> - <li> <tt>-D</tt> : disallow instant rebinding to the same path. </li> - <li> <tt>-b <em>backlog</em></tt> : set a maximum of -<em>backlog</em> backlog connections on the socket - extra -connection attempts will rejected by the kernel. The default is SOMAXCONN, -i.e. the maximum number allowed by the system. If <em>backlog</em> -is 0, then the socket will be created, but it <strong>will not be -listening</strong>. </li> - <li> <tt>-M</tt> : create a TCP socket. This is the default. </li> - <li> <tt>-m</tt> : create a UDP socket. Note -that by default UDP sockets are not connection-mode, and <tt>listen()</tt> -will fail - so you should always give the <tt>-b0</tt> option to -s6-tcpserver4-socketbinder along with <tt>-m</tt>. </li> - <li> <tt>-B</tt> : create a blocking socket. Default is non-blocking. </li> -</ul> - -<h2> Notes </h2> - -<ul> - <li> The socket is provided <strong>non-blocking by default</strong>. </li> - <li> s6-tcpserver4-socketbinder is part of a set of basic blocks used to -build a flexible TCP/IPv4 super-server. It normally should be given a -command line crafted to make it execute into -<a href="s6-tcpserver4d.html">s6-tcpserver4d</a> to accept connections -from clients, or into a program such as -<a href="//skarnet.org/software/s6/s6-applyuidgid.html">s6-applyuidgid</a> -to drop privileges before doing so. </li> - <li> The <a href="s6-tcpserver4.html">s6-tcpserver4</a> program does -exactly this. It implements -a full TCP/IPv4 super-server by building a command line starting with -s6-tcpserver4-socketbinder and ending with s6-tcpserver4d followed by the -application program, and executing into it. </li> -</ul> - -</body> -</html> |