Common.d 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. module http.Common;
  2. public enum HttpParserType : uint {
  3. request = 0,
  4. response = 1,
  5. both = 2
  6. }
  7. struct HttpHeader {
  8. string name, value;
  9. }
  10. public enum HttpMethod : uint {
  11. DELETE = 0,
  12. GET = 1,
  13. HEAD = 2,
  14. POST = 3,
  15. PUT = 4,
  16. /* pathological */
  17. CONNECT = 5,
  18. OPTIONS = 6,
  19. TRACE = 7,
  20. /* WebDAV */
  21. COPY = 8,
  22. LOCK = 9,
  23. MKCOL = 10,
  24. MOVE = 11,
  25. PROPFIND = 12,
  26. PROPPATCH = 13,
  27. SEARCH = 14,
  28. UNLOCK = 15,
  29. BIND = 16,
  30. REBIND = 17,
  31. UNBIND = 18,
  32. ACL = 19,
  33. /* subversion */
  34. REPORT = 20,
  35. MKACTIVITY = 21,
  36. CHECKOUT = 22,
  37. MERGE = 23,
  38. /* upnp */
  39. MSEARCH = 24,
  40. NOTIFY = 25,
  41. SUBSCRIBE = 26,
  42. UNSUBSCRIBE = 27,
  43. /* RFC-5789 */
  44. PATCH = 28,
  45. PURGE = 29,
  46. /* CalDAV */
  47. MKCALENDAR = 30,
  48. /* RFC-2068, section 19.6.1.2 */
  49. LINK = 31,
  50. UNLINK = 32,
  51. /* icecast */
  52. SOURCE = 33,
  53. }
  54. enum HttpError : uint {
  55. OK,
  56. /* Parsing-related errors */
  57. INVALID_EOF_STATE,
  58. HEADER_OVERFLOW,
  59. CLOSED_CONNECTION,
  60. INVALID_VERSION,
  61. INVALID_STATUS,
  62. INVALID_METHOD,
  63. INVALID_URL,
  64. INVALID_HOST,
  65. INVALID_PORT,
  66. INVALID_PATH,
  67. INVALID_QUERY_STRING,
  68. INVALID_FRAGMENT,
  69. LF_EXPECTED,
  70. INVALID_HEADER_TOKEN,
  71. INVALID_CONTENT_LENGTH,
  72. UNEXPECTED_CONTENT_LENGTH,
  73. INVALID_CHUNK_SIZE,
  74. INVALID_CONSTANT,
  75. INVALID_INTERNAL_STATE,
  76. STRICT,
  77. PAUSED,
  78. UNKNOWN
  79. }