MTU size check added

This commit is contained in:
dhavan
2023-11-23 05:02:16 +00:00
parent 488bcfe9c6
commit dc18595c8a

View File

@@ -224,7 +224,7 @@ class HID(EventEmitter):
device.register_l2cap_server(HID_INTERRUPT_PSM, self.on_connection) device.register_l2cap_server(HID_INTERRUPT_PSM, self.on_connection)
device.on('connection', self.on_device_connection) device.on('connection', self.on_device_connection)
async def connect_control_channel(self) -> None: async def connect_control_channel(self) -> None:
# Create a new L2CAP connection - control channel # Create a new L2CAP connection - control channel
try: try:
@@ -383,6 +383,10 @@ class Device(HID):
def __init__(self, device: Device) -> None: def __init__(self, device: Device) -> None:
super().__init__(device, HID.Role.DEVICE) super().__init__(device, HID.Role.DEVICE)
self.get_report_cb = None
self.set_report_cb = None
self.get_protocol_cb = None
self.set_protocol_cb = None
def send_handshake_message(self, result_code: int) -> None: def send_handshake_message(self, result_code: int) -> None:
msg = SendHandshakeMessage(result_code) msg = SendHandshakeMessage(result_code)
@@ -416,9 +420,11 @@ class Device(HID):
data = bytearray() data = bytearray()
data.append(report_id) data.append(report_id)
data.extend(ret.data) data.extend(ret.data)
#TODO Check the data size and MTU size here and only then send out if(len(data)<self.l2cap_ctrl_channel.mtu):
#the message self.send_control_data(report_type=report_type, data = data)
self.send_control_data(report_type=report_type, data = data) else:
self.send_handshake_message(Message.Handshake.ERR_INVALID_PARAMETER)
elif(ret.status == self.GetSetReturn.REPORT_ID_NOT_FOUND): elif(ret.status == self.GetSetReturn.REPORT_ID_NOT_FOUND):
self.send_handshake_message(Message.Handshake.ERR_INVALID_REPORT_ID) self.send_handshake_message(Message.Handshake.ERR_INVALID_REPORT_ID)
elif(ret.status == self.GetSetReturn.ERR_UNSUPPORTED_REQUEST): elif(ret.status == self.GetSetReturn.ERR_UNSUPPORTED_REQUEST):