Files
BPI-CM9-Linux/aml-comp/vendor/amlogic/ccdatabase/server/main.c
T
2026-08-24 10:03:24 +08:00

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;
}