(process_request): Changed the filtering code around to handle both domains and URLs.

This commit is contained in:
Robert James Kaes 2002-05-27 02:00:22 +00:00
parent 35d3d79e92
commit 4ce9674365

View File

@ -1,4 +1,4 @@
/* $Id: reqs.c,v 1.76 2002-05-26 18:54:56 rjkaes Exp $ /* $Id: reqs.c,v 1.77 2002-05-27 02:00:22 rjkaes Exp $
* *
* This is where all the work in tinyproxy is actually done. Incoming * This is where all the work in tinyproxy is actually done. Incoming
* connections have a new child created for them. The child then * connections have a new child created for them. The child then
@ -408,22 +408,31 @@ process_request(struct conn_s *connptr)
return NULL; return NULL;
} }
safefree(url);
#ifdef FILTER_ENABLE #ifdef FILTER_ENABLE
/* /*
* Filter restricted domains * Filter restricted domains/urls
*/ */
if (config.filter) { if (config.filter) {
if (filter_url(request->host)) { if (config.filter_url)
ret = filter_url(url);
else
ret = filter_domain(request->host);
if (ret) {
update_stats(STAT_DENIED); update_stats(STAT_DENIED);
if (config.filter_url)
log_message(LOG_NOTICE,
"Proxying refused on filtered url \"%s\"",
url);
else
log_message(LOG_NOTICE, log_message(LOG_NOTICE,
"Proxying refused on filtered domain \"%s\"", "Proxying refused on filtered domain \"%s\"",
request->host); request->host);
indicate_http_error(connptr, 404,
"Connection to filtered domain is not allowed.");
indicate_http_error(connptr, 403, "Filtered.");
safefree(url);
free_request_struct(request); free_request_struct(request);
return NULL; return NULL;
@ -431,6 +440,8 @@ process_request(struct conn_s *connptr)
} }
#endif #endif
safefree(url);
/* /*
* Check to see if they're requesting the stat host * Check to see if they're requesting the stat host
*/ */