From 88a46397a8a936f9ad9721daaf82d1b1e35f583a Mon Sep 17 00:00:00 2001 From: doronz Date: Mon, 17 Jul 2023 08:47:26 +0300 Subject: [PATCH] remotexpc: fix message-id tracking --- pymobiledevice3/remote/remotexpc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pymobiledevice3/remote/remotexpc.py b/pymobiledevice3/remote/remotexpc.py index ef4ce657d..d0bde7cac 100644 --- a/pymobiledevice3/remote/remotexpc.py +++ b/pymobiledevice3/remote/remotexpc.py @@ -20,7 +20,7 @@ class RemoteXPCConnection: def __init__(self, address: Tuple[str, int]): self.address = address self.sock: Optional[socket.socket] = None - self.next_message_id = 0 + self.next_message_id: Mapping[int: int] = {1: 0, 3: 0} self.peer_info = None def __enter__(self) -> 'RemoteXPCConnection': @@ -39,7 +39,8 @@ def close(self) -> None: def send_request(self, data: Mapping) -> None: self.sock.sendall( - DataFrame(stream_id=1, data=create_xpc_wrapper(data, message_id=self.next_message_id)).serialize()) + DataFrame(stream_id=1, data=create_xpc_wrapper(data, message_id=self.next_message_id[1], + service_version=self.service_version)).serialize()) def receive_response(self): while True: @@ -54,7 +55,7 @@ def receive_response(self): if xpc_message.payload.obj.data.entries is None: continue - self.next_message_id = xpc_message.message_id + 1 + self.next_message_id[frame.stream_id] = xpc_message.message_id + 1 return get_object_from_xpc_wrapper(frame.data) def send_receive_request(self, data: Mapping):