move util.c declarations in utils.h it's not spelled `util.h' because otherwise it'd get included instead of /usr/include/util.h

re-create the tls_config for each request this is just to simplify the future additions of client certificates.

handle empty replies (i.e. no header) thanks mansfield for breaking your server so I notice this error

send received page in chunks imsg can't handle buffer "too big" (around INT16_MAX) and solene@ capsule index is ~29K. The 4K chunk size is completely arbitrary.

fmt (some missing space -> tab conversion)

wrap unfreeze in ifdef instead of defining macros in compat.h. It's clearer that it's only for libevent2 this way

unfrozen by default it seems that we can "melt" :P the evbuffer from the start to avoid the unfreeze/freeze dance

buffer is frozen; drain becomes a NOP

fix bufferevent tls I/O on libevent2 on libevent2 we need to wrap evbuffer_add with evbuffer_freeze/evbuffer_unfreeze. Not sure exactly why, probably because we're doing some evbuffer_enable/disable/enable-again. Retain compatibility with the custom libevent1 in base on OpenBSD.

drain read buffer before EOF

initial gopher support

support finger:// urls!

fix possible overflow sizeof(buf) should be equal to howmuch, otherwise we may end up reading with tls_read out of bounds and corrupting the stack.

move struct req declaration up avoid a dummy `struct req;'

re-align declarations