Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2014-09-22 20:15:58 +0400
committerFelix Fietkau <nbd@openwrt.org>2014-09-23 14:01:00 +0400
commitfa73496098893e90330040b8f43f2773b42eed12 (patch)
tree09f590ace45e78dd8ff5b2b6dfe74fdc34ad3bde /usock.c
parentdffbc09baf71b294185a36048166d00066d433b5 (diff)
usock: add usock_port() for convenient use of numeric ports
Add a new helper function usock_port() which converts the given numeric port number into a string using a private static buffer. This way a calling application can conveniently use numeric port arguments without having to convert them before: int fd = usock(USOCK_UDP, "example.org", usock_port(80)); Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Diffstat (limited to 'usock.c')
-rw-r--r--usock.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/usock.c b/usock.c
index 04ed4ee..64eab9e 100644
--- 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);