diff --git a/usock.c b/usock.c index 04ed4ee..64eab9e 100644 --- a/usock.c +++ b/usock.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "usock.h" @@ -101,6 +102,18 @@ static int usock_inet(int type, const char *host, const char *service, int sockt return sock; } +const char *usock_port(int port) +{ + static char buffer[sizeof("65535\0")]; + + if (port < 0 || port > 65535) + return NULL; + + snprintf(buffer, sizeof(buffer), "%u", port); + + return buffer; +} + int usock(int type, const char *host, const char *service) { int socktype = ((type & 0xff) == USOCK_TCP) ? SOCK_STREAM : SOCK_DGRAM; bool server = !!(type & USOCK_SERVER); diff --git a/usock.h b/usock.h index 5df4362..8345581 100644 --- a/usock.h +++ b/usock.h @@ -30,6 +30,7 @@ #define USOCK_IPV4ONLY 0x4000 #define USOCK_UNIX 0x8000 +const char *usock_port(int port); int usock(int type, const char *host, const char *service); #endif /* USOCK_H_ */