if(c->tcplen) {
if(c->tcplen <= c->buflen) {
if(!c->node) {
- if(proxytype == PROXY_SOCKS4 && c->allow_request == ID) {
+ if(c->outgoing && proxytype == PROXY_SOCKS4 && c->allow_request == ID) {
if(c->buffer[0] == 0 && c->buffer[1] == 0x5a) {
logger(LOG_DEBUG, "Proxy request granted");
} else {
logger(LOG_ERR, "Proxy request rejected");
return false;
}
- } else if(proxytype == PROXY_SOCKS5 && c->allow_request == ID) {
+ } else if(c->outgoing && proxytype == PROXY_SOCKS5 && c->allow_request == ID) {
if(c->buffer[0] != 5) {
logger(LOG_ERR, "Invalid response from proxy server");
return false;
void finish_connecting(connection_t *c) {
ifdebug(CONNECTIONS) logger(LOG_INFO, "Connected to %s (%s)", c->name, c->hostname);
- if(proxytype != PROXY_EXEC)
- configure_tcp(c);
-
c->last_ping_time = now;
send_id(c);
goto begin;
ifdebug(CONNECTIONS) logger(LOG_INFO, "Using proxy at %s port %s", proxyhost, proxyport);
c->socket = socket(proxyai->ai_family, SOCK_STREAM, IPPROTO_TCP);
+ configure_tcp(c);
}
if(c->socket == -1) {
bool receive_request(connection_t *c) {
int request;
- if(proxytype == PROXY_HTTP && c->allow_request == ID) {
+ if(c->outgoing && proxytype == PROXY_HTTP && c->allow_request == ID) {
if(!c->buffer[0] || c->buffer[0] == '\r')
return true;
if(!strncasecmp(c->buffer, "HTTP/1.1 ", 9)) {
}
bool send_id(connection_t *c) {
- if(proxytype)
+ if(proxytype && c->outgoing)
if(!send_proxyrequest(c))
return false;