* variables it writes to.
*
* Copyright : Written by and Copyright (C) 2001-2017 the
- * Privoxy team. http://www.privoxy.org/
+ * Privoxy team. https://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
#else /* ifndef _WIN32 */
-#ifndef __OS2__
# include <unistd.h>
# include <sys/wait.h>
-#endif
# include <sys/time.h>
# include <sys/stat.h>
# include <signal.h>
/*
* This takes the "cryptic" hash of each keyword and aliases them to
* something a little more readable. This also makes changing the
- * hash values easier if they should change or the hash algorthm changes.
- * Use the included "hash" program to find out what the hash will be
- * for any string supplied on the command line. (Or just put it in the
- * config file and read the number from the error message in the log).
+ * hash values easier if they should change or the hash algorithm changes.
+ * To find out the hash for a new directive put it in the config file
+ * and read the number from the error message in the log).
*
* Please keep this list sorted alphabetically (but with the Windows
* console and GUI specific options last).
#define hash_ca_key_file 1184187891U /* "ca-key-file" */
#define hash_ca_password 1184543320U /* "ca-password" */
#define hash_certificate_directory 1367994217U /* "certificate-directory" */
+#define hash_cipher_list 1225729316U /* "cipher-list" */
#define hash_client_header_order 2701453514U /* "client-header-order" */
#define hash_client_specific_tag 3353703383U /* "client-specific-tag" */
#define hash_client_tag_lifetime 647957580U /* "client-tag-lifetime" */
while (cur_fwd != NULL)
{
struct forward_spec * next_fwd = cur_fwd->next;
- free_pattern_spec(cur_fwd->url);
- freez(cur_fwd->gateway_host);
- freez(cur_fwd->forward_host);
- free(cur_fwd);
+ unload_forward_spec(cur_fwd);
+
cur_fwd = next_fwd;
}
config->forward = NULL;
list_remove_all(config->ordered_client_headers);
freez(config->admin_address);
+ freez(config->cors_allowed_origin);
freez(config->proxy_info_url);
freez(config->proxy_args);
freez(config->usermanual);
freez(config->trusted_cgi_referrer);
-#ifdef FEATURE_HTTPS_FILTERING
+#ifdef FEATURE_HTTPS_INSPECTION
freez(config->ca_password);
freez(config->ca_directory);
freez(config->ca_cert_file);
freez(config->ca_key_file);
freez(config->certificate_directory);
+ freez(config->cipher_list);
freez(config->trusted_cas_file);
#endif
unsigned long linenum = 0;
int i;
char *logfile = NULL;
-#ifdef FEATURE_HTTPS_FILTERING
+#ifdef FEATURE_HTTPS_INSPECTION
char *ca_cert_file = NULL;
char *ca_key_file = NULL;
char *ca_directory = NULL;
config->usermanual = strdup_or_die(USER_MANUAL_URL);
config->proxy_args = strdup_or_die("");
config->forwarded_connect_retries = 0;
-#ifdef FEATURE_HTTPS_FILTERING
+#ifdef FEATURE_HTTPS_INSPECTION
config->ca_password = strdup("");
ca_cert_file = strdup("cacert.crt");
ca_key_file = strdup("cakey.pem");
*
* On platforms were we use poll() we don't have to enforce
* an upper connection limit either.
- *
- * XXX: Do OS/2 etc. belong here as well?
*/
if (max_client_connections < 1)
{
if (config->receive_buffer_size < BUFFER_SIZE)
{
log_error(LOG_LEVEL_INFO,
- "receive-buffer-size %d seems low and may cause problems."
+ "receive-buffer-size %lu seems low and may cause problems."
"Consider setting it to at least %d.",
config->receive_buffer_size, BUFFER_SIZE);
}
config->usermanual = strdup_or_die(arg);
break;
-#ifdef FEATURE_HTTPS_FILTERING
+#ifdef FEATURE_HTTPS_INSPECTION
/* *************************************************************************
* ca private key file password
* *************************************************************************/
* ca-directory directory
* *************************************************************************/
case hash_ca_directory:
+ freez(ca_directory);
ca_directory = make_path(NULL, arg);
if (NULL == ca_directory)
* In ca dir by default
* *************************************************************************/
case hash_ca_cert_file:
+ freez(ca_cert_file);
ca_cert_file = make_path(config->ca_directory, arg);
if (NULL == ca_cert_file)
* In ca dir by default
* *************************************************************************/
case hash_ca_key_file:
+ freez(ca_key_file);
ca_key_file = make_path(config->ca_directory, arg);
if (NULL == ca_key_file)
* certificate-directory directory
* *************************************************************************/
case hash_certificate_directory:
+ freez(certificate_directory);
certificate_directory = make_path(NULL, arg);
if (NULL == certificate_directory)
break;
+/* *************************************************************************
+ * cipher-list list-of-ciphers
+ * *************************************************************************/
+ case hash_cipher_list:
+ freez(config->cipher_list);
+ config->cipher_list = strdup_or_die(arg);
+
+ break;
+
/* *************************************************************************
* trusted CAs file name trusted-cas-file
* *************************************************************************/
case hash_trusted_cas_file:
+ freez(trusted_cas_file);
trusted_cas_file = make_path(config->ca_directory, arg);
if (NULL == trusted_cas_file)
}
}
-#ifdef FEATURE_HTTPS_FILTERING
+#ifdef FEATURE_HTTPS_INSPECTION
/*
* Setting SSL parameters from loaded values into structures
*/