Commits


ignore clangd' compile_flags.txt


print the header in the directory listing


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)


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).


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.


document the DFA


client state machine: function pointers instead of enum+switch


parse_err is a const pointer


drop unused target iri_test


generate compile_flags for clangd


[cgi] always set some variables


sync CGI section with actual implementation


mention v1.5


don't add the query to argv FRC3875 says that if the query does not contain any unecnoded "=" characters, we SHOULD treat the query string as a "search-string", split in on "+" and add every word to the CGI argv. In launch_cgi it's too late because iri->query is the *decoded* query! I have in mind some refactoring around how we decode things, so this is postponed.


bring the CGI implementation in par with GLV-1.12556