From c069825410ac437ba02f12e753ef8756d3fdb32d Mon Sep 17 00:00:00 2001 From: StephenGemin Date: Fri, 3 May 2024 22:35:27 -0400 Subject: [PATCH] lockdown: fix reconnection on remote close for windows --- pymobiledevice3/lockdown.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pymobiledevice3/lockdown.py b/pymobiledevice3/lockdown.py index 52897fecb..1761fe54d 100755 --- a/pymobiledevice3/lockdown.py +++ b/pymobiledevice3/lockdown.py @@ -3,6 +3,7 @@ import logging import os import plistlib +import sys import tempfile import time from abc import ABC, abstractmethod @@ -56,15 +57,21 @@ def _reconnect_on_remote_close(f): transmitted). When this happens, we'll attempt to reconnect. """ + def _reconnect(self: 'LockdownClient'): + self._reestablish_connection() + self.validate_pairing() + @wraps(f) def _inner_reconnect_on_remote_close(*args, **kwargs): try: return f(*args, **kwargs) except (BrokenPipeError, ConnectionTerminatedError): - self: LockdownClient = args[0] - - self._reestablish_connection() - self.validate_pairing() + _reconnect(args[0]) + return f(*args, **kwargs) + except ConnectionAbortedError: + if sys.platform != 'win32': + raise + _reconnect(args[0]) return f(*args, **kwargs) return _inner_reconnect_on_remote_close