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); }
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; }