# Note:  Makefile is built automatically from Makefile.in
 #
-# $Id: GNUmakefile.in,v 1.173 2008/06/18 18:28:42 fabiankeil Exp $
+# $Id: GNUmakefile.in,v 1.174 2008/07/18 17:50:47 fabiankeil Exp $
 #
 # Written by and Copyright (C) 2001 - 2008 the SourceForge
 # Privoxy team. http://www.privoxy.org/
 
 config.txt: config
        $(SED) -e 's!\trustfile trust!trustfile trust.txt!' \
-              -e 's!\jarfile jarfile!jarfile jar.log!' \
               -e 's!\logfile logfile!logfile privoxy.log!' \
               -e 's!#Win32-only: !!' \
               < $< | \
        fi ;\
        [ ! -f $(DESTDIR)$(LOG_DEST)/logfile ] && $(ECHO) Creating logfiles in $(DESTDIR)$(LOG_DEST) || \
                $(ECHO) Checking logfiles in $(DESTDIR)$(LOG_DEST) ;\
-               $(TOUCH) $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(LOG_DEST)/jarfile || exit 1 ;\
+               $(TOUCH) $(DESTDIR)$(LOG_DEST)/logfile || exit 1 ;\
        if [ x$$USER != x ]; then \
-               $(CHOWN) $$USER $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(LOG_DEST)/jarfile || \
+               $(CHOWN) $$USER $(DESTDIR)$(LOG_DEST)/logfile || \
                $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\
        fi ;\
        if [ x$$GROUP_T != x ]; then \
-               $(CHGRP) $$GROUP_T $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(LOG_DEST)/jarfile || \
+               $(CHGRP) $$GROUP_T $(DESTDIR)$(LOG_DEST)/logfile || \
                $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\
        fi ;\
-       $(CHMOD) $(RWD_MODE) $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(LOG_DEST)/jarfile || exit 1 ;\
+       $(CHMOD) $(RWD_MODE) $(DESTDIR)$(LOG_DEST)/logfile || exit 1 ;\
        if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \
                if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \
                $(SED) 's+%PROGRAM%+$(PROGRAM)+' slackware/rc.privoxy.orig | \
        -$(RM) $(DESTDIR)$(MAN_DEST)/privoxy.1*
        -$(RM) -r $(DESTDIR)$(DOC_DEST) || $(RM) -r $(DESTDIR)$(prefix)/doc/privoxy
 
-       @# Log and jarfile and pidfile
+       @# Log and pidfile
        @$(ECHO) Removing $(PROGRAM) logs
-       -$(RM) $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(PID_DEST)/privoxy.pid $(DESTDIR)$(LOG_DEST)/jarfile
+       -$(RM) $(DESTDIR)$(LOG_DEST)/logfile $(DESTDIR)$(PID_DEST)/privoxy.pid
 
        @# Final clean up of unused directories. Special handling of CONF and LOG
      # destinations.
 ## end:
 
 # $Log: GNUmakefile.in,v $
+# Revision 1.174  2008/07/18 17:50:47  fabiankeil
+# Fix whitespace.
+#
 # Revision 1.173  2008/06/18 18:28:42  fabiankeil
 # Remove PDF-related stuff.
 #
 
-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.86 2008/06/28 14:19:05 fabiankeil Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.87 2008/08/29 15:59:22 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
  *
  * Revisions   :
  *    $Log: cgisimple.c,v $
+ *    Revision 1.87  2008/08/29 15:59:22  fabiankeil
+ *    Fix two comments.
+ *
  *    Revision 1.86  2008/06/28 14:19:05  fabiankeil
  *    Protocol detection is done case-insensitive, fix assertion
  *    to do the same. Yay for Privoxy-Regression-Test and zzuf.
    if (!err) err = map_conditional(exports, "FEATURE_CGI_EDIT_ACTIONS", 0);
 #endif /* ndef FEATURE_CGI_EDIT_ACTIONS */
 
-#ifdef FEATURE_COOKIE_JAR
-   if (!err) err = map_conditional(exports, "FEATURE_COOKIE_JAR", 1);
-#else /* ifndef FEATURE_COOKIE_JAR */
-   if (!err) err = map_conditional(exports, "FEATURE_COOKIE_JAR", 0);
-#endif /* ndef FEATURE_COOKIE_JAR */
-
 #ifdef FEATURE_FAST_REDIRECTS
    if (!err) err = map_conditional(exports, "FEATURE_FAST_REDIRECTS", 1);
 #else /* ifndef FEATURE_FAST_REDIRECTS */
 
 dnl Process this file with autoconf to produce a configure script.
 dnl 
-dnl $Id: configure.in,v 1.119 2008/08/13 16:53:50 fabiankeil Exp $
+dnl $Id: configure.in,v 1.120 2008/08/21 17:19:50 fabiankeil Exp $
 dnl 
 dnl Written by and Copyright (C) 2001-2008 the SourceForge
 dnl Privoxy team. http://www.privoxy.org/
 dnl Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 dnl 
 dnl $Log: configure.in,v $
+dnl Revision 1.120  2008/08/21 17:19:50  fabiankeil
+dnl Change version to 3.0.11 UNRELEASED.
+dnl
 dnl Revision 1.119  2008/08/13 16:53:50  fabiankeil
 dnl Change version to 3.0.10 stable.
 dnl
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.119 $)
+AC_REVISION($Revision: 1.120 $)
 AC_INIT(jcc.c)
 
 if test ! -f config.h.in; then
 fi],
 AC_DEFINE(FEATURE_TRUST))
 
-AC_ARG_ENABLE(jar-files,
-[  --disable-jar-files             Prevents the use of jar files to capture cookies.],
-[if test $enableval = yes; then
-  AC_DEFINE(FEATURE_COOKIE_JAR)
-fi],
-AC_DEFINE(FEATURE_COOKIE_JAR))
-
 AC_ARG_ENABLE(editor,
 [  --disable-editor                Prevents the use of the web-based actions file
                                   editor and web-based temporary disable setting.],
 
 
  Purpose     :  Used with other docs and files only.
 
- $Id: p-config.sgml,v 2.30 2008/03/27 18:31:20 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.31 2008/06/14 13:16:40 fabiankeil Exp $
 
  Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
  See LICENSE.
  Sample Configuration File for Privoxy v&p-version;
 </title>
 <para>
- $Id: p-config.sgml,v 2.30 2008/03/27 18:31:20 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.31 2008/06/14 13:16:40 fabiankeil Exp $
 </para>
 <para>
 Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
   <listitem>
    <para>
     The directory where all logging takes place
-    (i.e. where <filename>logfile</filename> and
-    <filename>jarfile</filename> are located).
+    (i.e. where the <filename>logfile</filename> is located).
    </para>
   </listitem>
  </varlistentry>
 </sect3>
 
 
-<!--   ~~~~~       New section      ~~~~~     -->
-<sect3 renderas="sect4" id="jarfile"><title>jarfile</title>
-
-<variablelist>
- <varlistentry>
-  <term>Specifies:</term>
-  <listitem>
-   <para>
-    The file to store intercepted cookies in
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>Type of value:</term>
-  <listitem>
-   <para>File name, relative to <literal>logdir</literal></para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>Default value:</term>
-  <listitem>
-   <para><emphasis>Unset (commented out)</emphasis>. When activated: jarfile (Unix) <emphasis>or</emphasis> privoxy.jar (Windows).</para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>Effect if unset:</term>
-  <listitem>
-   <para>
-    Intercepted cookies are not stored in a dedicated log file.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>Notes:</term>
-  <listitem>
-   <para>
-    The jarfile may grow to ridiculous sizes over time.
-   </para>
-   <para>
-    If debug 8 (show header parsing) is enabled, cookies are
-    also written to the logfile with the rest of the headers.
-    Therefore this option isn't very useful and may be removed
-    in future releases. Please report to the developers if you
-    are still using it.
-   </para>
-  </listitem>
- </varlistentry>
-</variablelist>
-
-<![%config-file;[<literallayout>@@#jarfile jarfile</literallayout>]]>
-</sect3>
-
-
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="trustfile"><title>trustfile</title>
 <variablelist>
 
-const char jcc_rcs[] = "$Id: jcc.c,v 1.183 2008/08/21 07:09:35 fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.184 2008/08/22 15:34:45 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/jcc.c,v $
  *
  * Revisions   :
  *    $Log: jcc.c,v $
+ *    Revision 1.184  2008/08/22 15:34:45  fabiankeil
+ *    - Silence LLVM/Clang complaint.
+ *    - Make received_hup_signal static.
+ *    - Hide definitions for basedir, pidfile and received_hup_signal
+ *      from __EMX__ as they only seem to be used in case of #ifdef unix.
+ *
  *    Revision 1.183  2008/08/21 07:09:35  fabiankeil
  *    Accept Shoutcast responses again. Problem reported
  *    and fix suggested by Stefan in #2062860.
       }
 #endif
 
-#ifdef __OS2__
-#ifdef FEATURE_COOKIE_JAR
-      /*
-       * Need a workaround here: we have to fclose() the jarfile, or we die because it's
-       * already open.  I think unload_configfile() is not being run, which should do
-       * this work.  Until that can get resolved, we'll use this workaround.
-       */
-       if (csp)
-         if(csp->config)
-           if (csp->config->jar)
-           {
-             fclose(csp->config->jar);
-             csp->config->jar = NULL;
-           }
-#endif /* FEATURE_COOKIE_JAR */
-#endif /* __OS2__ */
-
       if ( NULL == (csp = (struct client_state *) zalloc(sizeof(*csp))) )
       {
          log_error(LOG_LEVEL_FATAL, "malloc(%d) for csp failed: %E", sizeof(*csp));
 #endif
    freez(configfile);
 
-#ifdef FEATURE_COOKIE_JAR
-   if (NULL != config->jar)
-   {
-      fclose(config->jar);
-   }
-#endif
-
 #if defined(_WIN32) && !defined(_WIN_CONSOLE)
    /* Cleanup - remove taskbar icon etc. */
    TermLogWindow();
 
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.77 2008/05/26 16:13:22 fabiankeil Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.78 2008/08/02 08:23:22 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
  *
  * Revisions   :
  *    $Log: loadcfg.c,v $
+ *    Revision 1.78  2008/08/02 08:23:22  fabiankeil
+ *    If the enforce-blocks directive is used with FEATURE_FORCE_LOAD
+ *    disabled, log a message that blocks will always be enforced
+ *    instead of complaining about an unrecognized directive.
+ *    Reported by Pietro Leone.
+ *
  *    Revision 1.77  2008/05/26 16:13:22  fabiankeil
  *    Reuse directive_hash and don't hash the same directive twice.
  *
 #define hash_forward_socks5              3963965522ul /* "forward-socks5" */
 #define hash_forwarded_connect_retries    101465292ul /* "forwarded-connect-retries" */
 #define hash_hostname                      10308071ul /* "hostname" */
-#define hash_jarfile                        2046641ul /* "jarfile" */
 #define hash_listen_address              1255650842ul /* "listen-address" */
 #define hash_logdir                          422889ul /* "logdir" */
 #define hash_logfile                        2114766ul /* "logfile" */
    }
    config->forward = NULL;
 
-#ifdef FEATURE_COOKIE_JAR
-   if ( NULL != config->jar )
-   {
-      fclose( config->jar );
-      config->jar = NULL;
-   }
-#endif /* def FEATURE_COOKIE_JAR */
-
    freez(config->confdir);
    freez(config->logdir);
    freez(config->templdir);
    freez(config->proxy_args);
    freez(config->usermanual);
 
-#ifdef FEATURE_COOKIE_JAR
-   freez(config->jarfile);
-#endif /* def FEATURE_COOKIE_JAR */
-
 #ifdef FEATURE_TRUST
    freez(config->trustfile);
    list_remove_all(config->trust_info);
             }
             continue;
 
-/* *************************************************************************
- * jarfile jar-file-name
- * In logdir by default
- * *************************************************************************/
-#ifdef FEATURE_COOKIE_JAR
-         case hash_jarfile :
-            freez(config->jarfile);
-            config->jarfile = make_path(config->logdir, arg);
-            continue;
-#endif /* def FEATURE_COOKIE_JAR */
-
 /* *************************************************************************
  * listen-address [ip][:port]
  * *************************************************************************/
          case hash_enable_edit_actions:
          case hash_enable_remote_toggle:
 #endif /* def FEATURE_CGI_EDIT_ACTIONS */
-#ifndef FEATURE_COOKIE_JAR
-         case hash_jarfile :
-#endif /* ndef FEATURE_COOKIE_JAR */
 #ifndef FEATURE_ACL
          case hash_permit_access:
 #endif /* ndef FEATURE_ACL */
    }
 #endif /* def FEATURE_TRUST */
 
-#ifdef FEATURE_COOKIE_JAR
-   if ( NULL != config->jarfile )
-   {
-      if ( NULL == (config->jar = fopen(config->jarfile, "a")) )
-      {
-         log_error(LOG_LEVEL_FATAL, "can't open jarfile '%s': %E", config->jarfile);
-         /* Never get here - LOG_LEVEL_FATAL causes program exit */
-      }
-      setbuf(config->jar, NULL);
-   }
-#endif /* def FEATURE_COOKIE_JAR */
-
    if ( NULL == config->haddr )
    {
       config->haddr = strdup( HADDR_DEFAULT );
 
-const char parsers_rcs[] = "$Id: parsers.c,v 1.136 2008/05/26 16:02:24 fabiankeil Exp $";
+const char parsers_rcs[] = "$Id: parsers.c,v 1.137 2008/05/30 15:50:08 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/parsers.c,v $
  *
  * Revisions   :
  *    $Log: parsers.c,v $
+ *    Revision 1.137  2008/05/30 15:50:08  fabiankeil
+ *    Remove questionable micro-optimizations
+ *    whose usefulness has never been measured.
+ *
  *    Revision 1.136  2008/05/26 16:02:24  fabiankeil
  *    s@Insufficent@Insufficient@
  *
 {
    time_t now;
    time_t cookie_time; 
-   struct tm tm_now; 
-   time(&now);
 
-#ifdef FEATURE_COOKIE_JAR
-   if (csp->config->jar)
-   {
-      /*
-       * Write timestamp into outbuf.
-       *
-       * Complex because not all OSs have tm_gmtoff or
-       * the %z field in strftime()
-       */
-      char tempbuf[ BUFFER_SIZE ];
- 
-#ifdef HAVE_LOCALTIME_R
-      tm_now = *localtime_r(&now, &tm_now);
-#elif FEATURE_PTHREAD
-      pthread_mutex_lock(&localtime_mutex);
-      tm_now = *localtime (&now);
-      pthread_mutex_unlock(&localtime_mutex);
-#else
-      tm_now = *localtime (&now);
-#endif
-      strftime(tempbuf, BUFFER_SIZE-6, "%b %d %H:%M:%S ", &tm_now); 
-
-      /* strlen("set-cookie: ") = 12 */
-      fprintf(csp->config->jar, "%s %s\t%s\n", tempbuf, csp->http->host, *header + 12);
-   }
-#endif /* def FEATURE_COOKIE_JAR */
+   time(&now);
 
    if ((csp->action->flags & ACTION_NO_COOKIE_SET) != 0)
    {
 
 #ifndef PROJECT_H_INCLUDED
 #define PROJECT_H_INCLUDED
 /** Version string. */
-#define PROJECT_H_VERSION "$Id: project.h,v 1.115 2008/05/19 16:57:20 fabiankeil Exp $"
+#define PROJECT_H_VERSION "$Id: project.h,v 1.116 2008/05/20 16:05:02 fabiankeil Exp $"
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/project.h,v $
  *
  * Revisions   :
  *    $Log: project.h,v $
+ *    Revision 1.116  2008/05/20 16:05:02  fabiankeil
+ *    Move parsers structure definition from project.h to parsers.h.
+ *
  *    Revision 1.115  2008/05/19 16:57:20  fabiankeil
  *    Declare all members of the parsers structure immutable.
  *
    /** The hostname to show on CGI pages, or NULL to use the real one. */
    const char *hostname;
 
-#ifdef FEATURE_COOKIE_JAR
-
-   /** The file name of the cookie jar file */
-   const char * jarfile;
-
-   /** The handle to the cookie jar file */
-   FILE * jar;
-
-#endif /* def FEATURE_COOKIE_JAR */
-
    /** IP address to bind to.  Defaults to HADDR_DEFAULT == 127.0.0.1. */
    const char *haddr;
 
 
                  @endif-FEATURE_CGI_EDIT_ACTIONS@web-based actions file
                  editor@if-FEATURE_CGI_EDIT_ACTIONS-then@</a>@else-not-FEATURE_CGI_EDIT_ACTIONS@@endif-FEATURE_CGI_EDIT_ACTIONS@.</td>
             </tr>
-            <tr>
-              <td><code>FEATURE_COOKIE_JAR</code></td>
-              <td>@if-FEATURE_COOKIE_JAR-then@ Yes @else-not-FEATURE_COOKIE_JAR@ No @endif-FEATURE_COOKIE_JAR@</td>
-              <td>Allows the use of a <q>cookie jar</q> file to capture cookies.</td>
-            </tr>
             <tr>
               <td><code>FEATURE_FAST_REDIRECTS</code></td>
               <td>@if-FEATURE_FAST_REDIRECTS-then@ Yes @else-not-FEATURE_FAST_REDIRECTS@ No @endif-FEATURE_FAST_REDIRECTS@</td>