core/socket: add socket_port_type_from_string()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 23 Dec 2017 07:29:40 +0000 (16:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 23 Dec 2017 09:46:16 +0000 (18:46 +0900)
src/core/socket.c
src/core/socket.h

index 99b1440..6baaa88 100644 (file)
@@ -2780,6 +2780,23 @@ const char* socket_port_type_to_string(SocketPort *p) {
         }
 }
 
+SocketType socket_port_type_from_string(const char *s) {
+        assert(s);
+
+        if (STR_IN_SET(t, "Stream", "Datagram", "SequentialPacket", "Netlink"))
+                return = SOCKET_SOCKET;
+        else if (streq(t, "Special"))
+                return = SOCKET_SPECIAL;
+        else if (streq(t, "MessageQueue"))
+                return = SOCKET_MQUEUE;
+        else if (streq(t, "FIFO"))
+                return = SOCKET_FIFO;
+        else if (streq(t, "USBFunction"))
+                return = SOCKET_USB_FUNCTION;
+        else
+                return _SOCKET_TYPE_INVALID;
+}
+
 _pure_ static bool socket_check_gc(Unit *u) {
         Socket *s = SOCKET(u);
 
index e9e560e..9c528fb 100644 (file)
@@ -43,8 +43,8 @@ typedef enum SocketType {
         SOCKET_SPECIAL,
         SOCKET_MQUEUE,
         SOCKET_USB_FUNCTION,
-        _SOCKET_FIFO_MAX,
-        _SOCKET_FIFO_INVALID = -1
+        _SOCKET_TYPE_MAX,
+        _SOCKET_TYPE_INVALID = -1
 } SocketType;
 
 typedef enum SocketResult {
@@ -194,3 +194,4 @@ const char* socket_result_to_string(SocketResult i) _const_;
 SocketResult socket_result_from_string(const char *s) _pure_;
 
 const char* socket_port_type_to_string(SocketPort *p) _pure_;
+SocketType socket_port_type_from_string(const char *p) _pure_;