In 2990cc14b8 I introduced a regression,
which affects the 'establish' command: if no data is received from a
Data Provider during 500 ms, the application crashes:
File "sedbgmux.py", line 151, in do_establish
if f['MsgType'] != DbgMuxFrame.MsgType.ConnData:
TypeError: 'NoneType' object is not subscriptable
This is happening because peer.recv() is returning None.
This is required for a follow-up change moving DebugMux I/O handling
into separate threads. We need to be able to stop a thread, which
is executing blocking self.io.read() call.
This format string found in firmware image of a modem:
DebugMux[DL,HandleConnectReq] Could not find DPRef 0x%04X;
sending Connect Response with ConnRef=0xFFFF
gives us a hint on what happens when ConnEstablish message contains
an unknown DPRef that was not announced or has became inactive.