2G ems initial

This commit is contained in:
2024-03-13 09:30:40 +08:00
commit eed6460ad2
1234 changed files with 419571 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
#include "./include/iptrans.h"
extern void iptrans_timer();
/*@ignore@*/
void init_timer_interrupt(void)
{
struct sigaction newact;
newact.sa_handler =iptrans_timer;
newact.sa_flags =0;
sigemptyset(&newact.sa_mask);
sigaction(SIGALRM,&newact,NULL);
}
void setup_interval_timer(void)
{
struct itimerval value;
value.it_interval.tv_sec =0;
value.it_interval.tv_usec =10*1000;
value.it_value.tv_sec = 0;
value.it_value.tv_usec = 10*1000;
setitimer(ITIMER_REAL,&value,NULL);
}
void init_timer()
{
init_timer_interrupt();
setup_interval_timer();
}
void interrupt_handler(int signo)
{
CloseTcpConn();
}
int initSystem()
{
struct sigaction act;
//close(0);
//close(1);
//close(2);
act.sa_handler = interrupt_handler;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
if(sigaction(SIGPIPE,&act,NULL)<0)
fprintf(stderr,"set signal failed\n");
system("sysctl -w net.ipv4.tcp_keepalive_time=20");
system("sysctl -w net.ipv4.tcp_keepalive_probes=2");
return 1;
}
int
main(int argc, char *argv[])
{
int err_flag = FALSE;
int test_mode = FALSE;
int ret;
SetDebugFlag();
/*
** Get option from command line.
** option 'd' is enable to run program with daemon mode.
*/
while ((ret = getopt(argc, argv, "dt")) != -1)
switch (ret)
{
case 'd':
/* Set daemon mode and open a syslog */
DaemonInit("IPTRANS", LOG_USER);
break;
case 't':
test_mode = TRUE; /* test mode: bind port 4950 to recvfrom */
break;
case '?':
err_flag = TRUE;
}
if (err_flag) {
log_msg("Usage: %s -d -t \n", argv[0]);
log_msg(" -d with daemon mode");
log_msg(" -t with test mode");
exit(1);
}
debug_init();
initSystem();
iptrMainInit();
init_timer();
while(1){
usleep(1);
}
exit(0);
}
/*@end@*/