int switch_init(struct switch_cfg *cfg) { switch_cfg = cfg; switch_cfg->switch_running = 1; switch_netc = net_server(switch_cfg->listen_ip, switch_cfg->listen_port, NET_PROTO_UDT, NET_SECURE_ADH, NULL, on_connect, on_disconnect, on_input, on_secure); if (switch_netc == NULL) { jlog(L_ERROR, "net_server failed"); return -1; } context_init(); pthread_t thread_loop; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_create(&thread_loop, &attr, switch_loop, NULL); return 0; }
int dsd_init(struct dsd_cfg *cfg) { dsd_cfg = cfg; dsd_cfg->dsd_running = 1; dsd_passport = pki_passport_load_from_file(dsd_cfg->certificate, dsd_cfg->privatekey, dsd_cfg->trusted_cert); dsd_netc = net_server(dsd_cfg->ipaddr, dsd_cfg->port, NET_PROTO_TCP, NET_SECURE_RSA, dsd_passport, on_connect, on_disconnect, on_input, on_secure); if (dsd_netc == NULL) { jlog(L_NOTICE, "net_server failed"); return -1; } pthread_t thread_loop; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_create(&thread_loop, &attr, dsd_loop, NULL); return 0; }