diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/reqs.c | 39 | 
1 files changed, 21 insertions, 18 deletions
@@ -1,4 +1,4 @@ -/* $Id: reqs.c,v 1.30 2001-10-19 18:03:49 rjkaes Exp $ +/* $Id: reqs.c,v 1.31 2001-10-22 16:08:29 rjkaes Exp $   *   * This is where all the work in tinyproxy is actually done. Incoming   * connections have a new thread created for them. The thread then @@ -111,6 +111,9 @@ struct request_s {  static void free_request_struct(struct request_s *request)  { +	if (!request) +		return; +  	safefree(request->method);  	safefree(request->protocol); @@ -836,33 +839,33 @@ internal_proxy:  	safefree(request_line);  	if (!request) { -		update_stats(STAT_BADCONN); -  		if (!connptr->send_message) { +			update_stats(STAT_BADCONN);  			destroy_conn(connptr);  			return;  		} -	} else { +		goto send_error; +	} +  #ifdef UPSTREAM_SUPPORT -		if (config.upstream_name && config.upstream_port != -1) { -			if (connect_to_upstream(connptr, request) < 0) -				goto send_error; -		} else { +	if (config.upstream_name && config.upstream_port != -1) { +		if (connect_to_upstream(connptr, request) < 0) +			goto send_error; +	} else {  #endif -			connptr->server_fd = opensock(request->host, request->port); -			if (connptr->server_fd < 0) { -				httperr(connptr, 500, HTTP500ERROR); -				goto send_error; -			} +		connptr->server_fd = opensock(request->host, request->port); +		if (connptr->server_fd < 0) { +			httperr(connptr, 500, HTTP500ERROR); +			goto send_error; +		} -			log_message(LOG_CONN, "Established connection to host \"%s\" using file descriptor %d.", request->host, connptr->server_fd); +		log_message(LOG_CONN, "Established connection to host \"%s\" using file descriptor %d.", request->host, connptr->server_fd); -			if (!connptr->ssl) -				establish_http_connection(connptr, request); +		if (!connptr->ssl) +			establish_http_connection(connptr, request);  #ifdef UPSTREAM_SUPPORT -		} -#endif  	} +#endif  send_error:  	free_request_struct(request);  | 
