typedef enum SocketState {
SOCKET_DEAD,
SOCKET_START_PRE,
+ SOCKET_START_CHOWN,
SOCKET_START_POST,
SOCKET_LISTENING,
SOCKET_RUNNING,
typedef enum SocketExecCommand {
SOCKET_EXEC_START_PRE,
+ SOCKET_EXEC_START_CHOWN,
SOCKET_EXEC_START_POST,
SOCKET_EXEC_STOP_PRE,
SOCKET_EXEC_STOP_POST,
unsigned max_connections;
unsigned backlog;
+ unsigned keep_alive_cnt;
usec_t timeout_usec;
+ usec_t keep_alive_time;
+ usec_t keep_alive_interval;
+ usec_t defer_accept;
ExecCommand* exec_command[_SOCKET_EXEC_COMMAND_MAX];
ExecContext exec_context;
SocketResult result;
+ char **symlinks;
+
bool accept;
+ bool remove_on_stop;
/* Socket options */
bool keep_alive;
+ bool no_delay;
bool free_bind;
bool transparent;
bool broadcast;
char *smack;
char *smack_ip_in;
char *smack_ip_out;
+
+ char *user, *group;
};
/* Called from the service code when collecting fds */
SocketResult socket_result_from_string(const char *s) _pure_;
const char* socket_port_type_to_string(SocketPort *p) _pure_;
+
+int socket_instantiate_service(Socket *s);