summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2021-07-15 17:35:15 +0200
committerGravatar Nikias Bassen2021-07-15 17:37:00 +0200
commit47e2f5a3a07805a77e0cdf763fa0204136a93aa8 (patch)
tree5e84d2a580a0475f0577c361d476f2400c220772
parente32bf7612912348d7af81afe1e8be2ecc93a93ca (diff)
downloadlibusbmuxd-47e2f5a3a07805a77e0cdf763fa0204136a93aa8.tar.gz
libusbmuxd-47e2f5a3a07805a77e0cdf763fa0204136a93aa8.tar.bz2
Forward usbmuxd connect error codes instead of using -1 everywhere
-rw-r--r--src/libusbmuxd.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c
index 93493a9..0c94cde 100644
--- a/src/libusbmuxd.c
+++ b/src/libusbmuxd.c
@@ -158,6 +158,7 @@ static usbmuxd_device_info_t *devices_find(uint32_t handle)
*/
static int connect_usbmuxd_socket()
{
+ int res = -1;
char *usbmuxd_socket_addr = getenv("USBMUXD_SOCKET_ADDRESS");
if (usbmuxd_socket_addr) {
if (strncmp(usbmuxd_socket_addr, "UNIX:", 5) == 0) {
@@ -165,7 +166,11 @@ static int connect_usbmuxd_socket()
/* not supported, ignore */
#else
if (usbmuxd_socket_addr[5] != '\0') {
- return socket_connect_unix(usbmuxd_socket_addr+5);
+ res = socket_connect_unix(usbmuxd_socket_addr+5);
+ if (res < 0) {
+ res = -errno;
+ }
+ return res;
}
#endif
} else {
@@ -194,11 +199,14 @@ static int connect_usbmuxd_socket()
connect_addr[p - usbmuxd_socket_addr] = '\0';
}
if (connect_addr && *connect_addr != '\0') {
- int res = socket_connect(connect_addr, port);
+ res = socket_connect(connect_addr, port);
#ifdef HAVE_INOTIFY
use_inotify = 0;
#endif
free(connect_addr);
+ if (res < 0) {
+ res = -errno;
+ }
return res;
}
free(connect_addr);
@@ -206,10 +214,14 @@ static int connect_usbmuxd_socket()
}
}
#if defined(WIN32) || defined(__CYGWIN__)
- return socket_connect("127.0.0.1", USBMUXD_SOCKET_PORT);
+ res = socket_connect("127.0.0.1", USBMUXD_SOCKET_PORT);
#else
- return socket_connect_unix(USBMUXD_SOCKET_FILE);
+ res = socket_connect_unix(USBMUXD_SOCKET_FILE);
#endif
+ if (res < 0) {
+ res = -errno;
+ }
+ return res;
}
static void sanitize_udid(usbmuxd_device_info_t *devinfo)
@@ -1522,9 +1534,8 @@ USBMUXD_API int usbmuxd_connect(const uint32_t handle, const unsigned short port
retry:
sfd = connect_usbmuxd_socket();
if (sfd < 0) {
- result = errno;
- LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(result));
- return -result;
+ LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(-sfd));
+ return sfd;
}
tag = ++use_tag;
@@ -1626,7 +1637,7 @@ USBMUXD_API int usbmuxd_read_buid(char **buid)
sfd = connect_usbmuxd_socket();
if (sfd < 0) {
- LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(errno));
+ LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(-sfd));
return sfd;
}
@@ -1668,8 +1679,7 @@ USBMUXD_API int usbmuxd_read_pair_record(const char* record_id, char **record_da
sfd = connect_usbmuxd_socket();
if (sfd < 0) {
- LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n",
- __func__, strerror(errno));
+ LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(-sfd));
return sfd;
}
@@ -1714,8 +1724,7 @@ USBMUXD_API int usbmuxd_save_pair_record_with_device_id(const char* record_id, u
sfd = connect_usbmuxd_socket();
if (sfd < 0) {
- LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n",
- __func__, strerror(errno));
+ LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(-sfd));
return sfd;
}
@@ -1758,8 +1767,7 @@ USBMUXD_API int usbmuxd_delete_pair_record(const char* record_id)
sfd = connect_usbmuxd_socket();
if (sfd < 0) {
- LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n",
- __func__, strerror(errno));
+ LIBUSBMUXD_DEBUG(1, "%s: Error: Connection to usbmuxd failed: %s\n", __func__, strerror(-sfd));
return sfd;
}