740
741
-------------------------------------------------------------------------*/
743
http_hdr_reason_lookup(HTTPStatus status)
744
http_hdr_reason_lookup(unsigned status)
746
#define HTTP_STATUS_ENTRY(value, reason) \
747
case value: return #reason
745
749
switch (status) {
746
case HTTP_STATUS_NONE:
748
case HTTP_STATUS_CONTINUE:
750
case HTTP_STATUS_SWITCHING_PROTOCOL:
751
return "Switching Protocol";
754
case HTTP_STATUS_CREATED:
756
case HTTP_STATUS_ACCEPTED:
758
case HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION:
759
return "Non Authoritative Information";
760
case HTTP_STATUS_NO_CONTENT:
762
case HTTP_STATUS_RESET_CONTENT:
763
return "Reset Content";
764
case HTTP_STATUS_PARTIAL_CONTENT:
765
return "Partial Content";
766
case HTTP_STATUS_MULTIPLE_CHOICES:
767
return "Multiple Choices";
768
case HTTP_STATUS_MOVED_PERMANENTLY:
769
return "Moved Permanently";
770
case HTTP_STATUS_MOVED_TEMPORARILY:
771
return "Moved Temporarily";
772
case HTTP_STATUS_SEE_OTHER:
774
case HTTP_STATUS_NOT_MODIFIED:
775
return "Not Modified";
776
case HTTP_STATUS_USE_PROXY:
778
case HTTP_STATUS_TEMPORARY_REDIRECT:
779
return "Temporary Redirect";
780
case HTTP_STATUS_BAD_REQUEST:
781
return "Bad Request";
782
case HTTP_STATUS_UNAUTHORIZED:
783
return "Unauthorized";
784
case HTTP_STATUS_PAYMENT_REQUIRED:
785
return "Payment Required";
786
case HTTP_STATUS_FORBIDDEN:
788
case HTTP_STATUS_NOT_FOUND:
790
case HTTP_STATUS_METHOD_NOT_ALLOWED:
791
return "Method Not Allowed";
792
case HTTP_STATUS_NOT_ACCEPTABLE:
793
return "Not Acceptable";
794
case HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED:
795
return "Proxy Authentication Required";
796
case HTTP_STATUS_REQUEST_TIMEOUT:
797
return "Request Timeout";
798
case HTTP_STATUS_CONFLICT:
800
case HTTP_STATUS_GONE:
802
case HTTP_STATUS_LENGTH_REQUIRED:
803
return "Length Required";
804
case HTTP_STATUS_PRECONDITION_FAILED:
805
return "Precondition Failed";
806
case HTTP_STATUS_RANGE_NOT_SATISFIABLE:
807
return "Requested Range Not Satisfiable";
808
case HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE:
809
return "Request Entity Too Large";
810
case HTTP_STATUS_REQUEST_URI_TOO_LONG:
811
return "Request URI Too Long";
812
case HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE:
813
return "Unsupported Media Type";
814
case HTTP_STATUS_INTERNAL_SERVER_ERROR:
815
return "Internal Server Error";
816
case HTTP_STATUS_NOT_IMPLEMENTED:
817
return "Not Implemented";
818
case HTTP_STATUS_BAD_GATEWAY:
819
return "Bad Gateway";
820
case HTTP_STATUS_SERVICE_UNAVAILABLE:
821
return "Service Unavailable";
822
case HTTP_STATUS_GATEWAY_TIMEOUT:
823
return "Gateway Timeout";
824
case HTTP_STATUS_HTTPVER_NOT_SUPPORTED:
825
return "HTTP Version Not Supported";
750
HTTP_STATUS_ENTRY(0, None); // TS_HTTP_STATUS_NONE
751
HTTP_STATUS_ENTRY(100, Continue); // [RFC2616]
752
HTTP_STATUS_ENTRY(101, Switching Protocols); // [RFC2616]
753
HTTP_STATUS_ENTRY(102, Processing); // [RFC2518]
754
// 103-199 Unassigned
755
HTTP_STATUS_ENTRY(200, OK); // [RFC2616]
756
HTTP_STATUS_ENTRY(201, Created); // [RFC2616]
757
HTTP_STATUS_ENTRY(202, Accepted); // [RFC2616]
758
HTTP_STATUS_ENTRY(203, Non-Authoritative Information); // [RFC2616]
759
HTTP_STATUS_ENTRY(204, No Content); // [RFC2616]
760
HTTP_STATUS_ENTRY(205, Reset Content); // [RFC2616]
761
HTTP_STATUS_ENTRY(206, Partial Content); // [RFC2616]
762
HTTP_STATUS_ENTRY(207, Multi-Status); // [RFC4918]
763
HTTP_STATUS_ENTRY(208, Already Reported); // [RFC5842]
764
// 209-225 Unassigned
765
HTTP_STATUS_ENTRY(226, IM Used); // [RFC3229]
766
// 227-299 Unassigned
767
HTTP_STATUS_ENTRY(300, Multiple Choices); // [RFC2616]
768
HTTP_STATUS_ENTRY(301, Moved Permanently); // [RFC2616]
769
HTTP_STATUS_ENTRY(302, Found); // [RFC2616]
770
HTTP_STATUS_ENTRY(303, See Other); // [RFC2616]
771
HTTP_STATUS_ENTRY(304, Not Modified); // [RFC2616]
772
HTTP_STATUS_ENTRY(305, Use Proxy); // [RFC2616]
773
// 306 Reserved // [RFC2616]
774
HTTP_STATUS_ENTRY(307, Temporary Redirect); // [RFC2616]
775
HTTP_STATUS_ENTRY(308, Permanent Redirect); // [RFC-reschke-http-status-308-07]
776
// 309-399 Unassigned
777
HTTP_STATUS_ENTRY(400, Bad Request); // [RFC2616]
778
HTTP_STATUS_ENTRY(401, Unauthorized); // [RFC2616]
779
HTTP_STATUS_ENTRY(402, Payment Required); // [RFC2616]
780
HTTP_STATUS_ENTRY(403, Forbidden); // [RFC2616]
781
HTTP_STATUS_ENTRY(404, Not Found); // [RFC2616]
782
HTTP_STATUS_ENTRY(405, Method Not Allowed); // [RFC2616]
783
HTTP_STATUS_ENTRY(406, Not Acceptable); // [RFC2616]
784
HTTP_STATUS_ENTRY(407, Proxy Authentication Required); // [RFC2616]
785
HTTP_STATUS_ENTRY(408, Request Timeout); // [RFC2616]
786
HTTP_STATUS_ENTRY(409, Conflict); // [RFC2616]
787
HTTP_STATUS_ENTRY(410, Gone); // [RFC2616]
788
HTTP_STATUS_ENTRY(411, Length Required); // [RFC2616]
789
HTTP_STATUS_ENTRY(412, Precondition Failed); // [RFC2616]
790
HTTP_STATUS_ENTRY(413, Request Entity Too Large); // [RFC2616]
791
HTTP_STATUS_ENTRY(414, Request-URI Too Long); // [RFC2616]
792
HTTP_STATUS_ENTRY(415, Unsupported Media Type); // [RFC2616]
793
HTTP_STATUS_ENTRY(416, Requested Range Not Satisfiable); // [RFC2616]
794
HTTP_STATUS_ENTRY(417, Expectation Failed); // [RFC2616]
795
HTTP_STATUS_ENTRY(422, Unprocessable Entity); // [RFC4918]
796
HTTP_STATUS_ENTRY(423, Locked); // [RFC4918]
797
HTTP_STATUS_ENTRY(424, Failed Dependency); // [RFC4918]
798
// 425 Reserved // [RFC2817]
799
HTTP_STATUS_ENTRY(426, Upgrade Required); // [RFC2817]
801
HTTP_STATUS_ENTRY(428, Precondition Required); // [RFC6585]
802
HTTP_STATUS_ENTRY(429, Too Many Requests); // [RFC6585]
804
HTTP_STATUS_ENTRY(431, Request Header Fields Too Large); // [RFC6585]
805
// 432-499 Unassigned
806
HTTP_STATUS_ENTRY(500, Internal Server Error); // [RFC2616]
807
HTTP_STATUS_ENTRY(501, Not Implemented); // [RFC2616]
808
HTTP_STATUS_ENTRY(502, Bad Gateway); // [RFC2616]
809
HTTP_STATUS_ENTRY(503, Service Unavailable); // [RFC2616]
810
HTTP_STATUS_ENTRY(504, Gateway Timeout); // [RFC2616]
811
HTTP_STATUS_ENTRY(505, HTTP Version Not Supported); // [RFC2616]
812
HTTP_STATUS_ENTRY(506, Variant Also Negotiates); // [RFC2295]
813
HTTP_STATUS_ENTRY(507, Insufficient Storage); // [RFC4918]
814
HTTP_STATUS_ENTRY(508, Loop Detected); // [RFC5842]
816
HTTP_STATUS_ENTRY(510, Not Extended); // [RFC2774]
817
HTTP_STATUS_ENTRY(511, Network Authentication Required); // [RFC6585]
818
// 512-599 Unassigned
821
#undef HTTP_STATUS_ENTRY
831
826
/*-------------------------------------------------------------------------
832
827
-------------------------------------------------------------------------*/
835
_http_parser_init(HTTPParser * parser)
830
_http_parser_init(HTTPParser *parser)
837
832
parser->m_parsing_http = true;