X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=loadcfg.c;h=4944a415a8d9333755b86afae5bcc7e1e9b6b3b4;hp=0203e9727b0e8ed81c1f0e1f32e11e8f9731cc23;hb=77c7aac50e2ec2d9e7fdb42cef5cfc3f772facc2;hpb=6631b08ce4162b958461adf55db8de2feba130cf;ds=sidebyside diff --git a/loadcfg.c b/loadcfg.c index 0203e972..4944a415 100644 --- a/loadcfg.c +++ b/loadcfg.c @@ -1,4 +1,4 @@ -const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.155 2017/02/20 13:44:32 fabiankeil Exp $"; +const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.160 2017/05/29 10:02:11 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $ @@ -8,7 +8,7 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.155 2017/02/20 13:44:32 fabiankei * routine to load the configuration and the global * variables it writes to. * - * Copyright : Written by and Copyright (C) 2001-2016 the + * Copyright : Written by and Copyright (C) 2001-2017 the * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -158,6 +158,7 @@ static struct file_list *current_configfile = NULL; #define hash_max_client_connections 3595884446U /* "max-client-connections" */ #define hash_permit_access 3587953268U /* "permit-access" */ #define hash_proxy_info_url 3903079059U /* "proxy-info-url" */ +#define hash_receive_buffer_size 2880297454U /* "receive-buffer-size */ #define hash_single_threaded 4250084780U /* "single-threaded" */ #define hash_socket_timeout 1809001761U /* "socket-timeout" */ #define hash_split_large_cgi_forms 671658948U /* "split-large-cgi-forms" */ @@ -597,6 +598,7 @@ struct configuration_spec * load_config(void) */ config->multi_threaded = 1; config->buffer_limit = 4096 * 1024; + config->receive_buffer_size = BUFFER_SIZE; config->usermanual = strdup_or_die(USER_MANUAL_URL); config->proxy_args = strdup_or_die(""); config->forwarded_connect_retries = 0; @@ -1375,7 +1377,7 @@ struct configuration_spec * load_config(void) { int max_client_connections = parse_numeric_value(cmd, arg); -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(HAVE_POLL) /* * Reject values below 1 for obvious reasons and values above * FD_SETSIZE/2 because Privoxy needs two sockets to serve @@ -1400,6 +1402,9 @@ struct configuration_spec * load_config(void) * passed to select(). * https://msdn.microsoft.com/en-us/library/windows/desktop/ms739169%28v=vs.85%29.aspx * + * On platforms were we use poll() we don't have to enforce + * an upper connection limit either. + * * XXX: Do OS/2, Amiga etc. belong here as well? */ if (max_client_connections < 1) @@ -1497,6 +1502,21 @@ struct configuration_spec * load_config(void) config->proxy_info_url = strdup_or_die(arg); break; + +/* ************************************************************************* + * receive-buffer-size n + * *************************************************************************/ + case hash_receive_buffer_size : + config->receive_buffer_size = (size_t)parse_numeric_value(cmd, arg); + if (config->receive_buffer_size < BUFFER_SIZE) + { + log_error(LOG_LEVEL_INFO, + "receive-buffer-size %d seems low and may cause problems." + "Consider setting it to at least %d.", + config->receive_buffer_size, BUFFER_SIZE); + } + break; + /* ************************************************************************* * single-threaded 0|1 * *************************************************************************/ @@ -1816,11 +1836,7 @@ struct configuration_spec * load_config(void) #ifdef FEATURE_CONNECTION_SHARING if (config->feature_flags & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE) { - if (config->multi_threaded) - { - set_keep_alive_timeout(config->keep_alive_timeout); - } - else + if (!config->multi_threaded) { /* * While we could use keep-alive without multiple threads @@ -1944,9 +1960,6 @@ struct configuration_spec * load_config(void) current_configfile->f; /* * Check if config->haddr[i],hport[i] == oldcfg->haddr[i],hport[i] - * - * The following could be written more compactly as a single, - * (unreadably long) if statement. */ config->need_bind = 0;