From 5950ea6d4139394c38c7bdc445725d04113c1fee Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Tue, 29 Mar 2022 11:16:29 +0200 Subject: socket: Add socket_get_socket_port function --- src/socket.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/socket.c b/src/socket.c index ad6135f..1029a71 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1233,3 +1233,24 @@ LIBIMOBILEDEVICE_GLUE_API int socket_send(int fd, void *data, size_t length) #endif return send(fd, data, length, flags); } + +LIBIMOBILEDEVICE_GLUE_API int socket_get_socket_port(int fd, uint16_t *port) +{ +#ifdef WIN32 + int addr_len; +#else + socklen_t addr_len; +#endif + struct sockaddr_in addr; + + memset(&addr, 0, sizeof(addr)); + + addr_len = sizeof(addr); + if (0 > getsockname(fd, (struct sockaddr*)&addr, &addr_len)) { + perror("getsockname()"); + return -1; + } + + *port = ntohs(addr.sin_port); + return 0; +} -- cgit v1.1-32-gdbae