예제 #1
0
파일: main.c 프로젝트: yindashan/sipvpn
int main(int argc, char **argv)
{
    conf_t conf;

    if (parse_args(argc, argv, &conf) != 0)
    {
        return EXIT_FAILURE;
    }

    // Daemonize
    if (conf.daemon)
    {
        if (daemonize(conf.pidfile, conf.logfile) != 0)
        {
            return EXIT_FAILURE;
        }
    }

    // 注册 signal handle
#ifdef HAVE_SIGACTION
    struct sigaction sa;
    sa.sa_handler = signal_cb;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART;
    sigaction(SIGINT, &sa, NULL);
    sigaction(SIGTERM, &sa, NULL);
    sigaction(SIGHUP, &sa, NULL);
#else
    signal(SIGINT, signal_cb);
    signal(SIGTERM, signal_cb);
    signal(SIGHUP, signal_cb);
#endif

    if (vpn_init(&conf) != 0)
    {
        return EXIT_FAILURE;
    }

    return vpn_run();
}
예제 #2
0
jint Java_com_github_xueqingxiao_shadowvpn_ShadowVPN_nativeRunVPN(JNIEnv *env, jobject thiz) {
    return vpn_run(&vpn_ctx);
}
예제 #3
0
jint Java_org_shadowvpn_shadowvpn_ShadowVPN_nativeRunVPN(JNIEnv* env, jobject thiz) {
  return vpn_run(&vpn_ctx);
}
예제 #4
0
jint Java_clowwindy_shadowvpn_VPN_nativeRunVPN(JNIEnv* env, jobject thiz) {
  return vpn_run(&vpn_ctx);
}