From fbb7dcbaa68a828ce6cc869d4e9e65d86e36f462 Mon Sep 17 00:00:00 2001
From: Peter Barker <pbarker@barker.dropbear.id.au>
Date: Tue, 8 Mar 2022 19:31:04 +1100
Subject: [PATCH] mavutil.py: mavtcp: recreate socket object in reconned for
 macosx

Invalid argument gets spewed otherwise

Closes https://github.com/ArduPilot/ardupilot/issues/20251
---
 mavutil.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mavutil.py b/mavutil.py
index 8ecfc1f1..ef8f1002 100644
--- a/mavutil.py
+++ b/mavutil.py
@@ -1211,7 +1211,6 @@ class mavtcp(mavfile):
         mavfile.__init__(self, self.port.fileno(), "tcp:" + device, source_system=source_system, source_component=source_component, use_native=use_native)
 
     def do_connect(self):
-        self.port = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         retries = self.retries
         if retries <= 0:
             # try to connect at least once:
@@ -1219,6 +1218,7 @@ class mavtcp(mavfile):
         while retries >= 0:
             retries -= 1
             try:
+                self.port = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                 self.port.connect(self.destination_addr)
                 break
             except Exception as e:
-- 
GitLab