First of all, thank you for making this available to everyone.
Originally I was trying to compile with the c99 standard, but it appears your code makes use of quite a few inline functions. At least that's what I think they're termed (i.e. calling functions without explicitly declaring prototypes in the header files). I'm kind of lost when it comes to compiler issues, so I was wondering if you could explain the purpose of this somewhat, and if there is a specific reason why this can not compile under c99? I understand that it's performance-related, but some additional insight would be nice.
From what I've gathered, c99 does not allow this unless you explicitly declare a function as inline, and do so in the header file as well? Or perhaps disable checks for some parts of code?
Also, I am particularly curious about the implementation of your "cgi_enforce_method()" in cgi.c. It is called in http_server.c with 2 parameters, but the definition only takes 1. My best guess is it is some kind of "special" caller. I did some Googling to try to find out more but compiler literature is pretty dense, so I was wondering if you wouldn't mind explaining how that works, or what the proper term is for this kind of call