From a2c1dabe85f5efdd6e07779b9849c5fa5bafddef Mon Sep 17 00:00:00 2001 From: Ylarod Date: Tue, 18 Mar 2025 15:09:05 +0800 Subject: [PATCH] Better GetUsbmuxdSocket Implementation Enhance GetUsbmuxdSocket to support various socket address formats, fix recognizing "export USBMUXD_SOCKET_ADDRESS=UNIX:///tmp/usbmuxd" as tcp connections. --- ios/usbmuxconnection.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ios/usbmuxconnection.go b/ios/usbmuxconnection.go index f156d0e2..5f41013d 100755 --- a/ios/usbmuxconnection.go +++ b/ios/usbmuxconnection.go @@ -32,11 +32,19 @@ func ToUnixSocketPath(socketAddress string) string { func GetUsbmuxdSocket() string { socket_override := os.Getenv("USBMUXD_SOCKET_ADDRESS") if socket_override != "" { - if strings.Contains(socket_override, ":") { - return "tcp://" + socket_override - } else { + // if it has a scheme, just use it + if strings.Contains(socket_override, "://") { + return socket_override + } + // if it is a file, use it as unix socket + if _, err := os.Stat(socket_override); err == nil { return "unix://" + socket_override } + // if it is a tcp address, use it + if strings.Contains(socket_override, ":") && strings.Contains(socket_override, ".") { + return "tcp://" + socket_override + } + panic("Unknown socket address: " + socket_override) } switch runtime.GOOS { case "windows":