#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 algorithm 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).
+ * 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" */
freez(config->ca_cert_file);
freez(config->ca_key_file);
freez(config->certificate_directory);
+ freez(config->cipher_list);
freez(config->trusted_cas_file);
#endif
{
int max_client_connections = parse_numeric_value(cmd, arg);
-#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
- * client connections that need forwarding.
- *
- * We ignore the fact that the first three file descriptors
- * are usually set to /dev/null, one is used for logging
- * and yet another file descriptor is required to load
- * config files.
- */
- if ((max_client_connections < 1) || (FD_SETSIZE/2 < max_client_connections))
- {
- log_error(LOG_LEVEL_FATAL, "max-client-connections value %d"
- " is invalid. Value needs to be above 1 and below %d"
- " (FD_SETSIZE/2).", max_client_connections, FD_SETSIZE/2);
- }
-#else
- /*
- * The Windows libc uses FD_SETSIZE for an array used
- * by select(), but has no problems with file descriptors
- * above the limit as long as no more than FD_SETSIZE are
- * 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 etc. belong here as well?
- */
if (max_client_connections < 1)
{
log_error(LOG_LEVEL_FATAL, "max-client-connections value"
" has to be a number above 1. %d is invalid.",
max_client_connections);
}
-#endif
+
config->max_client_connections = max_client_connections;
break;
}
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);
}
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
* *************************************************************************/