enum { HTTP_STR_GET = MULTICHAR_CONSTANT('G','E','T',' '), HTTP_STR_HEAD = MULTICHAR_CONSTANT('H','E','A','D'), HTTP_STR_POST = MULTICHAR_CONSTANT('P','O','S','T') } lwan_http_method_str_t; typedef enum { FINALIZER_DONE, FINALIZER_TRY_AGAIN, FINALIZER_YIELD_TRY_AGAIN, FINALIZER_ERROR_TOO_LARGE } lwan_read_finalizer_t; enum { HTTP_HDR_CONNECTION = MULTICHAR_CONSTANT_L('C','o','n','n'), HTTP_HDR_RANGE = MULTICHAR_CONSTANT_L('R','a','n','g'), HTTP_HDR_IF_MODIFIED_SINCE = MULTICHAR_CONSTANT_L('I','f','-','M'), HTTP_HDR_ACCEPT = MULTICHAR_CONSTANT_L('A','c','c','e'), HTTP_HDR_CONTENT = MULTICHAR_CONSTANT_L('C','o','n','t'), HTTP_HDR_ENCODING = MULTICHAR_CONSTANT_L('-','E','n','c'), HTTP_HDR_LENGTH = MULTICHAR_CONSTANT_L('-','L','e','n'), HTTP_HDR_TYPE = MULTICHAR_CONSTANT_L('-','T','y','p'), HTTP_HDR_AUTHORIZATION = MULTICHAR_CONSTANT_L('A','u','t','h'), } lwan_http_header_str_t; typedef struct lwan_request_parse_t_ lwan_request_parse_t; struct lwan_request_parse_t_ { lwan_value_t buffer; lwan_value_t query_string;
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <string.h> #include "lwan.h" #include "hash.h" #include "mime-types.h" enum { EXT_JPG = MULTICHAR_CONSTANT_L('.','j','p','g'), EXT_PNG = MULTICHAR_CONSTANT_L('.','p','n','g'), EXT_HTM = MULTICHAR_CONSTANT_L('.','h','t','m'), EXT_CSS = MULTICHAR_CONSTANT_L('.','c','s','s'), EXT_TXT = MULTICHAR_CONSTANT_L('.','t','x','t'), EXT_JS = MULTICHAR_CONSTANT_L('.','j','s',0), } lwan_mime_ext_t; static struct hash *mime_types; void lwan_tables_init(void) { lwan_status_debug("Initializing tables"); if (mime_types) return;