Source code for pcapkit.const.http.error_code
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long
"""HTTP/2 Error Code"""
from aenum import IntEnum, extend_enum
__all__ = ['ErrorCode']
[docs]class ErrorCode(IntEnum):
"""[ErrorCode] HTTP/2 Error Code"""
_ignore_ = 'ErrorCode _'
ErrorCode = vars()
#: [:rfc:`7540, Section 7`] Graceful shutdown
ErrorCode['NO_ERROR'] = 0x00000000
#: [:rfc:`7540, Section 7`] Protocol error detected
ErrorCode['PROTOCOL_ERROR'] = 0x00000001
#: [:rfc:`7540, Section 7`] Implementation fault
ErrorCode['INTERNAL_ERROR'] = 0x00000002
#: [:rfc:`7540, Section 7`] Flow-control limits exceeded
ErrorCode['FLOW_CONTROL_ERROR'] = 0x00000003
#: [:rfc:`7540, Section 7`] Settings not acknowledged
ErrorCode['SETTINGS_TIMEOUT'] = 0x00000004
#: [:rfc:`7540, Section 7`] Frame received for closed stream
ErrorCode['STREAM_CLOSED'] = 0x00000005
#: [:rfc:`7540, Section 7`] Frame size incorrect
ErrorCode['FRAME_SIZE_ERROR'] = 0x00000006
#: [:rfc:`7540, Section 7`] Stream not processed
ErrorCode['REFUSED_STREAM'] = 0x00000007
#: [:rfc:`7540, Section 7`] Stream cancelled
ErrorCode['CANCEL'] = 0x00000008
#: [:rfc:`7540, Section 7`] Compression state not updated
ErrorCode['COMPRESSION_ERROR'] = 0x00000009
#: [:rfc:`7540, Section 7`] TCP connection error for CONNECT method
ErrorCode['CONNECT_ERROR'] = 0x0000000A
#: [:rfc:`7540, Section 7`] Processing capacity exceeded
ErrorCode['ENHANCE_YOUR_CALM'] = 0x0000000B
#: [:rfc:`7540, Section 7`] Negotiated TLS parameters not acceptable
ErrorCode['INADEQUATE_SECURITY'] = 0x0000000C
#: [:rfc:`7540, Section 7`] Use HTTP/1.1 for the request
ErrorCode['HTTP_1_1_REQUIRED'] = 0x0000000D
[docs] @staticmethod
def get(key, default=-1):
"""Backport support for original codes."""
if isinstance(key, int):
return ErrorCode(key)
if key not in ErrorCode._member_map_: # pylint: disable=no-member
extend_enum(ErrorCode, key, default)
return ErrorCode[key]
[docs] @classmethod
def _missing_(cls, value):
"""Lookup function used when value is not found."""
if not (isinstance(value, int) and 0x00000000 <= value <= 0xFFFFFFFF):
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
if 0x0000000E <= value <= 0xFFFFFFFF:
temp = hex(value)[2:].upper().zfill(8)
extend_enum(cls, 'Unassigned [0x%s]' % (temp[:4]+'_'+temp[4:]), value)
return cls(value)
return super()._missing_(value)