summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2025-02-13 11:16:10 +0100
committerGravatar Nikias Bassen2025-02-13 11:16:10 +0100
commit49ddcb58dbac41d7620b851b586808e33ade3cf3 (patch)
tree8c417363f11620d834ddf23663b066a81bc46e18
parent6ddeccc9aedffbd868b31a824064c38f784580e9 (diff)
downloadlibusbmuxd-49ddcb58dbac41d7620b851b586808e33ade3cf3.tar.gz
libusbmuxd-49ddcb58dbac41d7620b851b586808e33ade3cf3.tar.bz2
iproxy: Make sure to print correct socket error messages
Also, make sure to return positive values from main()
-rw-r--r--tools/iproxy.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/tools/iproxy.c b/tools/iproxy.c
index 7427a54..d4c7d06 100644
--- a/tools/iproxy.c
+++ b/tools/iproxy.c
@@ -158,6 +158,9 @@ static void *acceptor_thread(void *arg)
}
fprintf(stdout, "Requesting connection to NETWORK device %s (serial: %s), port %d\n", addrtxt, dev->udid, cdata->device_port);
cdata->sfd = socket_connect_addr(saddr, cdata->device_port);
+ if (cdata->sfd < 0) {
+ cdata->sfd = -errno;
+ }
} else if (dev->conn_type == CONNECTION_TYPE_USB) {
fprintf(stdout, "Requesting connection to USB device handle %d (serial: %s), port %d\n", dev->handle, dev->udid, cdata->device_port);
@@ -165,7 +168,7 @@ static void *acceptor_thread(void *arg)
}
free(dev_list);
if (cdata->sfd < 0) {
- fprintf(stderr, "Error connecting to device: %s\n", strerror(errno));
+ fprintf(stderr, "Error connecting to device: %s\n", strerror(-cdata->sfd));
} else {
fd_set fds;
FD_ZERO(&fds);
@@ -334,7 +337,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Invalid listen port specified in argument '%s'!\n", argv[0]);
free(device_udid);
free(source_addr);
- return -EINVAL;
+ return EINVAL;
}
endp = NULL;
device_port[0] = (uint16_t)strtol(argv[1], &endp, 10);
@@ -342,7 +345,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Invalid device port specified in argument '%s'!\n", argv[1]);
free(device_udid);
free(source_addr);
- return -EINVAL;
+ return EINVAL;
}
num_pairs = 1;
} else {
@@ -354,14 +357,14 @@ int main(int argc, char **argv)
fprintf(stderr, "Invalid listen port specified in argument '%s'!\n", argv[i]);
free(device_udid);
free(source_addr);
- return -EINVAL;
+ return EINVAL;
}
device_port[i] = (uint16_t)strtol(endp+1, &endp, 10);
if (!device_port[i] || (*endp != '\0')) {
fprintf(stderr, "Invalid device port specified in argument '%s'!\n", argv[i+1]);
free(device_udid);
free(source_addr);
- return -EINVAL;
+ return EINVAL;
}
}
num_pairs = argc;
@@ -369,7 +372,7 @@ int main(int argc, char **argv)
if (num_pairs > 16) {
fprintf(stderr, "ERROR: Too many LOCAL:DEVICE port pairs. Maximum is 16.\n");
- return -1;
+ return 1;
}
#ifndef _WIN32
@@ -389,7 +392,7 @@ int main(int argc, char **argv)
for (j = num_listen; j >= 0; j--) {
socket_close(listen_sock[j].fd);
}
- return -errno;
+ return 1;
}
listen_sock[num_listen].index = i;
num_listen++;
@@ -403,7 +406,7 @@ int main(int argc, char **argv)
for (j = num_listen; j >= 0; j--) {
socket_close(listen_sock[j].fd);
}
- return -errno;
+ return 1;
}
listen_sock[num_listen].index = i;
num_listen++;
@@ -448,7 +451,7 @@ int main(int argc, char **argv)
socket_close(c_sock);
fprintf(stderr, "ERROR: Out of memory\n");
free(device_udid);
- return -1;
+ return 1;
}
cdata->fd = c_sock;
cdata->sfd = -1;