feat: implement dict on control messages
This commit is contained in:
parent
c19f0dfdab
commit
545c93cff1
|
@ -7,6 +7,11 @@ class CtrlAccept(PrettyPrint):
|
|||
self.message_name: str = 'accept'
|
||||
self.message_id: int = 3
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
return False
|
||||
|
||||
|
|
|
@ -15,6 +15,13 @@ class CtrlClose(PrettyPrint):
|
|||
|
||||
self.reason: Optional[str] = reason
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'reason', self.reason
|
||||
|
||||
# first byte of data
|
||||
# has to be the first byte of the message payload
|
||||
# NOT the chunk header and NOT the message id
|
||||
|
|
|
@ -19,6 +19,13 @@ class CtrlConnect(PrettyPrint):
|
|||
|
||||
self.response_token: bytes = response_token
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'response_token', self.response_token
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
# anti reflection attack
|
||||
if len(data) < 512:
|
||||
|
|
|
@ -18,6 +18,13 @@ class CtrlConnectAccept(PrettyPrint):
|
|||
|
||||
self.response_token: bytes = response_token
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'response_token', self.response_token
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
self.response_token = data[0:4]
|
||||
return True
|
||||
|
|
|
@ -7,6 +7,11 @@ class CtrlKeepAlive(PrettyPrint):
|
|||
self.message_name: str = 'keep_alive'
|
||||
self.message_id: int = 0
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
return False
|
||||
|
||||
|
|
|
@ -12,6 +12,14 @@ class CtrlToken(PrettyPrint):
|
|||
|
||||
self.response_token: bytes = response_token
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'response_token', self.response_token
|
||||
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
if not we_are_a_client:
|
||||
# anti reflection attack
|
||||
|
|
|
@ -7,6 +7,11 @@ class CtrlAccept(PrettyPrint):
|
|||
self.message_name: str = 'accept'
|
||||
self.message_id: int = 2
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
return False
|
||||
|
||||
|
|
|
@ -15,6 +15,13 @@ class CtrlClose(PrettyPrint):
|
|||
|
||||
self.reason: Optional[str] = reason
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'reason', self.reason
|
||||
|
||||
# first byte of data
|
||||
# has to be the first byte of the message payload
|
||||
# NOT the chunk header and NOT the message id
|
||||
|
|
|
@ -12,6 +12,13 @@ class CtrlConnect(PrettyPrint):
|
|||
|
||||
self.response_token: bytes = response_token
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'response_token', self.response_token
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
# anti reflection attack
|
||||
if len(data) < 512:
|
||||
|
|
|
@ -7,6 +7,11 @@ class CtrlKeepAlive(PrettyPrint):
|
|||
self.message_name: str = 'keep_alive'
|
||||
self.message_id: int = 0
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
return False
|
||||
|
||||
|
|
|
@ -12,6 +12,13 @@ class CtrlToken(PrettyPrint):
|
|||
|
||||
self.response_token: bytes = response_token
|
||||
|
||||
def __iter__(self):
|
||||
yield 'message_type', self.message_type
|
||||
yield 'message_name', self.message_name
|
||||
yield 'message_id', self.message_id
|
||||
|
||||
yield 'response_token', self.response_token
|
||||
|
||||
def unpack(self, data: bytes, we_are_a_client: bool = True) -> bool:
|
||||
if not we_are_a_client:
|
||||
# anti reflection attack
|
||||
|
|
Loading…
Reference in a new issue