2G ems initial
This commit is contained in:
100
omc/plat/iptrans/src/iptrmain.c
Normal file
100
omc/plat/iptrans/src/iptrmain.c
Normal 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@*/
|
||||
Reference in New Issue
Block a user