Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
int tcp_listener_init() {
	if(!is_master()) // we only start it in the master
		return 0;
	memset(tcp_ports, 0, sizeof(tcp_ports));
	protostack_get_ports_internal(tcp_ports);
	tcp_listener_start();
	aroop_txt_t plugin_space = {};
	aroop_txt_embeded_set_static_string(&plugin_space, "fork/child/after");
	pm_plug_callback(&plugin_space, tcp_listener_stop, tcp_listener_stop_desc);
	aroop_txt_embeded_set_static_string(&plugin_space, "shake/softquitall");
	pm_plug_callback(&plugin_space, tcp_listener_stop, tcp_listener_stop_desc);
	return 0;
}
Ejemplo n.º 3
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;
}