summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2017-12-23 16:55:36 +0900
committerSven Eden <yamakuzure@gmx.net>2018-05-30 07:49:40 +0200
commite4ab04bb28ca7c2695199355625e4d0c7c4f6394 (patch)
treece3fe37415abda76bc326a8f25828848d762c6a4 /src/basic
parent68293ffdc94782376a3d6420f57dd1926a659c8c (diff)
socket-util: add socket_address_type_{from,to}_string()
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/socket-util.c11
-rw-r--r--src/basic/socket-util.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index 67a4a5cf4..96c390ccc 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -56,6 +56,17 @@
# define IDN_FLAGS 0
#endif
+static const char* const socket_address_type_table[] = {
+ [SOCK_STREAM] = "Stream",
+ [SOCK_DGRAM] = "Datagram",
+ [SOCK_RAW] = "Raw",
+ [SOCK_RDM] = "ReliableDatagram",
+ [SOCK_SEQPACKET] = "SequentialPacket",
+ [SOCK_DCCP] = "DatagramCongestionControl",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(socket_address_type, int);
+
int socket_address_parse(SocketAddress *a, const char *s) {
char *e, *n;
unsigned u;
diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h
index 333b32c48..9c9e2c61c 100644
--- a/src/basic/socket-util.h
+++ b/src/basic/socket-util.h
@@ -75,6 +75,9 @@ typedef enum SocketAddressBindIPv6Only {
#define socket_address_family(a) ((a)->sockaddr.sa.sa_family)
+const char* socket_address_type_to_string(int t) _const_;
+int socket_address_type_from_string(const char *s) _pure_;
+
int socket_address_parse(SocketAddress *a, const char *s);
int socket_address_parse_and_warn(SocketAddress *a, const char *s);
int socket_address_parse_netlink(SocketAddress *a, const char *s);