projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
load_config(): Fix indentation
[privoxy.git]
/
cgisimple.c
diff --git
a/cgisimple.c
b/cgisimple.c
index
592e704
..
e465be3
100644
(file)
--- a/
cgisimple.c
+++ b/
cgisimple.c
@@
-5,7
+5,7
@@
* Purpose : Simple CGIs to get information about Privoxy's
* status.
*
* Purpose : Simple CGIs to get information about Privoxy's
* status.
*
- * Copyright : Written by and Copyright (C) 2001-202
0
the
+ * Copyright : Written by and Copyright (C) 2001-202
1
the
* Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
@@
-260,7
+260,13
@@
jb_err cgi_show_request(struct client_state *csp,
}
if (map(exports, "processed-request", 1,
}
if (map(exports, "processed-request", 1,
- html_encode_and_free_original(list_to_text(csp->headers)), 0))
+ html_encode_and_free_original(
+#ifdef FEATURE_HTTPS_INSPECTION
+ csp->http->ssl ?
+ list_to_text(csp->https_headers) :
+#endif
+ list_to_text(csp->headers)
+ ), 0))
{
free_map(exports);
return JB_ERR_MEMORY;
{
free_map(exports);
return JB_ERR_MEMORY;
@@
-356,7
+362,7
@@
jb_err cgi_show_client_tags(struct client_state *csp,
this_tag = csp->config->client_tags;
if (this_tag->name == NULL)
{
this_tag = csp->config->client_tags;
if (this_tag->name == NULL)
{
- client_tag_status = strdup_or_die("<p>No tags
available
.</p>\n");
+ client_tag_status = strdup_or_die("<p>No tags
have been configured
.</p>\n");
}
else
{
}
else
{
@@
-404,6
+410,7
@@
jb_err cgi_show_client_tags(struct client_state *csp,
snprintf(buf, sizeof(buf), "%u", csp->config->client_tag_lifetime);
if (map(exports, "refresh-delay", 1, buf, 1))
{
snprintf(buf, sizeof(buf), "%u", csp->config->client_tag_lifetime);
if (map(exports, "refresh-delay", 1, buf, 1))
{
+ freez(client_tag_status);
free_map(exports);
return JB_ERR_MEMORY;
}
free_map(exports);
return JB_ERR_MEMORY;
}
@@
-413,6
+420,7
@@
jb_err cgi_show_client_tags(struct client_state *csp,
err = map_block_killer(exports, "tags-expire");
if (err != JB_ERR_OK)
{
err = map_block_killer(exports, "tags-expire");
if (err != JB_ERR_OK)
{
+ freez(client_tag_status);
return err;
}
}
return err;
}
}
@@
-518,8
+526,8
@@
jb_err cgi_toggle_client_tag(struct client_state *csp,
* 3 : parameters = map of cgi parameters
*
* CGI Parameters :
* 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).
* "auto" means to select as if we were image-blocking.
* (Only the first character really counts; b and t are
* equivalent).
@@
-534,6
+542,14
@@
jb_err cgi_send_banner(struct client_state *csp,
{
char imagetype = lookup(parameters, "type")[0];
{
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
/*
* If type is auto, then determine the right thing
* to do from the set-image-blocker action
@@
-972,7
+988,8
@@
jb_err cgi_send_user_manual(struct client_state *csp,
assert(rsp);
assert(parameters);
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.");
{
log_error(LOG_LEVEL_CGI, "Request for local user-manual "
"received while user-manual delivery is disabled.");
@@
-1348,9
+1365,9
@@
jb_err cgi_show_status(struct client_state *csp,
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
- if (*s != '\0')
+ if (
!err &&
*s != '\0')
{
{
-
if (!err)
err = map(exports, "actions-filenames", 1, s, 0);
+ err = map(exports, "actions-filenames", 1, s, 0);
}
else
{
}
else
{
@@
-1375,9
+1392,9
@@
jb_err cgi_show_status(struct client_state *csp,
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
if (!err) err = string_append(&s, "</td></tr>\n");
}
}
- if (*s != '\0')
+ if (
!err &&
*s != '\0')
{
{
-
if (!err)
err = map(exports, "re-filter-filenames", 1, s, 0);
+ err = map(exports, "re-filter-filenames", 1, s, 0);
}
else
{
}
else
{
@@
-2094,6
+2111,22
@@
static jb_err show_defines(struct map *exports)
1,
#else
0,
1,
#else
0,
+#endif
+ },
+ {
+ "FEATURE_EXTENDED_STATISTICS",
+#ifdef FEATURE_EXTENDED_STATISTICS
+ 1,
+#else
+ 0,
+#endif
+ },
+ {
+ "FEATURE_PCRE_HOST_PATTERNS",
+#ifdef FEATURE_PCRE_HOST_PATTERNS
+ 1,
+#else
+ 0,
#endif
}
};
#endif
}
};