int dnscrypt_proxy_start_listeners(ProxyContext * const proxy_context) { char local_addr_s[INET6_ADDRSTRLEN + sizeof "[]:65535"]; char resolver_addr_s[INET6_ADDRSTRLEN + sizeof "[]:65535"]; if (proxy_context->listeners_started != 0) { return 0; } if (udp_listener_start(proxy_context) != 0 || tcp_listener_start(proxy_context) != 0) { exit(1); } evutil_format_sockaddr_port((const struct sockaddr *) &proxy_context->local_sockaddr, local_addr_s, sizeof local_addr_s); evutil_format_sockaddr_port((const struct sockaddr *) &proxy_context->resolver_sockaddr, resolver_addr_s, sizeof resolver_addr_s); logger(proxy_context, LOG_INFO, "Proxying from %s to %s", local_addr_s, resolver_addr_s); proxy_context->listeners_started = 1; return 0; }
int dnscrypt_proxy_start_listeners(ProxyContext * const proxy_context) { if (proxy_context->listeners_started != 0) { return 0; } if (tcp_listener_start(proxy_context) != 0 || udp_listener_start(proxy_context) != 0) { exit(1); } logger(proxy_context, LOG_INFO, PACKAGE " is ready: proxying from [%s] to [%s]", proxy_context->listen_ip, proxy_context->resolver_ip); proxy_context->listeners_started = 1; return 0; }
int main() { udp_listener_start(); audio_process_start(); struct timespec time_sleep; time_sleep.tv_sec = 0; time_sleep.tv_nsec = 5 * 10 * 1000 * 1000; while (1) { sink_manager_print_sinks(); sink_manager_list_t *list = sink_manager_get_list(); for (int i = 0; i < list->nbr_sinks; i++) { unsigned char txt[] = "0A0A0A0A0A0A0A0A0A"; udp_sender_send(list->sinks[i], (uint8_t *) txt); } nanosleep(&time_sleep, NULL); sink_manager_free_list(list); } debug(); }