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