X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=gateway.c;h=ac13c232822f61caf898346260ed54916e6ba67b;hp=abc72725a0290a072b6e7cf90e1e7eb07f5eec04;hb=c651e1b8313ce78d42ff1be458bcba5852d6cdcb;hpb=292da21cea2a42b0896d667cff7201ef0ea2894e diff --git a/gateway.c b/gateway.c index abc72725..ac13c232 100644 --- a/gateway.c +++ b/gateway.c @@ -1,4 +1,4 @@ -const char gateway_rcs[] = "$Id: gateway.c,v 1.84 2012/02/29 19:35:11 fabiankeil Exp $"; +const char gateway_rcs[] = "$Id: gateway.c,v 1.88 2012/10/17 18:11:19 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/gateway.c,v $ @@ -220,17 +220,13 @@ void remember_connection(const struct reusable_connection *connection) } assert(NULL != connection->host); - reusable_connection[slot].host = strdup(connection->host); - if (NULL == reusable_connection[slot].host) - { - log_error(LOG_LEVEL_FATAL, "Out of memory saving socket."); - } + reusable_connection[slot].host = strdup_or_die(connection->host); reusable_connection[slot].sfd = connection->sfd; reusable_connection[slot].port = connection->port; reusable_connection[slot].in_use = 0; reusable_connection[slot].timestamp = connection->timestamp; - reusable_connection->request_sent = connection->request_sent; - reusable_connection->response_received = connection->response_received; + reusable_connection[slot].request_sent = connection->request_sent; + reusable_connection[slot].response_received = connection->response_received; reusable_connection[slot].keep_alive_timeout = connection->keep_alive_timeout; assert(reusable_connection[slot].gateway_host == NULL); @@ -242,11 +238,7 @@ void remember_connection(const struct reusable_connection *connection) reusable_connection[slot].forwarder_type = connection->forwarder_type; if (NULL != connection->gateway_host) { - reusable_connection[slot].gateway_host = strdup(connection->gateway_host); - if (NULL == reusable_connection[slot].gateway_host) - { - log_error(LOG_LEVEL_FATAL, "Out of memory saving gateway_host."); - } + reusable_connection[slot].gateway_host = strdup_or_die(connection->gateway_host); } else { @@ -256,11 +248,7 @@ void remember_connection(const struct reusable_connection *connection) if (NULL != connection->forward_host) { - reusable_connection[slot].forward_host = strdup(connection->forward_host); - if (NULL == reusable_connection[slot].forward_host) - { - log_error(LOG_LEVEL_FATAL, "Out of memory saving forward_host."); - } + reusable_connection[slot].forward_host = strdup_or_die(connection->forward_host); } else { @@ -377,7 +365,7 @@ int connection_destination_matches(const struct reusable_connection *connection, return FALSE; } - if (( (NULL != connection->gateway_host) + if (( (NULL != connection->gateway_host) && (NULL != fwd->gateway_host) && strcmpic(connection->gateway_host, fwd->gateway_host)) && (connection->gateway_host != fwd->gateway_host)) @@ -388,7 +376,7 @@ int connection_destination_matches(const struct reusable_connection *connection, return FALSE; } - if (( (NULL != connection->forward_host) + if (( (NULL != connection->forward_host) && (NULL != fwd->forward_host) && strcmpic(connection->forward_host, fwd->forward_host)) && (connection->forward_host != fwd->forward_host)) @@ -1077,7 +1065,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd, strncpy(cbuf + client_pos, target_host, sizeof(cbuf) - client_pos); client_pos += (hostlen & 0xffu); cbuf[client_pos++] = (char)((target_port >> 8) & 0xff); - cbuf[client_pos++] = (char)((target_port ) & 0xff); + cbuf[client_pos++] = (char)((target_port ) & 0xff); if (write_socket(sfd, cbuf, client_pos)) { @@ -1116,16 +1104,7 @@ static jb_socket socks5_connect(const struct forward_spec *fwd, assert(errstr != NULL); csp->error_message = strdup(errstr); - if (server_size == -1) - { - /* - * We didn't read() anything from the server at all. - * Don't try to log a negative number of characters - * which could trigger an assert(). - */ - server_size = 0; - } - log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s: %N", errstr, server_size, sbuf); + log_error(LOG_LEVEL_CONNECT, "socks5_connect: %s", errstr); close_socket(sfd); errno = EINVAL;