usock: add usock_port() for convenient use of numeric ports
[project/libubox.git] / usock.c
diff --git a/usock.c b/usock.c
index 04ed4ee..64eab9e 100644 (file)
--- a/usock.c
+++ b/usock.c
@@ -26,6 +26,7 @@
 #include <errno.h>
 #include <string.h>
 #include <stdbool.h>
+#include <stdio.h>
 
 #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);