Commits


limit IMSG_BUF_CONT size by the maximum allowed by imsg


allow Twrite with size bigger than ~16K Until now I've been using a single imsg to handle each messages and the imsg framework has a limit of around 16K for message. For almost all requests, this is fine. Except for Twrite and Tread. This is an attempt to make Twrite handle bigger buffers. The listener process just looks at how big a request is and split it up in multiple messages and the client process tries to remember the fid, position and missing data to continue the write. This means that a single Twrite can be split up in multiple write(2)s.


drop unused function listen_by_id


kill unused variable


tweak debug call


drop unnecessary debugging log


add IMSG_CTL_DEBUG to debug the opened fid meant to be used from kamictl to dump all the opened fid by every connection.


listener: enable config reload


cache listener flags in struct client this saves us from the small chance that a client accepted before reconf uses the flags from a listener post reconf.


fix restart in listener drop connections in the handshake phase: the listener from where they've been accepted is now being replaced and its id is no more meaningful. Clients for which we have already sent an auth request are kept.


drop unused flag done for clients


remove clients from the splay at the start of close_conn


use serial ids and drop usage of arc4random it's not so useful here and not (directly) used anywhere else.


listener: correctly swap config after reload and don't forget to free the current config!


use STAILQ_INIT instead of memcpy(head, 0) to init the queues