Commit Graph

37 Commits

Author SHA1 Message Date
Christopher Wellons
47b901d9d3 Truncate rand16() result to 16 bits 2019-02-05 23:25:48 -05:00
Christopher Wellons
1583f6e5b3 Add missing break when send() fails 2019-02-05 23:25:15 -05:00
Christopher Wellons
2a9c514702 Fix config copy-paste error 2019-02-03 18:53:22 -05:00
Christopher Wellons
20ec77e6ef Add LogLevel to the configuration file 2019-02-03 18:44:52 -05:00
Christopher Wellons
6199d648f5 Don't use CLOCK_REALTIME_COARSE
The resolution only seems to be around 4ms.
2019-02-03 18:36:22 -05:00
Christopher Wellons
516d0cd78c Track number of clients using just the queue 2019-02-03 18:32:24 -05:00
Christopher Wellons
dbb2174b65 Remove unnecessary include 2019-02-03 18:13:37 -05:00
Christopher Wellons
e72daae85f Use a custom PRNG 2019-02-03 18:01:24 -05:00
Christopher Wellons
7693ce54e3 Fix up config parser and allow comments 2019-02-03 17:40:28 -05:00
Christopher Wellons
7dc64226aa Use RFC3339 dates in the log 2019-02-03 16:03:56 -05:00
Christopher Wellons
5aa75a8833 minor: Adjust macro alignment 2019-02-03 15:46:23 -05:00
Christopher Wellons
500738e0cf Use vDSO for the clock on Linux 2019-02-03 15:45:31 -05:00
Christopher Wellons
7ac1fbff3b Always ignore SIGPIPE
MSG_DONTWAIT doesn't work quite right on OmniOS / Solaris, so also
disable SIGPIPE.
2019-02-03 15:32:45 -05:00
Christopher Wellons
2bd2b3ca92 Just drop IPV6_V6ONLY (it never works right anyway)
This doesn't seem to work as documented on any system.
2019-02-03 15:28:09 -05:00
Christopher Wellons
08a9dfe97e Check for IPV6_V6ONLY before using it
This is necessary for supporting OmniOS (Solaris), which doesn't
actually document how to actually define this flag. This platform also
requires LDLIBS='-lsocket -lnsl' when compiling.
2019-02-03 15:25:25 -05:00
Christopher Wellons
2f418df897 Don't use :port since that doesn't work with IPv6 2019-02-03 13:06:14 -05:00
Christopher Wellons
94d9a91407 Reject extraneous arguments 2019-02-03 13:03:40 -05:00
Christopher Wellons
09bb8be32a Listen on both ipv6 and ipv4 2019-02-03 12:48:37 -05:00
Christopher Wellons
2f79375360 Explicitly initialize sockaddr_in members 2019-02-03 12:28:47 -05:00
Christopher Wellons
93b94f6b44 Correct for different definitions of sockaddr_in
On BSD it doesn't like the braces, and on Linux it prefers braces. Ugh.
2019-02-03 12:10:17 -05:00
Christopher Wellons
8e1d9fc28a Make it clear when the config file is loaded 2019-02-03 12:00:35 -05:00
Christopher Wellons
90ce8a6696 Restart listening socket if port config changes 2019-02-03 11:55:15 -05:00
Christopher Wellons
d9c5d3fcf0 Allow configuration via config file (-f, SIGHUP) 2019-02-03 11:47:20 -05:00
Christopher Wellons
5c6328c6f2 Formalize configuration managment 2019-02-03 11:46:40 -05:00
Christopher Wellons
3a0126bd99 Add note about queue_remove() 2019-02-03 10:06:12 -05:00
Christopher Wellons
d5726be23d Tighten up integer argument parsing 2019-02-03 09:42:27 -05:00
Christopher Wellons
4bd7b1a3ea Fix up max clients option 2019-02-03 09:39:10 -05:00
Christopher Wellons
66c549c87c Add -l to control banner line length 2019-02-03 09:39:10 -05:00
Christopher Wellons
ce7e3e5914 Allow graceful shutdown with SIGTERM 2019-02-03 09:18:38 -05:00
Christopher Wellons
94aa40778c Make log messages line buffered 2019-02-03 08:18:55 -05:00
Christopher Wellons
112e5b303f Vastly improve logging 2019-02-03 08:11:52 -05:00
Christopher Wellons
81046bcdec Reduce line line length
If clients have a maximum banner size, this will help to keep them
around for longer.
2019-02-03 08:08:27 -05:00
Christopher Wellons
1f1ce4e26d Adapt max_clients on EMFILE or ENFILE 2019-02-02 23:19:44 -05:00
Christopher Wellons
891584a361 Fix random underflow 2019-02-02 23:19:23 -05:00
Christopher Wellons
dca3ca646f Don't forget to double the known capacity 2019-02-02 23:18:56 -05:00
Christopher Wellons
8c37ff055a Don't use a function named log() 2019-02-02 22:43:41 -05:00
Christopher Wellons
7fbba1e7b0 Initial working code 2019-02-02 22:38:59 -05:00