diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2014-09-22 20:15:58 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-09-23 14:01:00 +0400 |
commit | fa73496098893e90330040b8f43f2773b42eed12 (patch) | |
tree | 09f590ace45e78dd8ff5b2b6dfe74fdc34ad3bde /usock.c | |
parent | dffbc09baf71b294185a36048166d00066d433b5 (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.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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); |