-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 $
* 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
#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" */
*/
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;
{
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
* 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)
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
* *************************************************************************/
#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
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;