chiark / gitweb /
socket: replace failure boolean by enum
[elogind.git] / src / socket.h
index 4fc2cbe690da265498e8ad6fa79f54af75125b2c..d242796a31f1beb39f0a469c10b1b5a6fc2db7d0 100644 (file)
@@ -65,6 +65,17 @@ typedef enum SocketType {
         _SOCKET_FIFO_INVALID = -1
 } SocketType;
 
+typedef enum SocketResult {
+        SOCKET_SUCCESS,
+        SOCKET_FAILURE_RESOURCES,
+        SOCKET_FAILURE_TIMEOUT,
+        SOCKET_FAILURE_EXIT_CODE,
+        SOCKET_FAILURE_SIGNAL,
+        SOCKET_FAILURE_CORE_DUMP,
+        _SOCKET_RESULT_MAX,
+        _SOCKET_RESULT_INVALID = -1
+} SocketResult;
+
 typedef struct SocketPort {
         SocketType type;
         int fd;
@@ -77,7 +88,7 @@ typedef struct SocketPort {
 } SocketPort;
 
 struct Socket {
-        Meta meta;
+        Unit meta;
 
         LIST_HEAD(SocketPort, ports);
 
@@ -107,7 +118,7 @@ struct Socket {
         mode_t directory_mode;
         mode_t socket_mode;
 
-        bool failure;
+        SocketResult result;
 
         bool accept;
 
@@ -154,4 +165,7 @@ SocketState socket_state_from_string(const char *s);
 const char* socket_exec_command_to_string(SocketExecCommand i);
 SocketExecCommand socket_exec_command_from_string(const char *s);
 
+const char* socket_result_to_string(SocketResult i);
+SocketResult socket_result_from_string(const char *s);
+
 #endif