Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

errors.py 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # -*- coding: utf-8 -
  2. #
  3. # This file is part of gunicorn released under the MIT license.
  4. # See the NOTICE for more information.
  5. class ParseException(Exception):
  6. pass
  7. class NoMoreData(IOError):
  8. def __init__(self, buf=None):
  9. self.buf = buf
  10. def __str__(self):
  11. return "No more data after: %r" % self.buf
  12. class InvalidRequestLine(ParseException):
  13. def __init__(self, req):
  14. self.req = req
  15. self.code = 400
  16. def __str__(self):
  17. return "Invalid HTTP request line: %r" % self.req
  18. class InvalidRequestMethod(ParseException):
  19. def __init__(self, method):
  20. self.method = method
  21. def __str__(self):
  22. return "Invalid HTTP method: %r" % self.method
  23. class InvalidHTTPVersion(ParseException):
  24. def __init__(self, version):
  25. self.version = version
  26. def __str__(self):
  27. return "Invalid HTTP Version: %r" % self.version
  28. class InvalidHeader(ParseException):
  29. def __init__(self, hdr, req=None):
  30. self.hdr = hdr
  31. self.req = req
  32. def __str__(self):
  33. return "Invalid HTTP Header: %r" % self.hdr
  34. class InvalidHeaderName(ParseException):
  35. def __init__(self, hdr):
  36. self.hdr = hdr
  37. def __str__(self):
  38. return "Invalid HTTP header name: %r" % self.hdr
  39. class InvalidChunkSize(IOError):
  40. def __init__(self, data):
  41. self.data = data
  42. def __str__(self):
  43. return "Invalid chunk size: %r" % self.data
  44. class ChunkMissingTerminator(IOError):
  45. def __init__(self, term):
  46. self.term = term
  47. def __str__(self):
  48. return "Invalid chunk terminator is not '\\r\\n': %r" % self.term
  49. class LimitRequestLine(ParseException):
  50. def __init__(self, size, max_size):
  51. self.size = size
  52. self.max_size = max_size
  53. def __str__(self):
  54. return "Request Line is too large (%s > %s)" % (self.size, self.max_size)
  55. class LimitRequestHeaders(ParseException):
  56. def __init__(self, msg):
  57. self.msg = msg
  58. def __str__(self):
  59. return self.msg
  60. class InvalidProxyLine(ParseException):
  61. def __init__(self, line):
  62. self.line = line
  63. self.code = 400
  64. def __str__(self):
  65. return "Invalid PROXY line: %r" % self.line
  66. class ForbiddenProxyRequest(ParseException):
  67. def __init__(self, host):
  68. self.host = host
  69. self.code = 403
  70. def __str__(self):
  71. return "Proxy request from %r not allowed" % self.host