fixed typo enable_sqllite -> enable_sqlite
[platform/upstream/libsoup.git] / libsoup / soup-status.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * soup-status.h: HTTP status code and status class definitions
4  *
5  * Copyright (C) 2001-2003, Ximian, Inc.
6  */
7
8 #ifndef SOUP_STATUS_H
9 #define SOUP_STATUS_H 1
10
11 #include <libsoup/soup-types.h>
12
13 G_BEGIN_DECLS
14
15 #define SOUP_STATUS_IS_TRANSPORT_ERROR(status) ((status) >  0   && (status) < 100)
16 #define SOUP_STATUS_IS_INFORMATIONAL(status)   ((status) >= 100 && (status) < 200)
17 #define SOUP_STATUS_IS_SUCCESSFUL(status)      ((status) >= 200 && (status) < 300)
18 #define SOUP_STATUS_IS_REDIRECTION(status)     ((status) >= 300 && (status) < 400)
19 #define SOUP_STATUS_IS_CLIENT_ERROR(status)    ((status) >= 400 && (status) < 500)
20 #define SOUP_STATUS_IS_SERVER_ERROR(status)    ((status) >= 500 && (status) < 600)
21
22 typedef enum {
23         SOUP_STATUS_NONE,
24
25         /* Transport Errors */
26         SOUP_STATUS_CANCELLED                       = 1,
27         SOUP_STATUS_CANT_RESOLVE,
28         SOUP_STATUS_CANT_RESOLVE_PROXY,
29         SOUP_STATUS_CANT_CONNECT,
30         SOUP_STATUS_CANT_CONNECT_PROXY,
31         SOUP_STATUS_SSL_FAILED,
32         SOUP_STATUS_IO_ERROR,
33         SOUP_STATUS_MALFORMED,
34         SOUP_STATUS_TRY_AGAIN,
35         SOUP_STATUS_TOO_MANY_REDIRECTS,
36         SOUP_STATUS_TLS_FAILED,
37
38         /* HTTP Status Codes */
39         SOUP_STATUS_CONTINUE                        = 100,
40         SOUP_STATUS_SWITCHING_PROTOCOLS             = 101,
41         SOUP_STATUS_PROCESSING                      = 102, /* WebDAV */
42
43         SOUP_STATUS_OK                              = 200,
44         SOUP_STATUS_CREATED                         = 201,
45         SOUP_STATUS_ACCEPTED                        = 202,
46         SOUP_STATUS_NON_AUTHORITATIVE               = 203,
47         SOUP_STATUS_NO_CONTENT                      = 204,
48         SOUP_STATUS_RESET_CONTENT                   = 205,
49         SOUP_STATUS_PARTIAL_CONTENT                 = 206,
50         SOUP_STATUS_MULTI_STATUS                    = 207, /* WebDAV */
51
52         SOUP_STATUS_MULTIPLE_CHOICES                = 300,
53         SOUP_STATUS_MOVED_PERMANENTLY               = 301,
54         SOUP_STATUS_FOUND                           = 302,
55         SOUP_STATUS_MOVED_TEMPORARILY               = 302, /* RFC 2068 */
56         SOUP_STATUS_SEE_OTHER                       = 303,
57         SOUP_STATUS_NOT_MODIFIED                    = 304,
58         SOUP_STATUS_USE_PROXY                       = 305,
59         SOUP_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL  = 306, /* (reserved) */
60         SOUP_STATUS_TEMPORARY_REDIRECT              = 307,
61
62         SOUP_STATUS_BAD_REQUEST                     = 400,
63         SOUP_STATUS_UNAUTHORIZED                    = 401,
64         SOUP_STATUS_PAYMENT_REQUIRED                = 402, /* (reserved) */
65         SOUP_STATUS_FORBIDDEN                       = 403,
66         SOUP_STATUS_NOT_FOUND                       = 404,
67         SOUP_STATUS_METHOD_NOT_ALLOWED              = 405,
68         SOUP_STATUS_NOT_ACCEPTABLE                  = 406,
69         SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED   = 407,
70         SOUP_STATUS_PROXY_UNAUTHORIZED              = SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED,
71         SOUP_STATUS_REQUEST_TIMEOUT                 = 408,
72         SOUP_STATUS_CONFLICT                        = 409,
73         SOUP_STATUS_GONE                            = 410,
74         SOUP_STATUS_LENGTH_REQUIRED                 = 411,
75         SOUP_STATUS_PRECONDITION_FAILED             = 412,
76         SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE        = 413,
77         SOUP_STATUS_REQUEST_URI_TOO_LONG            = 414,
78         SOUP_STATUS_UNSUPPORTED_MEDIA_TYPE          = 415,
79         SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
80         SOUP_STATUS_INVALID_RANGE                   = SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
81         SOUP_STATUS_EXPECTATION_FAILED              = 417,
82         SOUP_STATUS_UNPROCESSABLE_ENTITY            = 422, /* WebDAV */
83         SOUP_STATUS_LOCKED                          = 423, /* WebDAV */
84         SOUP_STATUS_FAILED_DEPENDENCY               = 424, /* WebDAV */
85
86         SOUP_STATUS_INTERNAL_SERVER_ERROR           = 500,
87         SOUP_STATUS_NOT_IMPLEMENTED                 = 501,
88         SOUP_STATUS_BAD_GATEWAY                     = 502,
89         SOUP_STATUS_SERVICE_UNAVAILABLE             = 503,
90         SOUP_STATUS_GATEWAY_TIMEOUT                 = 504,
91         SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED      = 505,
92         SOUP_STATUS_INSUFFICIENT_STORAGE            = 507, /* WebDAV search */
93         SOUP_STATUS_NOT_EXTENDED                    = 510  /* RFC 2774 */
94 } SoupStatus;
95
96 const char *soup_status_get_phrase (guint status_code);
97 SOUP_AVAILABLE_IN_2_26
98 guint       soup_status_proxify    (guint status_code);
99
100 #define SOUP_HTTP_ERROR soup_http_error_quark()
101 GQuark soup_http_error_quark (void);
102
103 #ifndef SOUP_DISABLE_DEPRECATED
104 /* For introspection purposes, we create a duplicate enum type under
105  * the deprecated type name, since some (all?) bindings don't handle
106  * enum type typedefs the way we want.
107  */
108 typedef enum {
109         SOUP_KNOWN_STATUS_CODE_NONE,
110
111         SOUP_KNOWN_STATUS_CODE_CANCELLED                       = 1,
112         SOUP_KNOWN_STATUS_CODE_CANT_RESOLVE,
113         SOUP_KNOWN_STATUS_CODE_CANT_RESOLVE_PROXY,
114         SOUP_KNOWN_STATUS_CODE_CANT_CONNECT,
115         SOUP_KNOWN_STATUS_CODE_CANT_CONNECT_PROXY,
116         SOUP_KNOWN_STATUS_CODE_SSL_FAILED,
117         SOUP_KNOWN_STATUS_CODE_IO_ERROR,
118         SOUP_KNOWN_STATUS_CODE_MALFORMED,
119         SOUP_KNOWN_STATUS_CODE_TRY_AGAIN,
120         SOUP_KNOWN_STATUS_CODE_TOO_MANY_REDIRECTS,
121         SOUP_KNOWN_STATUS_CODE_TLS_FAILED,
122
123         SOUP_KNOWN_STATUS_CODE_CONTINUE                        = 100,
124         SOUP_KNOWN_STATUS_CODE_SWITCHING_PROTOCOLS             = 101,
125         SOUP_KNOWN_STATUS_CODE_PROCESSING                      = 102,
126
127         SOUP_KNOWN_STATUS_CODE_OK                              = 200,
128         SOUP_KNOWN_STATUS_CODE_CREATED                         = 201,
129         SOUP_KNOWN_STATUS_CODE_ACCEPTED                        = 202,
130         SOUP_KNOWN_STATUS_CODE_NON_AUTHORITATIVE               = 203,
131         SOUP_KNOWN_STATUS_CODE_NO_CONTENT                      = 204,
132         SOUP_KNOWN_STATUS_CODE_RESET_CONTENT                   = 205,
133         SOUP_KNOWN_STATUS_CODE_PARTIAL_CONTENT                 = 206,
134         SOUP_KNOWN_STATUS_CODE_MULTI_STATUS                    = 207,
135
136         SOUP_KNOWN_STATUS_CODE_MULTIPLE_CHOICES                = 300,
137         SOUP_KNOWN_STATUS_CODE_MOVED_PERMANENTLY               = 301,
138         SOUP_KNOWN_STATUS_CODE_FOUND                           = 302,
139         SOUP_KNOWN_STATUS_CODE_MOVED_TEMPORARILY               = 302,
140         SOUP_KNOWN_STATUS_CODE_SEE_OTHER                       = 303,
141         SOUP_KNOWN_STATUS_CODE_NOT_MODIFIED                    = 304,
142         SOUP_KNOWN_STATUS_CODE_USE_PROXY                       = 305,
143         SOUP_KNOWN_STATUS_CODE_NOT_APPEARING_IN_THIS_PROTOCOL  = 306,
144         SOUP_KNOWN_STATUS_CODE_TEMPORARY_REDIRECT              = 307,
145
146         SOUP_KNOWN_STATUS_CODE_BAD_REQUEST                     = 400,
147         SOUP_KNOWN_STATUS_CODE_UNAUTHORIZED                    = 401,
148         SOUP_KNOWN_STATUS_CODE_PAYMENT_REQUIRED                = 402,
149         SOUP_KNOWN_STATUS_CODE_FORBIDDEN                       = 403,
150         SOUP_KNOWN_STATUS_CODE_NOT_FOUND                       = 404,
151         SOUP_KNOWN_STATUS_CODE_METHOD_NOT_ALLOWED              = 405,
152         SOUP_KNOWN_STATUS_CODE_NOT_ACCEPTABLE                  = 406,
153         SOUP_KNOWN_STATUS_CODE_PROXY_AUTHENTICATION_REQUIRED   = 407,
154         SOUP_KNOWN_STATUS_CODE_PROXY_UNAUTHORIZED              = SOUP_KNOWN_STATUS_CODE_PROXY_AUTHENTICATION_REQUIRED,
155         SOUP_KNOWN_STATUS_CODE_REQUEST_TIMEOUT                 = 408,
156         SOUP_KNOWN_STATUS_CODE_CONFLICT                        = 409,
157         SOUP_KNOWN_STATUS_CODE_GONE                            = 410,
158         SOUP_KNOWN_STATUS_CODE_LENGTH_REQUIRED                 = 411,
159         SOUP_KNOWN_STATUS_CODE_PRECONDITION_FAILED             = 412,
160         SOUP_KNOWN_STATUS_CODE_REQUEST_ENTITY_TOO_LARGE        = 413,
161         SOUP_KNOWN_STATUS_CODE_REQUEST_URI_TOO_LONG            = 414,
162         SOUP_KNOWN_STATUS_CODE_UNSUPPORTED_MEDIA_TYPE          = 415,
163         SOUP_KNOWN_STATUS_CODE_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
164         SOUP_KNOWN_STATUS_CODE_INVALID_RANGE                   = SOUP_KNOWN_STATUS_CODE_REQUESTED_RANGE_NOT_SATISFIABLE,
165         SOUP_KNOWN_STATUS_CODE_EXPECTATION_FAILED              = 417,
166         SOUP_KNOWN_STATUS_CODE_UNPROCESSABLE_ENTITY            = 422,
167         SOUP_KNOWN_STATUS_CODE_LOCKED                          = 423,
168         SOUP_KNOWN_STATUS_CODE_FAILED_DEPENDENCY               = 424,
169
170         SOUP_KNOWN_STATUS_CODE_INTERNAL_SERVER_ERROR           = 500,
171         SOUP_KNOWN_STATUS_CODE_NOT_IMPLEMENTED                 = 501,
172         SOUP_KNOWN_STATUS_CODE_BAD_GATEWAY                     = 502,
173         SOUP_KNOWN_STATUS_CODE_SERVICE_UNAVAILABLE             = 503,
174         SOUP_KNOWN_STATUS_CODE_GATEWAY_TIMEOUT                 = 504,
175         SOUP_KNOWN_STATUS_CODE_HTTP_VERSION_NOT_SUPPORTED      = 505,
176         SOUP_KNOWN_STATUS_CODE_INSUFFICIENT_STORAGE            = 507,
177         SOUP_KNOWN_STATUS_CODE_NOT_EXTENDED                    = 510
178 } SoupKnownStatusCode;
179 #endif
180
181 G_END_DECLS
182
183 #endif /* SOUP_STATUS_H */