X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=cgisimple.c;h=96506273558fd507b647e1c7c003f0d0e130b104;hp=5099a579e765d43ca1e3219fa5bb34e4d02f45ac;hb=69df1f0ec38575d0086e74fb13847df296ebe037;hpb=b9806a317e5ebb2de178414a7622011a406e42ff diff --git a/cgisimple.c b/cgisimple.c index 5099a579..96506273 100644 --- a/cgisimple.c +++ b/cgisimple.c @@ -5,7 +5,7 @@ * Purpose : Simple CGIs to get information about Privoxy's * status. * - * Copyright : Written by and Copyright (C) 2001-2020 the + * Copyright : Written by and Copyright (C) 2001-2021 the * Privoxy team. https://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -526,8 +526,8 @@ jb_err cgi_toggle_client_tag(struct client_state *csp, * 3 : parameters = map of cgi parameters * * CGI Parameters : - * type : Selects the type of banner between "trans", "logo", - * and "auto". Defaults to "logo" if absent or invalid. + * type : Selects the type of banner between "trans", "pattern", + * and "auto". Defaults to "pattern" if absent or invalid. * "auto" means to select as if we were image-blocking. * (Only the first character really counts; b and t are * equivalent). @@ -542,6 +542,14 @@ jb_err cgi_send_banner(struct client_state *csp, { char imagetype = lookup(parameters, "type")[0]; + if (imagetype != 'a' && imagetype != 'b' && + imagetype != 'p' && imagetype != 't') + { + log_error(LOG_LEVEL_ERROR, "Overruling invalid image type '%c'.", + imagetype); + imagetype = 'p'; + } + /* * If type is auto, then determine the right thing * to do from the set-image-blocker action @@ -862,6 +870,50 @@ jb_err cgi_send_stylesheet(struct client_state *csp, } +/********************************************************************* + * + * Function : cgi_send_wpad + * + * Description : CGI function that sends a Proxy Auto-Configuration + * (PAC) file. + * + * Parameters : + * 1 : csp = Current client state (buffers, headers, etc...) + * 2 : rsp = http_response data structure for output + * 3 : parameters = map of cgi parameters + * + * CGI Parameters : None + * + * Returns : JB_ERR_OK on success + * JB_ERR_MEMORY on out-of-memory error. + * + *********************************************************************/ +jb_err cgi_send_wpad(struct client_state *csp, + struct http_response *rsp, + const struct map *parameters) +{ + struct map *exports; + + assert(csp); + assert(rsp); + assert(parameters); + + if (NULL == (exports = default_exports(csp, NULL))) + { + return JB_ERR_MEMORY; + } + + if (enlist(rsp->headers, "Content-Type: application/x-ns-proxy-autoconfig")) + { + free_map(exports); + return JB_ERR_MEMORY; + } + + return template_fill_for_cgi(csp, "wpad.dat", exports, rsp); + +} + + /********************************************************************* * * Function : cgi_send_url_info_osd @@ -980,7 +1032,8 @@ jb_err cgi_send_user_manual(struct client_state *csp, assert(rsp); assert(parameters); - if (0 == strncmpic(csp->config->usermanual, "http://", 7)) + if (0 == strncmpic(csp->config->usermanual, "http://", 7) || + 0 == strncmpic(csp->config->usermanual, "https://", 8)) { log_error(LOG_LEVEL_CGI, "Request for local user-manual " "received while user-manual delivery is disabled.");