X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=jcc.c;h=794bcaccdf556df732218b1115a438eb6a037c09;hp=ab4b83ccfe2d3c99a28cfe48e8199d3173c028eb;hb=a0d21e8ca7e624a2faac4b6577c7eb77958d6797;hpb=65089d58d869a22dc50b9d0855a7ead993ca6350;ds=sidebyside diff --git a/jcc.c b/jcc.c index ab4b83cc..794bcacc 100644 --- a/jcc.c +++ b/jcc.c @@ -1,4 +1,4 @@ -const char jcc_rcs[] = "$Id: jcc.c,v 1.159 2007/11/24 14:34:09 fabiankeil Exp $"; +const char jcc_rcs[] = "$Id: jcc.c,v 1.164 2007/12/16 18:32:46 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jcc.c,v $ @@ -33,6 +33,26 @@ const char jcc_rcs[] = "$Id: jcc.c,v 1.159 2007/11/24 14:34:09 fabiankeil Exp $" * * Revisions : * $Log: jcc.c,v $ + * Revision 1.164 2007/12/16 18:32:46 fabiankeil + * Prevent the log messages for CONNECT requests to unacceptable + * ports from printing the limit-connect argument as [null] if + * limit-connect hasn't been explicitly enabled. + * + * Revision 1.163 2007/12/13 01:47:11 david__schmidt + * Make sure all console-mode apps get a usage() instance + * + * Revision 1.162 2007/12/06 17:54:57 fabiankeil + * Reword NO_SERVER_DATA_RESPONSE to make it harder + * to misunderstand what the message is all about. + * + * Revision 1.161 2007/12/04 19:44:22 fabiankeil + * Unbreak trustfile which previously didn't work without + * FEATURE_TOGGLE. Fixes BR#1843585, reported by Lee. + * + * Revision 1.160 2007/11/29 18:00:29 fabiankeil + * Plug memory leak. Spotted by Valgrind, triggered by + * Privoxy-Regression-Test feeding proxyfuzz.py. + * * Revision 1.159 2007/11/24 14:34:09 fabiankeil * In the HTTP snipplets, refer to the client as client. * @@ -1045,7 +1065,7 @@ static void build_request_line(struct client_state *csp, const struct forward_sp static jb_err change_request_destination(struct client_state *csp); static void chat(struct client_state *csp); static void serve(struct client_state *csp); -#if defined(unix) +#if !defined(_WIN32) || defined(_WIN_CONSOLE) static void usage(const char *myname); #endif static void initialize_mutexes(void); @@ -1143,7 +1163,7 @@ static const char NO_SERVER_DATA_RESPONSE[] = "Content-Type: text/plain\r\n" "Connection: close\r\n\r\n" "Empty server or forwarder response.\r\n" - "The connection was closed without sending any data.\r\n"; + "The connection has been closed but Privoxy didn't receive any data.\r\n"; #if 0 /* XXX: should be a template */ @@ -2169,6 +2189,10 @@ static void chat(struct client_state *csp) || (csp->action->flags & ACTION_LIMIT_CONNECT && !match_portlist(csp->action->string[ACTION_STRING_LIMIT_CONNECT], csp->http->port)) ) { + const char *acceptable_connect_ports = + csp->action->string[ACTION_STRING_LIMIT_CONNECT] ? + csp->action->string[ACTION_STRING_LIMIT_CONNECT] : + "443 (implied default)"; if (csp->action->flags & ACTION_TREAT_FORBIDDEN_CONNECTS_LIKE_BLOCKS) { /* @@ -2180,8 +2204,7 @@ static void chat(struct client_state *csp) */ log_error(LOG_LEVEL_INFO, "Request from %s marked for blocking. " "limit-connect{%s} doesn't allow CONNECT requests to port %d.", - csp->ip_addr_str, csp->action->string[ACTION_STRING_LIMIT_CONNECT], - csp->http->port); + csp->ip_addr_str, acceptable_connect_ports, csp->http->port); csp->action->flags |= ACTION_BLOCK; http->ssl = 0; } @@ -2190,8 +2213,7 @@ static void chat(struct client_state *csp) write_socket(csp->cfd, CFORBIDDEN, strlen(CFORBIDDEN)); log_error(LOG_LEVEL_INFO, "Request from %s denied. " "limit-connect{%s} doesn't allow CONNECT requests to port %d.", - csp->ip_addr_str, csp->action->string[ACTION_STRING_LIMIT_CONNECT], - csp->http->port); + csp->ip_addr_str, acceptable_connect_ports, csp->http->port); assert(NULL != csp->http->ocmd); log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" 403 0", csp->ip_addr_str, csp->http->ocmd); @@ -2828,7 +2850,7 @@ static int32 server_thread(void *data) #endif -#if defined(unix) +#if !defined(_WIN32) || defined(_WIN_CONSOLE) /********************************************************************* * * Function : usage @@ -2857,7 +2879,7 @@ static void usage(const char *myname) exit(2); } -#endif /* defined(unix) */ +#endif /* #if !defined(_WIN32) || defined(_WIN_CONSOLE) */ /********************************************************************* @@ -3386,16 +3408,7 @@ static jb_socket bind_port_helper(struct configuration_spec * config) int result; jb_socket bfd; - if ( (config->haddr != NULL) - && (config->haddr[0] == '1') - && (config->haddr[1] == '2') - && (config->haddr[2] == '7') - && (config->haddr[3] == '.') ) - { - log_error(LOG_LEVEL_INFO, "Listening on port %d for local connections only", - config->hport); - } - else if (config->haddr == NULL) + if (config->haddr == NULL) { log_error(LOG_LEVEL_INFO, "Listening on port %d on all IP addresses", config->hport); @@ -3570,10 +3583,10 @@ static void listen_loop(void) #ifdef FEATURE_TOGGLE if (global_toggle_state) +#endif /* def FEATURE_TOGGLE */ { csp->flags |= CSP_FLAG_TOGGLED_ON; } -#endif /* def FEATURE_TOGGLE */ if (run_loader(csp)) {