soup-status.h 8.3 KB

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