예제 #1
0
        public static string Description(this HttpErrNo errno)
        {
            switch (errno)
            {
            case HttpErrNo.OK: return("success");

            /* Callback-related errors */
            case HttpErrNo.CB_message_begin: return("the on_message_begin callback failed");

            case HttpErrNo.CB_path: return("the on_path callback failed");

            case HttpErrNo.CB_query_string: return("the on_query_string callback failed");

            case HttpErrNo.CB_url: return("the on_url callback failed");

            case HttpErrNo.CB_fragment: return("the on_fragment callback failed");

            case HttpErrNo.CB_header_field: return("the on_header_field callback failed");

            case HttpErrNo.CB_header_value: return("the on_header_value callback failed");

            case HttpErrNo.CB_headers_complete: return("the on_headers_complete callback failed");

            case HttpErrNo.CB_body: return("the on_body callback failed");

            case HttpErrNo.CB_message_complete: return("the on_message_complete callback failed");

            /* Parsing-related errors */
            case HttpErrNo.INVALID_EOF_STATE: return("stream ended at an unexpected time");

            case HttpErrNo.HEADER_OVERFLOW: return("too many header bytes seen; overflow detected");

            case HttpErrNo.CLOSED_CONNECTION: return("data received after completed connection: close message");

            case HttpErrNo.INVALID_VERSION: return("invalid HTTP version");

            case HttpErrNo.INVALID_STATUS: return("invalid HTTP status code");

            case HttpErrNo.INVALID_METHOD: return("invalid HTTP method");

            case HttpErrNo.INVALID_URL: return("invalid URL");

            case HttpErrNo.INVALID_HOST: return("invalid host");

            case HttpErrNo.INVALID_PORT: return("invalid port");

            case HttpErrNo.INVALID_PATH: return("invalid path");

            case HttpErrNo.INVALID_QUERY_STRING: return("invalid query string");

            case HttpErrNo.INVALID_FRAGMENT: return("invalid fragment");

            case HttpErrNo.LF_EXPECTED: return("LF character expected");

            case HttpErrNo.INVALID_HEADER_TOKEN: return("invalid character in header");

            case HttpErrNo.INVALID_CONTENT_LENGTH: return("invalid character in content-length header");

            case HttpErrNo.INVALID_CHUNK_SIZE: return("invalid character in chunk size header");

            case HttpErrNo.INVALID_CONSTANT: return("invalid constant string");

            case HttpErrNo.INVALID_INTERNAL_STATE: return("encountered unexpected internal state");

            case HttpErrNo.STRICT: return("strict mode assertion failed");

            case HttpErrNo.UNKNOWN: return("an unknown error occurred");

            default: throw new ArgumentOutOfRangeException("Unknown HttpErrNo.");
            }
        }
예제 #2
0
 public static string Name(this HttpErrNo errno)
 {
     return(Enum.GetName(typeof(HttpErrNo), errno));
 }