Commit Briefs

Omar Polo

drop privileges after the fork


Omar Polo

fix location example


Omar Polo

move mark_nonblock to utils.c


Omar Polo

mark various functions as static

By marking all those function as static, the compiler is free to do more optimizations. In addition, those functions are not used outside server.c


Omar Polo

cgi now follows globbing rules



Omar Polo

ignore clangd' compile_flags.txt



Omar Polo

configless: fixing the case of the implicit "."

I got bitten by the scope visibility rules. After the end of the block, the path variable is no longer valid, and in fact later load_vhosts fails to open that (because the buffer gets invalidated)


Omar Polo

simplify handle_cgi

Now that I got rid of the enum+switch, adding more state is easier. Before, we used an hack to remember if we had read the CGI reply or not (c->code = -1). This introduces a new state, handle_cgi_reply that reads the CGI script reply, logs it, and only then switches to handle_cgi. handle_cgi itself is cleaner, now it only reads into c->sbuf and send what it had red. We even get, almost for free, the 42 error. If read exists with -1 or 0 from in handle_cgi_reply, we return a proper error to the client. We can extend this further in the future and also try to validate the CGI reply (for now we're only looking for a \n).


Omar Polo

switch to handle_open_conn right after handshake

So we don't re-enter the handle_handsahke and re-do the loop on fnmatch etc. This way, once we're successfully past the handshake, we'll re-enter no handle_open_conn.


Omar Polo

document the DFA



Omar Polo

parse_err is a const pointer


Omar Polo

drop unused target iri_test