示例#1
0
文件: utils.c 项目: BEA3CCCE/redsocks
struct bufferevent* red_connect_relay(struct sockaddr_in *addr,
                                    evbuffercb readcb,
                                    evbuffercb writecb,
                                    everrorcb errorcb,
                                    void *cbarg)
{
    return red_connect_relay_if(NULL, addr, readcb, writecb, errorcb, cbarg);
}
示例#2
0
static int direct_connect_relay(redsocks_client *client)
{
    char * interface = client->instance->config.interface;
    // Allowing binding relay socket to specified IP for outgoing connections
    if (interface && strlen(interface))
    {
        client->relay = red_connect_relay_if(interface, 
                            &client->destaddr, NULL,
                            redsocks_relay_connected, redsocks_event_error, client);
    }
    else
        client->relay = red_connect_relay(&client->destaddr, NULL,
                            redsocks_relay_connected, redsocks_event_error, client);
    if (!client->relay)
    {
        redsocks_log_errno(client, LOG_ERR, "red_connect_relay");
        redsocks_drop_client(client);
        return -1;
    }
    return 0;
}