diff options
Diffstat (limited to 'src/reqs.c')
| -rw-r--r-- | src/reqs.c | 18 | 
1 files changed, 11 insertions, 7 deletions
| @@ -1,4 +1,4 @@ -/* $Id: reqs.c,v 1.62 2002-04-18 17:58:52 rjkaes Exp $ +/* $Id: reqs.c,v 1.63 2002-04-18 21:43:53 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 @@ -430,10 +430,9 @@ process_request(struct conn_s *connptr)  	 */  	if (config.stathost && strcmp(config.stathost, request->host) == 0) {  		log_message(LOG_NOTICE, "Request for the stathost."); +		connptr->show_stats = TRUE;  		free_request_struct(request); - -		showstats(connptr);  		return NULL;  	} @@ -716,10 +715,11 @@ process_client_headers(struct conn_s *connptr)  	}  	/* -	 * Don't send headers if there's already an error, or if this was -	 * a CONNECT method (unless upstream proxy is in use.) +	 * Don't send headers if there's already an error, if the request was +	 * a stats request, or if this was a CONNECT method (unless upstream +	 * proxy is in use.)  	 */ -	if (connptr->server_fd == -1 +	if (connptr->server_fd == -1 || connptr->show_stats  	    || (connptr->connect_method && !UPSTREAM_CONFIGURED())) {  		log_message(LOG_INFO, "Not sending client headers to remote machine");  		hashmap_delete(hashofheaders); @@ -1143,7 +1143,7 @@ handle_connection(int fd)  	request = process_request(connptr);  	if (!request) { -		if (!connptr->error_string) { +		if (!connptr->error_string && !connptr->show_stats) {  			update_stats(STAT_BADCONN);  			destroy_conn(connptr);  			return; @@ -1184,6 +1184,10 @@ handle_connection(int fd)  		send_http_error_message(connptr);  		destroy_conn(connptr);  		return; +	} else if (connptr->show_stats) { +		showstats(connptr); +		destroy_conn(connptr); +		return;  	}  	if (!connptr->connect_method || UPSTREAM_CONFIGURED()) { | 
