X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet_setup.c;h=73d4f7752d982daacd438150a8261fff910a0e64;hb=f4851be7f5dade24a5f43d366188c033c0f8b426;hp=dc1d665d2c0dba1f3627d561512094d79ba6d7bd;hpb=b107b10c4ef70bdf74d6d6ac57ff5ab2698b9cb2;p=tinc diff --git a/src/net_setup.c b/src/net_setup.c index dc1d665d..73d4f775 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -520,12 +520,10 @@ bool setup_myself(void) { continue; } - event_set(&listen_socket[listen_sockets].ev_tcp, - listen_socket[listen_sockets].tcp, - EV_READ|EV_PERSIST, - handle_new_meta_connection, NULL); - if(event_add(&listen_socket[listen_sockets].ev_tcp, NULL) < 0) { - logger(LOG_ERR, "event_add failed: %s", strerror(errno)); + memcpy(&listen_socket[listen_sockets].sa, aip->ai_addr, aip->ai_addrlen); + + if(!thread_create(&listen_socket[listen_sockets].tcp_thread, handle_new_meta_connection, &listen_socket[listen_sockets])) { + logger(LOG_ERR, "thread_create failed: %s", strerror(errno)); abort(); } @@ -540,7 +538,6 @@ bool setup_myself(void) { free(hostname); } - memcpy(&listen_socket[listen_sockets].sa, aip->ai_addr, aip->ai_addrlen); listen_sockets++; if(listen_sockets >= MAXSOCKETS) { @@ -617,10 +614,9 @@ void close_network_connections(void) { } for(i = 0; i < listen_sockets; i++) { - event_del(&listen_socket[i].ev_tcp); - event_del(&listen_socket[i].ev_udp); close(listen_socket[i].tcp); close(listen_socket[i].udp); + thread_destroy(&listen_socket[i].tcp_thread); thread_destroy(&listen_socket[i].udp_thread); }