#include #include #include #include #include "dataserver_socketserver.h" #define ds_inf(_fmt_,...) printf("I %s:%d "_fmt_"\n", __func__, __LINE__, ##__VA_ARGS__) #define ds_err(_fmt_,...) printf("E %s:%d "_fmt_"\n", __func__, __LINE__, ##__VA_ARGS__) static char *ds_server_path_default = "/run/ccdataserver.sock"; static int ipserver_started; static void sig_handler(int signo) { int ret = socket_server_stop_unix(); ds_inf("ipc server stopped (ret:%d)", ret); #ifdef DS_SUPPORT_IP if (ipserver_started) { ret = socket_server_stop_ip(); ds_inf("ip server stopped (ret:%d)", ret); } #endif exit(0); } int main(int argc, char *argv[]) { signal(SIGINT, sig_handler); signal(SIGTERM, sig_handler); { char *socket_path = getenv("CCDATASERVER_SOCKET"); if (!socket_path) { socket_path = ds_server_path_default; ds_inf("env CCDATASERVER_SOCKET not found, use default:\"%s\"", ds_server_path_default); } int ret = socket_server_start_unix(socket_path); ds_inf("ipc server started (ret:%d)", ret); } #ifdef DS_SUPPORT_IP { int socket_port = 0; char *s_socket_port = getenv("CCDATASERVER_PORT"); if (s_socket_port && sscanf(s_socket_port, "%i", &socket_port) == 1) { ds_inf("env CCDATASERVER_PORT found, start ip server on port:\"%d\"", socket_port); int ret = socket_server_start_ip(socket_port); ds_inf("ip server started (ret:%d)", ret); ipserver_started = (ret == 0); } } #endif for (;;) sleep(1); return 0; }