X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=cgi.c;h=fac49bda9d904a5dccbdc5cde5c55e465b18789b;hb=1f10576f471e410e38ebec3055cabbfa1adf68a6;hp=e377ad2931899e12434c2784688b50f8afbef874;hpb=f5e468e33c017f857da32b17e2940b9e79c8f202;p=privoxy.git diff --git a/cgi.c b/cgi.c index e377ad29..fac49bda 100644 --- a/cgi.c +++ b/cgi.c @@ -1,4 +1,4 @@ -const char cgi_rcs[] = "$Id: cgi.c,v 1.91 2007/01/27 13:09:16 fabiankeil Exp $"; +const char cgi_rcs[] = "$Id: cgi.c,v 1.95 2007/02/10 17:01:37 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/cgi.c,v $ @@ -38,6 +38,24 @@ const char cgi_rcs[] = "$Id: cgi.c,v 1.91 2007/01/27 13:09:16 fabiankeil Exp $"; * * Revisions : * $Log: cgi.c,v $ + * Revision 1.95 2007/02/10 17:01:37 fabiankeil + * Don't overlook map result for the forwarding-type. + * + * Revision 1.94 2007/02/08 19:44:49 fabiankeil + * Use a transparent background for the PNG replacement pattern. + * + * Revision 1.93 2007/02/07 10:45:22 fabiankeil + * - Save the reason for generating http_responses. + * - Fix --disable-toggle (again). + * - Use TBL birthday hack for 403 responses as well. + * - Uglify the @menu@ again to fix JavaScript + * errors on the "blocked" template. + * - Escape an ampersand in cgi_error_unknown(). + * + * Revision 1.92 2007/01/28 13:41:17 fabiankeil + * - Add HEAD support to finish_http_response. + * - Add error favicon to internal HTML error messages. + * * Revision 1.91 2007/01/27 13:09:16 fabiankeil * Add new config option "templdir" to * change the templates directory. @@ -738,12 +756,12 @@ static const struct cgi_dispatcher cgi_dispatchers[] = { */ const char image_pattern_data[] = "\211\120\116\107\015\012\032\012\000\000\000\015\111\110\104" - "\122\000\000\000\004\000\000\000\004\010\002\000\000\000\046" - "\223\011\051\000\000\000\006\142\113\107\104\000\310\000\310" - "\000\310\052\045\225\037\000\000\000\032\111\104\101\124\170" - "\332\143\070\161\342\304\377\377\377\041\044\003\234\165\342" - "\304\011\006\234\062\000\125\200\052\251\125\174\360\223\000" - "\000\000\000\111\105\116\104\256\102\140\202"; + "\122\000\000\000\004\000\000\000\004\010\006\000\000\000\251" + "\361\236\176\000\000\000\006\142\113\107\104\000\000\000\000" + "\000\000\371\103\273\177\000\000\000\033\111\104\101\124\010" + "\327\143\140\140\140\060\377\377\377\077\003\234\106\341\060" + "\060\230\063\020\124\001\000\161\021\031\241\034\364\030\143" + "\000\000\000\000\111\105\116\104\256\102\140\202"; /* * 1x1 transparant PNG. @@ -1017,10 +1035,6 @@ static struct http_response *dispatch_known_cgi(struct client_state * csp, return cgi_error_memory(); } - log_error(LOG_LEVEL_GPC, "%s%s cgi call", csp->http->hostport, csp->http->path); - log_error(LOG_LEVEL_CLF, "%s - - [%T] \"%s\" 200 3", - csp->ip_addr_str, csp->http->cmd); - /* * Find and start the right CGI function */ @@ -1070,6 +1084,7 @@ static struct http_response *dispatch_known_cgi(struct client_state * csp, if (!err) { /* It worked */ + rsp->reason = RSP_REASON_CGI_CALL; return finish_http_response(csp, rsp); } else @@ -1357,11 +1372,13 @@ struct http_response *error_response(struct client_state *csp, return cgi_error_memory(); } +#ifdef FEATURE_FORCE_LOAD if (csp->flags & CSP_FLAG_FORCED) { path = strdup(FORCE_PREFIX); } else +#endif /* def FEATURE_FORCE_LOAD */ { path = strdup(""); } @@ -1399,6 +1416,7 @@ struct http_response *error_response(struct client_state *csp, free_http_response(rsp); return cgi_error_memory(); } + rsp->reason = RSP_REASON_NO_SUCH_DOMAIN; } else if (!strcmp(templatename, "forwarding-failed")) { @@ -1428,8 +1446,8 @@ struct http_response *error_response(struct client_state *csp, csp->error_message = strdup("Failure reason missing. Check the log file for details."); } if (!err) err = map(exports, "gateway", 1, fwd->gateway_host, 1); - if (!err) map(exports, "forwarding-type", 1, (fwd->type == SOCKS_4) ? - "socks4-" : "socks4a-", 1); + if (!err) err = map(exports, "forwarding-type", 1, (fwd->type == SOCKS_4) ? + "socks4-" : "socks4a-", 1); if (!err) err = map(exports, "error-message", 1, html_encode(csp->error_message), 0); if (!err) rsp->status = strdup("503 Forwarding failure"); @@ -1439,6 +1457,7 @@ struct http_response *error_response(struct client_state *csp, free_http_response(rsp); return cgi_error_memory(); } + rsp->reason = RSP_REASON_FORWARDING_FAILED; } else if (!strcmp(templatename, "connect-failed")) { @@ -1449,6 +1468,7 @@ struct http_response *error_response(struct client_state *csp, free_http_response(rsp); return cgi_error_memory(); } + rsp->reason = RSP_REASON_CONNECT_FAILED; } err = template_fill_for_cgi(csp, templatename, exports, rsp); @@ -1541,6 +1561,7 @@ void cgi_init_error_messages(void) strlen(cgi_error_memory_response->head); cgi_error_memory_response->content_length = strlen(cgi_error_memory_response->body); + cgi_error_memory_response->reason = RSP_REASON_OUT_OF_MEMORY; } @@ -1690,7 +1711,7 @@ jb_err cgi_error_unknown(struct client_state *csp, static const char body_suffix[] = "
\r\n" "Please " - "" + "" "file a bug report.
\r\n" "