71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
|
|
#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;
|
|
}
|