/* ipc.h - UNIX domain socket IPC listener and command processor */ #ifndef __IPC_H__ #define __IPC_H__ #include #include #include typedef struct ipc_server { int server_fd; char *socket_path; subrelay_config_t *cfg; subscriber_pool_t *subscribers; pending_pool_t *pending; } ipc_server_t; /* Initialize non-blocking UNIX domain socket server */ int ipc_server_init(ipc_server_t *server, subrelay_config_t *cfg, subscriber_pool_t *subscribers, pending_pool_t *pending); /* Non-blocking check for incoming client commands from subrelay-shell */ int ipc_server_poll(ipc_server_t *server); /* Cleanup socket file and close descriptors */ void ipc_server_destroy(ipc_server_t *server); #endif /* __IPC_H__ */