Commit Briefs
don't crash on handshake failures
ty gemini://discovery.geminiprotocol.com =)
fix various warnings, no functional changes
now that we have a bounch of -Wxxx flags during compilation, let's fix everything.
added fs process
it's the only one that has file system access. For now it serves about:new (from memory) and about:bookmarks (from ~/.telescope/bookmarks.gmi if found)
set the off to zero after flushing the buffer
this was the cause we had duplicated "chunks" in the pages: if we enter copy_body with req->off != 0 but then tls_read returns WANT_POLLIN/POLLOUT, the next time we flush the same chunk again.
don't drop the start of the document
The first tls_read may and up reading more than the response line, but we were using another buffer in copy_body so we loose up to the first 1K of every document.
allow IMSG_STOP of not-existent requests
It's easier to allow the stopping of not-existent requests rather than track which tabs have still ongoing connections and what not and handle this bit of logic in the UI.
early add requests to the queue
close_with_err does a close_conn which in turns drops req from the queue. Thus it crashes on error, avoid that.
add timeout for connection and some s/die/_exit
Crashing is some situation is not a good idea. If the other process is dead, it has probably already crashed, so crashing again would overwrite the core file, and in every case it doesn't tell us much. It's more interesting to see why the first process crashed in the first place.