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>
#include <errno.h>
#include <string.h>
#include <stdbool.h>
+#include <stdio.h>
#include "usock.h"
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);
#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_ */