1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * soup-status.h: HTTP status code and status class definitions
5 * Copyright (C) 2001-2003, Ximian, Inc.
9 #define SOUP_STATUS_H 1
12 SOUP_STATUS_CLASS_TRANSPORT_ERROR = 0,
13 SOUP_STATUS_CLASS_INFORMATIONAL,
14 SOUP_STATUS_CLASS_SUCCESS,
15 SOUP_STATUS_CLASS_REDIRECT,
16 SOUP_STATUS_CLASS_CLIENT_ERROR,
17 SOUP_STATUS_CLASS_SERVER_ERROR
20 #define SOUP_STATUS_IS_TRANSPORT_ERROR(x) ((x) > 0 && (x) < 100)
21 #define SOUP_STATUS_IS_INFORMATIONAL(x) ((x) >= 100 && (x) < 200)
22 #define SOUP_STATUS_IS_SUCCESSFUL(x) ((x) >= 200 && (x) < 300)
23 #define SOUP_STATUS_IS_REDIRECTION(x) ((x) >= 300 && (x) < 400)
24 #define SOUP_STATUS_IS_CLIENT_ERROR(x) ((x) >= 400 && (x) < 500)
25 #define SOUP_STATUS_IS_SERVER_ERROR(x) ((x) >= 500 && (x) < 600)
28 /* Transport Errors */
29 SOUP_STATUS_CANCELLED = 1,
30 SOUP_STATUS_CANT_RESOLVE,
31 SOUP_STATUS_CANT_RESOLVE_PROXY,
32 SOUP_STATUS_CANT_CONNECT,
33 SOUP_STATUS_CANT_CONNECT_PROXY,
34 SOUP_STATUS_SSL_FAILED,
36 SOUP_STATUS_MALFORMED,
37 SOUP_STATUS_TRY_AGAIN,
39 /* HTTP Status Codes */
40 SOUP_STATUS_CONTINUE = 100,
41 SOUP_STATUS_SWITCHING_PROTOCOLS = 101,
42 SOUP_STATUS_PROCESSING = 102, /* WebDAV */
45 SOUP_STATUS_CREATED = 201,
46 SOUP_STATUS_ACCEPTED = 202,
47 SOUP_STATUS_NON_AUTHORITATIVE = 203,
48 SOUP_STATUS_NO_CONTENT = 204,
49 SOUP_STATUS_RESET_CONTENT = 205,
50 SOUP_STATUS_PARTIAL_CONTENT = 206,
51 SOUP_STATUS_MULTI_STATUS = 207, /* WebDAV */
53 SOUP_STATUS_MULTIPLE_CHOICES = 300,
54 SOUP_STATUS_MOVED_PERMANENTLY = 301,
55 SOUP_STATUS_FOUND = 302,
56 SOUP_STATUS_MOVED_TEMPORARILY = 302, /* RFC 2068 */
57 SOUP_STATUS_SEE_OTHER = 303,
58 SOUP_STATUS_NOT_MODIFIED = 304,
59 SOUP_STATUS_USE_PROXY = 305,
60 SOUP_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL = 306, /* (reserved) */
61 SOUP_STATUS_TEMPORARY_REDIRECT = 307,
63 SOUP_STATUS_BAD_REQUEST = 400,
64 SOUP_STATUS_UNAUTHORIZED = 401,
65 SOUP_STATUS_PAYMENT_REQUIRED = 402, /* (reserved) */
66 SOUP_STATUS_FORBIDDEN = 403,
67 SOUP_STATUS_NOT_FOUND = 404,
68 SOUP_STATUS_METHOD_NOT_ALLOWED = 405,
69 SOUP_STATUS_NOT_ACCEPTABLE = 406,
70 SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED = 407,
71 SOUP_STATUS_PROXY_UNAUTHORIZED = SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED,
72 SOUP_STATUS_REQUEST_TIMEOUT = 408,
73 SOUP_STATUS_CONFLICT = 409,
74 SOUP_STATUS_GONE = 410,
75 SOUP_STATUS_LENGTH_REQUIRED = 411,
76 SOUP_STATUS_PRECONDITION_FAILED = 412,
77 SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE = 413,
78 SOUP_STATUS_REQUEST_URI_TOO_LONG = 414,
79 SOUP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415,
80 SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
81 SOUP_STATUS_INVALID_RANGE = SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
82 SOUP_STATUS_EXPECTATION_FAILED = 417,
83 SOUP_STATUS_UNPROCESSABLE_ENTITY = 422, /* WebDAV */
84 SOUP_STATUS_LOCKED = 423, /* WebDAV */
85 SOUP_STATUS_FAILED_DEPENDENCY = 424, /* WebDAV */
87 SOUP_STATUS_INTERNAL_SERVER_ERROR = 500,
88 SOUP_STATUS_NOT_IMPLEMENTED = 501,
89 SOUP_STATUS_BAD_GATEWAY = 502,
90 SOUP_STATUS_SERVICE_UNAVAILABLE = 503,
91 SOUP_STATUS_GATEWAY_TIMEOUT = 504,
92 SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED = 505,
93 SOUP_STATUS_INSUFFICIENT_STORAGE = 507, /* WebDAV search */
94 SOUP_STATUS_NOT_EXTENDED = 510 /* RFC 2774 */
95 } SoupKnownStatusCode;
97 const char *soup_status_get_phrase (guint status_code);
99 #endif /* SOUP_STATUS_H */