Increase default socket timeout to 300 seconds.
[privoxy.git] / loadcfg.c
index 5ca3677..61ba3a7 100644 (file)
--- a/loadcfg.c
+++ b/loadcfg.c
@@ -1,4 +1,4 @@
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.83 2008/12/20 14:53:55 fabiankeil Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.86 2009/02/08 19:18:57 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
@@ -35,6 +35,20 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.83 2008/12/20 14:53:55 fabiankeil
  *
  * Revisions   :
  *    $Log: loadcfg.c,v $
+ *    Revision 1.86  2009/02/08 19:18:57  fabiankeil
+ *    Now that we have the match-all.action file, the other action
+ *    files changed their position in config->actions_file[] back
+ *    to the way it was before standard.action got removed and the
+ *    changes from revision 1.84 have to be reverted.
+ *
+ *    Revision 1.85  2009/01/22 12:06:26  fabiankeil
+ *    Don't keep connections alive when running single-threaded.
+ *
+ *    Revision 1.84  2009/01/14 16:14:36  fabiankeil
+ *    Due to the standard.action file removal, the other action
+ *    files changed their position in config->actions_file[].
+ *    Update mingw32 kludge accordingly.
+ *
  *    Revision 1.83  2008/12/20 14:53:55  fabiankeil
  *    Add config option socket-timeout to control the time
  *    Privoxy waits for data to arrive on a socket. Useful
@@ -794,7 +808,7 @@ struct configuration_spec * load_config(void)
    config->usermanual                = strdup(USER_MANUAL_URL);
    config->proxy_args                = strdup("");
    config->forwarded_connect_retries = 0;
-   config->socket_timeout            = 180;
+   config->socket_timeout            = 300; /* XXX: Should be a macro. */
    config->feature_flags            &= ~RUNTIME_FEATURE_CGI_TOGGLE;
    config->feature_flags            &= ~RUNTIME_FEATURE_SPLIT_LARGE_FORMS;
    config->feature_flags            &= ~RUNTIME_FEATURE_ACCEPT_INTERCEPTED_REQUESTS;
@@ -1720,9 +1734,6 @@ struct configuration_spec * load_config(void)
    fclose(configfp);
 
    set_debug_level(config->debug);
-#ifdef FEATURE_CONNECTION_KEEP_ALIVE
-   set_keep_alive_timeout(keep_alive_timeout);
-#endif
 
    freez(config->logfile);
 
@@ -1739,6 +1750,28 @@ struct configuration_spec * load_config(void)
       }
    }
 
+#ifdef FEATURE_CONNECTION_KEEP_ALIVE
+   if (config->feature_flags & RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE)
+   {
+      if (config->multi_threaded)
+      {
+         set_keep_alive_timeout(keep_alive_timeout);
+      }
+      else
+      {
+         /*
+          * While we could use keep-alive without multiple threads
+          * if we didn't bother with enforcing the connection timeout,
+          * that might make Tor users sad, even though they shouldn't
+          * enable the single-threaded option anyway.
+          */
+         config->feature_flags &= ~RUNTIME_FEATURE_CONNECTION_KEEP_ALIVE;
+         log_error(LOG_LEVEL_ERROR,
+            "Config option single-threaded disables connection keep-alive.");
+      }
+   }
+#endif
+
    if (NULL == config->proxy_args)
    {
       log_error(LOG_LEVEL_FATAL, "Out of memory loading config - insufficient memory for config->proxy_args");
@@ -1812,8 +1845,8 @@ struct configuration_spec * load_config(void)
 /* FIXME: this is a kludge for win32 */
 #if defined(_WIN32) && !defined (_WIN_CONSOLE)
 
-   g_default_actions_file  = config->actions_file[0]; /* FIXME Hope this is default.action */
-   g_user_actions_file = config->actions_file[1]; /* FIXME Hope this is user.action */
+   g_default_actions_file = config->actions_file[1]; /* FIXME Hope this is default.action */
+   g_user_actions_file = config->actions_file[2]; /* FIXME Hope this is user.action */
    g_re_filterfile    = config->re_filterfile[0]; /* FIXME Hope this is default.filter */
 
 #ifdef FEATURE_TRUST