*** empty log message *** v_2_9_3
authoroes <oes@users.sourceforge.net>
Tue, 15 May 2001 13:59:57 +0000 (13:59 +0000)
committeroes <oes@users.sourceforge.net>
Tue, 15 May 2001 13:59:57 +0000 (13:59 +0000)
91 files changed:
Junkbuster Status.URL [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
acconfig.h [new file with mode: 0644]
aclfile [new file with mode: 0644]
amiga.c [new file with mode: 0644]
amiga.h [new file with mode: 0644]
blocklist [new file with mode: 0644]
config [new file with mode: 0644]
config.h [new file with mode: 0644]
config.h.in [new file with mode: 0644]
configure [new file with mode: 0755]
configure.in [new file with mode: 0644]
cookiefile [new file with mode: 0644]
cygwin.h [new file with mode: 0644]
doc/USER_DOC_IS_WIDELY_OBSOLETED [new file with mode: 0644]
doc/changes.txt [new file with mode: 0644]
doc/gpl.html [new file with mode: 0644]
doc/ijbfaq.html [new file with mode: 0644]
doc/ijbman.html [new file with mode: 0644]
encode.c [new file with mode: 0644]
encode.h [new file with mode: 0644]
errlog.c [new file with mode: 0644]
errlog.h [new file with mode: 0644]
filters.c [new file with mode: 0644]
filters.h [new file with mode: 0644]
forward [new file with mode: 0644]
gateway.c [new file with mode: 0644]
gateway.h [new file with mode: 0644]
icons/denyrule.ico [new file with mode: 0644]
icons/ico00001.ico [new file with mode: 0644]
icons/ico00002.ico [new file with mode: 0644]
icons/ico00003.ico [new file with mode: 0644]
icons/ico00004.ico [new file with mode: 0644]
icons/ico00005.ico [new file with mode: 0644]
icons/ico00006.ico [new file with mode: 0644]
icons/ico00007.ico [new file with mode: 0644]
icons/ico00008.ico [new file with mode: 0644]
icons/icon1.ico [new file with mode: 0644]
icons/idle.ico [new file with mode: 0644]
icons/junkbust.ico [new file with mode: 0644]
imagelist [new file with mode: 0644]
jbsockets.c [new file with mode: 0644]
jbsockets.h [new file with mode: 0644]
jcc.c [new file with mode: 0644]
jcc.h [new file with mode: 0644]
junkbstr.txt [new file with mode: 0644]
junkbuster.1 [new file with mode: 0644]
junkbuster.init [new file with mode: 0644]
junkbuster.logrotate [new file with mode: 0644]
junkbuster.monthly [new file with mode: 0644]
junkbuster.weekly [new file with mode: 0644]
killpopup.c [new file with mode: 0644]
killpopup.h [new file with mode: 0644]
loadcfg.c [new file with mode: 0644]
loadcfg.h [new file with mode: 0644]
loaders.c [new file with mode: 0644]
loaders.h [new file with mode: 0644]
miscutil.c [new file with mode: 0644]
miscutil.h [new file with mode: 0644]
parsers.c [new file with mode: 0644]
parsers.h [new file with mode: 0644]
pcre/chartables.c [new file with mode: 0644]
pcre/config.h [new file with mode: 0644]
pcre/ltmain.sh [new file with mode: 0644]
pcre/pcre.c [new file with mode: 0644]
pcre/pcre.h [new file with mode: 0644]
pcre/pcre.in [new file with mode: 0644]
pcre/pcreposix.c [new file with mode: 0644]
pcrs.c [new file with mode: 0644]
pcrs.h [new file with mode: 0644]
popup [new file with mode: 0644]
project.h [new file with mode: 0644]
re_filterfile [new file with mode: 0644]
showargs.c [new file with mode: 0644]
showargs.h [new file with mode: 0644]
ssplit.c [new file with mode: 0644]
ssplit.h [new file with mode: 0644]
trust [new file with mode: 0644]
vc_junkbuster.dsp [new file with mode: 0644]
vc_junkbuster.dsw [new file with mode: 0644]
w32.aps [new file with mode: 0644]
w32.rc [new file with mode: 0644]
w32log.c [new file with mode: 0644]
w32log.h [new file with mode: 0644]
w32res.h [new file with mode: 0644]
w32rulesdlg.c [new file with mode: 0644]
w32rulesdlg.h [new file with mode: 0644]
w32taskbar.c [new file with mode: 0644]
w32taskbar.h [new file with mode: 0644]
win32.c [new file with mode: 0644]
win32.h [new file with mode: 0644]

diff --git a/Junkbuster Status.URL b/Junkbuster Status.URL
new file mode 100644 (file)
index 0000000..6c95de6
Binary files /dev/null and b/Junkbuster Status.URL differ
diff --git a/Makefile.in b/Makefile.in
new file mode 100644 (file)
index 0000000..8c670b8
--- /dev/null
@@ -0,0 +1,281 @@
+# Note:  Makefile is built automatically from Makefile.in
+#
+# $Id: Makefile.in,v 1.2 2001/05/13 22:04:51 administrator Exp $
+#
+# Written by and Copyright (C) 2001 the SourceForge
+# IJBSWA team.  http://ijbswa.sourceforge.net
+#
+# Based on the Internet Junkbuster originally written
+# by and Copyright (C) 1997 Anonymous Coders and 
+# Junkbusters Corporation.  http://www.junkbusters.com
+#
+# This program is free software; you can redistribute it 
+# and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at
+# your option) any later version.
+#
+# This program is distributed in the hope that it will
+# be useful, but WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.  See the GNU General Public
+# License for more details.
+#
+# The GNU General Public License should be included with
+# this file.  If not, you can view it at
+# http://www.gnu.org/copyleft/gpl.html
+# or write to the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# $Log: Makefile.in,v $
+#
+
+
+# define version (will be wired into the rpm.)
+VERSION_MAJOR = @VERSION_MAJOR@
+VERSION_MINOR = @VERSION_MINOR@
+VERSION_POINT = @VERSION_POINT@
+VERSION       = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_POINT)
+RPM_VERSION   = $(VERSION)
+
+# The version is currently specified in config.h, which is
+# written by "configure".
+#
+#VERSION_CFLAGS = -DVERSION_MAJOR=$(VERSION_MAJOR) \
+#                 -DVERSION_MINOR=$(VERSION_MINOR) \
+#                 -DVERSION_POINT=$(VERSION_POINT) \
+#                 -DVERSION="$(VERSION)"
+
+# Directories for "make install"
+DEST        = /etc/junkbuster
+SBIN_DEST   = @sbindir@
+MAN_DEST    = @mandir@
+
+# The flag "-mno-win32" can be used by Cygwin to emulate a un?x type install.
+# The flag "-mwindows -mno-cygwin" will cause Cygwin to use MingW32 for Win32 install.
+CYGWIN_FLAGS = @CYGWIN_FLAGS@
+
+# Need to define this in order to link PCRE statically under Win32
+# Also define under UNIX to use system PCRE headers.
+PCRE_WIN_FLAGS = @STATIC_PCRE_ONLY@-DSTATIC
+
+# Either/Or of these next two lines
+#DEBUG_CFLAGS = -g
+DEBUG_CFLAGS  = -O3
+
+# Solaris needs a special define:
+# FIXME: This is always commented out
+SOLARIS_FLAGS = @SOLARIS_ONLY@-D__EXTENSIONS__=1
+
+#  -DSTDC_HEADERS Now in config.h
+# Do we need  -DHAVE_STRING  ???
+CFLAGS = @CFLAGS@ @CPPFLAGS@ \
+         -D__MT__=1 -D__STDC__=1 $(SOLARIS_FLAGS) -DHAVE_STRING $(DEBUG_CFLAGS) \
+         -Ipcre $(CYGWIN_FLAGS) $(PCRE_WIN_FLAGS)
+
+PROGRAM = junkbuster@EXEEXT@
+CC      = gcc
+ECHO    = echo
+GZIP    = gzip
+INSTALL = cp -f
+LD      = gcc
+OBJEXT  = @OBJEXT@
+RM      = rm -f
+STRIP   = strip
+
+C_SRC  = encode.c errlog.c filters.c gateway.c jbsockets.c jcc.c \
+         killpopup.c loadcfg.c loaders.c miscutil.c parsers.c \
+         showargs.c ssplit.c
+         
+C_OBJS = $(C_SRC:.c=.$(OBJEXT))
+C_HDRS = $(C_SRC:.c=.h) project.h
+
+W32_SRC   = @WIN_ONLY@w32log.c w32rulesdlg.c w32taskbar.c win32.c
+W32_FILES = @WIN_ONLY@w32.res
+W32_OBJS  = @WIN_ONLY@$(W32_SRC:.c=.$(OBJEXT)) $(W32_FILES)
+W32_HDRS  = @WIN_ONLY@w32log.h w32res.h w32rulesdlg.h w32taskbar.h
+W32_LIB   = @WIN_ONLY@-lwsock32 -lcomctl32
+W32_INIS  = @WIN_ONLY@junkbstr.txt saclfile.txt sblock.txt scookie.txt  \
+            @WIN_ONLY@sforward.txt simage.txt spopup.txt strust.txt sregexp.txt
+
+PCRS_SRC     = @PCRS_ONLY@pcrs.c
+PCRS_OBJS    = $(PCRS_SRC:.c=.$(OBJEXT))
+PCRS_HDRS    = $(PCRS_SRC:.c=.h)
+
+PCRE_SRC     = @STATIC_PCRE_ONLY@pcre/get.c pcre/maketables.c pcre/study.c pcre/pcre.c
+PCRE_OBJS    = @STATIC_PCRE_ONLY@$(PCRE_SRC:.c=.$(OBJEXT))
+PCRE_HDRS    = @STATIC_PCRE_ONLY@pcre/config.h pcre/chartables.c pcre/internal.h pcre/pcre.h
+PCRE_LIB     = @LIBRARY_PCRE_ONLY@-lpcre
+
+# No REGEX:
+@NO_REGEX_ONLY@REGEX_SRC    =
+# Without PCRE:
+@GNU_REGEX_ONLY@REGEX_SRC    = gnu_regex.c
+# With PCRE:
+@PCRE_REGEX_ONLY@REGEX_SRC    = @STATIC_PCRE_ONLY@pcre/pcreposix.c
+
+REGEX_OBJS   = $(REGEX_SRC:.c=.$(OBJEXT))
+REGEX_HDRS   = $(REGEX_SRC:.c=.h)
+
+# Dependencies introduced by #include "project.h".
+PROJECT_H_DEPS = project.h $(REGEX_HDRS) $(PCRS_HDRS) @STATIC_PCRE_ONLY@pcre/pcre.h
+
+# Only need this on Solaris
+# FIXME: This is always commented out
+SOCKET_LIB   = @SOLARIS_ONLY@-lsocket -lnsl
+
+LIBS         = $(PCRE_LIB) $(W32_LIB) $(SOCKET_LIB)
+
+SRCS         = $(C_SRC)  $(W32_SRC)  $(PCRS_SRC)  $(PCRE_SRC)  $(REGEX_SRC)
+OBJS         = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS)
+HDRS         = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS)
+
+
+# -------------------------------------------------------------------------
+# Do not change anything below this line
+# And there should NOT be any targets above this line.
+# -------------------------------------------------------------------------
+LDFLAGS = $(DEBUG_CFLAGS) $(CYGWIN_FLAGS)
+
+
+all: $(PROGRAM)
+
+
+SUFFIX     = .txt:o
+.SUFFIXES  : .txt
+
+%.txt:
+       sed -e 's/$$//' < $< > $@
+
+inifiles: $(W32_INIS)
+
+junkbstr.txt: config
+       sed     -e 's!\(/etc/junkbuster\|.\)/blocklist!sblock.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/popup!spopup.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/cookiefile!scookie.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/forward!sforward.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/trust!strust.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/aclfile!sacl.txt!' \
+                       -e 's!\(/var/log/junkbuster\|.\)/jarfile!jar.log!' \
+                       -e 's!\(/var/log/junkbuster\|.\)/junkbuster\.log!junkbstr.log!' \
+                       -e 's!\(/etc/junkbuster\|.\)/imagelist!simage.txt!' \
+                       -e 's!\(/etc/junkbuster\|.\)/re_filterfile!sregexp.txt!' \
+                       -e 's!$$!!' \
+       < $< > $@
+
+saclfile.txt: aclfile
+sblock.txt: blocklist
+scookie.txt: cookiefile
+sforward.txt: forward
+simage.txt: imagelist
+spopup.txt: popup
+strust.txt: trust
+sregexp.txt: re_filterfile
+
+
+# -------------------------------------------------------------------------
+#
+# -------------------------------------------------------------------------
+rpm-dist:
+       @make clean
+# verify that i'm root needs to be done
+       cd .. && tar --exclude "ijb/CVS" -cvzf ijb.tar.gz ijb/
+# verify all version strings, FLAGS, etc. in the spec file
+       cat ../../SPECS/junkbuster.spec | sed 's/^Version:.*/Version: $(RPM_VERSION)/g' | sed 's/^Release:.*/Release: $(VERSION_POINT)/g' > /tmp/abc && cp -f /tmp/abc ../../SPECS/junkbuster.spec
+       cd ../../ && rpm -ba SPECS/junkbuster.spec
+       chmod -R a+r ../../RPMS
+       chmod -R a+r ../../SRPMS
+
+# -------------------------------------------------------------------------
+#
+# -------------------------------------------------------------------------
+win-dist:
+       $(ECHO) Not implemented.
+
+# -------------------------------------------------------------------------
+#
+# -------------------------------------------------------------------------
+tarball-dist:
+       @make clean
+       make $(PROGRAM) 
+#      remove all objects and create the tarball with the binary
+       cd .. && $(RM) ijb/a.out ijb/core ijb/*.$(OBJEXT) && tar --exclude "ijb/CVS" -cvzf ../ijb-distribution-$(VERSION).tar.gz ijb/
+       chmod a+r ../../ijb-distribution-$(VERSION).tar.gz
+       @$(ECHO) Tarball with binary created.
+
+# -------------------------------------------------------------------------
+#
+# -------------------------------------------------------------------------
+
+encode.@OBJEXT@:    encode.c    encode.h    config.h
+errlog.@OBJEXT@:    errlog.c    errlog.h    config.h $(PROJECT_H_DEPS) @WIN_ONLY@w32log.h
+filters.@OBJEXT@:   filters.c   filters.h   config.h $(PROJECT_H_DEPS) errlog.h encode.h gateway.h jbsockets.h jcc.h loadcfg.h parsers.h showargs.h ssplit.h @WIN_ONLY@win32.h 
+gateway.@OBJEXT@:   gateway.c   gateway.h   config.h $(PROJECT_H_DEPS) errlog.h jbsockets.h jcc.h loadcfg.h
+jbsockets.@OBJEXT@: jbsockets.c jbsockets.h config.h $(PROJECT_H_DEPS) filters.h
+jcc.@OBJEXT@:       jcc.c       jcc.h       config.h $(PROJECT_H_DEPS) errlog.h filters.h gateway.h jbsockets.h killpopup.h loadcfg.h loaders.h miscutil.h parsers.h showargs.h @WIN_ONLY@w32log.h win32.h
+killpopup.@OBJEXT@: killpopup.c killpopup.h config.h $(PROJECT_H_DEPS) jcc.h loadcfg.h
+loadcfg.@OBJEXT@:   loadcfg.c   loadcfg.h   config.h $(PROJECT_H_DEPS) errlog.h filters.h gateway.h jbsockets.h jcc.h killpopup.h loaders.h miscutil.h parsers.h showargs.h @WIN_ONLY@w32log.h win32.h
+loaders.@OBJEXT@:   loaders.c   loaders.h   config.h $(PROJECT_H_DEPS) errlog.h encode.h filters.h gateway.h jcc.h loadcfg.h miscutil.h parsers.h ssplit.h
+miscutil.@OBJEXT@:  miscutil.c  miscutil.h  config.h
+parsers.@OBJEXT@:   parsers.c   parsers.h   config.h $(PROJECT_H_DEPS) errlog.h encode.h filters.h jbsockets.h jcc.h loadcfg.h loaders.h miscutil.h showargs.h ssplit.h
+showargs.@OBJEXT@:  showargs.c  showargs.h  config.h $(PROJECT_H_DEPS) errlog.h encode.h gateway.h jcc.h loadcfg.h miscutil.h parsers.h
+ssplit.@OBJEXT@:    ssplit.c    ssplit.h    config.h miscutil.h
+
+# GNU regex
+gnu_regex.@OBJEXT@: gnu_regex.c gnu_regex.h config.h
+
+# PCRS
+pcrs.@OBJEXT@: pcrs.c pcre/pcre.h pcrs.h
+
+# PCRE
+pcre/get.@OBJEXT@:        pcre/get.c        pcre/config.h pcre/internal.h pcre/pcre.h
+pcre/maketables.@OBJEXT@: pcre/maketables.c pcre/config.h pcre/internal.h pcre/pcre.h
+pcre/pcre.@OBJEXT@:       pcre/pcre.c       pcre/config.h pcre/internal.h pcre/pcre.h pcre/chartables.c 
+pcre/pcreposix.@OBJEXT@:  pcre/pcreposix.c  pcre/config.h pcre/internal.h pcre/pcre.h pcre/pcreposix.h
+pcre/study.@OBJEXT@:      pcre/study.c      pcre/config.h pcre/internal.h pcre/pcre.h
+
+# An auxiliary program makes the PCRE default character table source
+
+pcre/chartables.c:   pcre/dftables
+               pcre/dftables >pcre/chartables.c
+
+pcre/dftables:       pcre/dftables.c pcre/maketables.c pcre/pcre.h pcre/internal.h pcre/config.h
+               $(CC) -o pcre/dftables $(CFLAGS) pcre/dftables.c
+
+# Win32
+w32log.@OBJEXT@: w32log.c errlog.h config.h jcc.h loadcfg.h miscutil.h pcre/pcre.h pcre/pcreposix.h pcrs.h project.h w32log.h w32rulesdlg.h w32taskbar.h win32.h
+w32rulesdlg.@OBJEXT@: w32rulesdlg.c config.h w32rulesdlg.h win32.h
+w32taskbar.@OBJEXT@: w32taskbar.c config.h w32log.h w32taskbar.h
+win32.@OBJEXT@: win32.c config.h jcc.h loadcfg.h pcre/pcre.h pcre/pcreposix.h pcrs.h project.h w32log.h win32.h
+
+w32.res: w32.rc w32res.h icons/denyrule.ico icons/ico00001.ico icons/ico00002.ico icons/ico00003.ico icons/ico00004.ico icons/ico00005.ico icons/ico00006.ico icons/ico00007.ico icons/ico00008.ico icons/icon1.ico icons/idle.ico icons/junkbust.ico config.h
+       windres -D__MINGW32__=0.2 -O coff -i $< -o $@
+
+
+$(PROGRAM): $(OBJS) $(W32_FILES)
+       $(LD) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
+
+clean:
+       $(RM) a.out core $(OBJS) $(W32_FILES) $(W32_INIS)
+
+clobber: clean
+       $(RM) $(PROGRAM) *.pdb *.lib *.exp TAGS junkbuster.log
+
+tags: $(SRCS) $(HDRS)
+       etags $(SRCS) $(HDRS)
+
+install: all
+       $(STRIP) $(PROGRAM)
+       $(INSTALL) $(PROGRAM) $(SBIN_DEST)
+       $(INSTALL) README README.TOO README.WIN README.re_filter README.cygwin $(DEST)
+       $(INSTALL) aclfile blocklist config cookiefile forward imagelist \
+               popup re_filterfile trust $(DEST)
+       # FIXME: On SuSE, these are not found.  Where do they go?
+       $(ECHO) junkbuster.logrotate junkbuster.monthly junkbuster.weekly
+       $(GZIP) -c junkbuster.1 > $(MAN_DEST)/junkbuster.1.gz
+       $(INSTALL) junkbuster.init /sbin/init.d/junkbuster
+
+
+## Local Variables:
+## tab-width: 3
+## end:
diff --git a/acconfig.h b/acconfig.h
new file mode 100644 (file)
index 0000000..edf5c08
--- /dev/null
@@ -0,0 +1,178 @@
+#ifndef _CONFIG_H
+#define _CONFIG_H
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/acconfig.h,v $
+ *
+ * Purpose     :  This file should be the first thing included in every
+ *                .c file.  (Before even system headers).  It contains 
+ *                #define statements for various features.  It was
+ *                introduced because the compile command line started
+ *                getting ludicrously long with feature defines.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and 
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: acconfig.h,v $
+ *
+ *********************************************************************/
+\f
+@TOP@
+
+/*
+ * Version number - Major (X._._)
+ */
+#undef VERSION_MAJOR
+
+/*
+ * Version number - Minor (_.X._)
+ */
+#undef VERSION_MINOR
+
+/*
+ * Version number - Point (_._.X)
+ */
+#undef VERSION_POINT
+
+/*
+ * Version number, as a string
+ */
+#undef VERSION
+
+/*
+ * Regular expression matching for URLs.  (Highly recommended).  If this is 
+ * not defined then you can ony use prefix matching.
+ */
+#undef REGEX
+
+/*
+ * Allow JunkBuster to be "disabled" so it is just a normal non-blocking
+ * non-anonymizing proxy.  This is useful if you're trying to access a
+ * blocked or broken site - just change the setting in the config file
+ * and send a SIGHUP (UN*X), or use the handy "Disable" menu option (Windows
+ * GUI).
+ */
+#undef TOGGLE
+
+/*
+ * Enables arbitrary content modification regexps
+ */
+#undef PCRS
+
+/*
+ * If a stream is compressed via gzip (Netscape specific I think), then
+ * it cannot be modified with Perl regexps.  This forces it to be 
+ * uncompressed.
+ */
+#undef DENY_GZIP
+
+/*
+ * Enables statistics function.
+ */
+#undef STATISTICS
+
+/*
+ * Bypass filtering for 1 page only
+ */
+#undef FORCE_LOAD
+
+/*
+ * Split the show-proxy-args page into a page for each config file.
+ */
+#undef SPLIT_PROXY_ARGS
+
+/*
+ * Kills JavaScript popups - window.open, onunload, etc.
+ */
+#undef KILLPOPUPS
+
+/*
+ * Support for webDAV - e.g. so Microsoft Outlook can access HotMail e-mail
+ */
+#undef WEBDAV
+
+/*
+ * Detect image requests automatically for MSIE.  Will fall back to
+ * other image-detection methods (i.e. USE_IMAGE_LIST) for other
+ * browsers.
+ *
+ * It detects the following header pair as an image request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: * / *
+ *
+ * And the following as a HTML request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *
+ *
+ * And no, I haven't got that backwards - IE is being wierd.
+ *
+ * Known limitations: 
+ * 1) If you press shift-reload on a blocked HTML page, you get
+ *    the image "blocked" page, not the HTML "blocked" page.
+ * 2) Once an image "blocked" page has been sent, viewing it 
+ *    in it's own browser window *should* bring up the HTML
+ *    "blocked" page, but it doesn't.  You need to clear the 
+ *    browser cache to get the HTML version again.
+ *
+ * These limitations are due to IE making inconsistent choices
+ * about which "Accept:" header to send.
+ */
+#undef DETECT_MSIE_IMAGES
+
+/*
+ * Use image list to detect images.
+ * If you do not define this then everything is treated as HTML.
+ *
+ * Whatever the setting of this value, DETECT_MSIE_IMAGES will 
+ * override it for people using Internet Explorer.
+ */
+#undef USE_IMAGE_LIST
+
+/*
+ * Allows the use of ACL files to control access to the proxy by IP address.
+ */
+#undef ACL_FILES
+
+/*
+ * Allows the use of trust files.
+ */
+#undef TRUST_FILES
+
+/*
+ * Allows the use of jar files to capture cookies.
+ */
+#undef JAR_FILES
+
+/*
+ * Use PCRE rather than GNU Regex
+ */
+#undef PCRE
+
+@BOTTOM@
+
+#endif /* _CONFIG_H */
diff --git a/aclfile b/aclfile
new file mode 100644 (file)
index 0000000..6a265a8
--- /dev/null
+++ b/aclfile
@@ -0,0 +1,102 @@
+#  Access Control List for the Internet Junkbuster 2.0
+#
+# Copyright 1997-8 Junkbusters Corp.  For distribution, modification and use
+# under the GNU General Public License. These files come with NO WARRANTY.
+# See http://www.junkbusters.com/ht/en/gpl.html or README file for details.
+#
+# Access controls are included at the request of some ISPs and systems
+# administrators, and are not usually needed by individual users.
+# Please note the warnings in the FAQ that this proxy is not
+# intended to be a substitute for a firewall or to encourage anyone
+# to defer addressing basic security weaknesses.
+# For details see http://www.junkbusters.com/ht/en/ijbman.html#aclfile
+
+# For this file to have any effect, the line beginning "aclfile"
+# must be commented in, with the name of this file following the word "aclfile"
+
+# If no access file is specified, the proxy talks to anyone that connects.
+# If an access file is specified, the proxy talks only to IP addresses
+# permitted somewhere in this file and not denied later in this file.
+#
+# Summary -- if using an ACL:
+#
+#  Client must have permission to receive service
+#  LAST match in ACL file wins
+#  Default behavior is to deny service
+#
+# Syntax for an entry in an Access Control List is:
+#
+# ACTION    SRC_ADDR[/SRC_MASKLEN]    [ DST_ADDR[/DST_MASKLEN] ]
+#
+# where the fields are
+#
+# ACTION      = "permit" | "deny"
+#
+# SRC_ADDR    = client hostname or dotted IP address
+# SRC_MASKLEN = number of bits in the subnet mask for the source
+#
+# DST_ADDR    = server or forwarder hostname or dotted IP address
+# DST_MASKLEN = number of bits in the subnet mask for the target
+#
+# field separator (FS) is whitespace (space or tab)
+#
+# IMPORTANT NOTE
+# ==============
+# If the junkbuster is using a forwarder or a gateway for a particular 
+# destination URL, the DST_ADDRR that is examined is the address of
+# the forwarder or the gateway and NOT the address of the ultimate target.
+# This is necessary because it may be impossible for the local
+# junkbuster to determine the address of the ultimate target
+# (that's often what gateways are used for).
+#
+# Here are a few examples to show how the ACL works:
+
+# localhost is OK --  no DST_ADDR implies that ALL destination addresses are OK
+# permit localhost
+
+# a silly example to illustrate:
+#
+# permit any host on the class-C subnet with junkbusters to go anywhere
+#
+# permit www.junkbusters.com/24
+#
+# except deny one particular IP address from using it at all
+#
+# deny      ident.junkbusters.com
+
+# another example
+#
+# You can specify an explicit network address and subnet mask.
+# Explicit addresses do not have to be resolved to be used.
+#
+# permit 207.153.200.0/24
+
+# a subnet mask of 0 matches anything, so the next line permits everyone.
+#
+# permit 0.0.0.0/0
+
+# Note:  you cannot say
+#
+# permit .org
+#
+# to allow all .org domains; every IP-address listed must resolve fully.
+
+# An ISP may want to provide a junkbuster that is accessible by "the world"
+# and yet restrict use of some of their private content to hosts on its
+# internal network (i.e. its own subscribers).  Say, for instance the
+# ISP owns the Class-B IP address block 123.124.0.0 (a 16 bit netmask).
+# This is how they could do it:
+
+# permit 0.0.0.0/0   0.0.0.0/0   # other clients can go anywhere 
+#                with the following exceptions:
+#
+# deny   0.0.0.0/0   123.124.0.0/16 # block all external requests for
+#                                         sites on the ISP's network
+#
+# permit 0.0.0.0/0   www.my_isp.com # except for the ISP's main web site
+#
+# permit 123.124.0.0/16 0.0.0.0/0   # the ISP's clients can go anywhere
+
+# Note that some hostnames may be listed with multiple IP addresses;
+# the primary value returned by gethostbyname() is used.
+#
diff --git a/amiga.c b/amiga.c
new file mode 100644 (file)
index 0000000..cd22898
--- /dev/null
+++ b/amiga.c
@@ -0,0 +1,234 @@
+const char amiga_rcs[] = "$Id: amiga.c,v 1.1 2001/05/13 21:57:06 administrator Exp $";
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/jcc.c,v $
+ *
+ * Purpose     :  Amiga-specific declarations.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: jcc.c,v $
+ *
+ *********************************************************************/
+\f
+
+#include "config.h"
+
+#ifdef AMIGA
+
+#include <stdio.h>
+#include <signal.h>
+
+#include "amiga.h"
+
+chonst char amiga_h_rcs[] = AMIGA_H_VERSION;
+
+unsigned long __stack = 20*1024;
+/* static char ver[] = "$VER: junkbuster " __AMIGAVERSION__ " (" __AMIGADATE__ ")"; */
+struct Task *main_task = NULL;
+int childs = 0;
+
+void serve(struct client_state *csp);
+
+__saveds ULONG server_thread(void)
+{
+   struct client_state *local_csp;
+   struct UserData UserData;
+   struct Task *me=FindTask(NULL);
+
+   Wait(SIGF_SINGLE);
+   local_csp=(struct client_state *)(me->tc_UserData);
+   me->tc_UserData=&UserData;
+   SocketBase=(APTR)OpenLibrary("bsdsocket.library",3);
+   if(SocketBase)
+   {
+      SetErrnoPtr(&(UserData.eno),sizeof(int));
+      local_csp->cfd=ObtainSocket(local_csp->cfd, AF_INET, SOCK_STREAM, 0);
+      if(-1!=local_csp->cfd)
+      {
+         Signal(main_task,SIGF_SINGLE);
+         serve((struct client_state *) local_csp);
+      } else {
+         local_csp->active = 0;
+         Signal(main_task,SIGF_SINGLE);
+      }
+      CloseLibrary(SocketBase);
+   } else {
+      local_csp->active = 0;
+      Signal(main_task,SIGF_SINGLE);
+   }
+   childs--;
+   return 0;
+}
+
+void amiga_exit(void)
+{
+   if(SocketBase)
+   {
+      CloseLibrary(SocketBase);
+   }
+}
+
+static struct SignalSemaphore memsem;
+static struct SignalSemaphore *memsemptr = NULL;
+static struct UserData GlobalUserData;
+
+void InitAmiga(void)
+{
+   main_task = FindTask(NULL);
+   main_task->tc_UserData = &GlobalUserData;
+
+   if (((struct Library *)SysBase)->lib_Version < 39)
+   {
+      exit(RETURN_FAIL);
+   }
+
+   signal(SIGINT,SIG_IGN);
+   SocketBase = (APTR)OpenLibrary("bsdsocket.library",3);
+   if (!SocketBase)
+   {
+      fprintf(stderr, "Can't open bsdsocket.library V3+\n");
+      exit(RETURN_ERROR);
+   }
+   SetErrnoPtr(&(GlobalUserData.eno),sizeof(int));
+   InitSemaphore(&memsem);
+   memsemptr = &memsem;
+
+   atexit(amiga_exit);
+}
+
+#ifdef __GNUC__
+#ifdef libnix
+/* multitaskingsafe libnix replacements */
+static void *memPool=NULL;
+
+void *malloc (size_t s)
+{
+   ULONG *mem;
+   LONG size = s;
+
+   if (size<=0)
+   {
+      return NULL;
+   }
+   if (!memPool)
+   {
+      if (!(memPool=CreatePool(MEMF_ANY,32*1024,8*1024)))
+      {
+         return NULL;
+      }
+   }
+   size += sizeof(ULONG) + MEM_BLOCKMASK;
+   size &= ~MEM_BLOCKMASK;
+   if (memsemptr)
+   {
+      ObtainSemaphore(memsemptr);
+   }
+   if ((mem=AllocPooled(memPool,size)))
+   {
+      *mem++=size;
+   }
+   if (memsemptr)
+   {
+      ReleaseSemaphore(memsemptr);
+   }
+   return mem;
+}
+
+void free (void *m)
+{
+   ULONG *mem = m;
+
+   if(mem && memPool)
+   {
+      ULONG size=*--mem;
+
+      if (memsemptr)
+      {
+         ObtainSemaphore(memsemptr);
+      }
+      FreePooled(memPool,mem,size);
+      if (memsemptr)
+      {
+         ReleaseSemaphore(memsemptr);
+      }
+   }
+}
+
+void *realloc (void *old, size_t ns)
+{
+   void *new;
+   LONG osize, *o = old;
+   LONG nsize = ns;
+
+   if (!old)
+   {
+      return malloc(nsize);
+   }
+   osize = (*(o-1)) - sizeof(ULONG);
+   if (nsize <= osize)
+   {
+      return old;
+   }
+   if ((new = malloc(nsize)))
+   {
+      ULONG *n = new;
+
+      osize >>= 2;
+      while(osize--)
+      {
+         *n++ = *o++;
+      }
+      free(old);
+   }
+   return new;
+}
+
+void __memCleanUp (void)
+{
+   if (memsemptr)
+   {
+      ObtainSemaphore(memsemptr);
+   }
+   if (memPool)
+   {
+      DeletePool(memPool);
+   }
+   if (memsemptr)
+   {
+      ReleaseSemaphore(memsemptr);
+   }
+}
+
+#define ADD2LIST(a,b,c) asm(".stabs \"_" #b "\"," #c ",0,0,_" #a )
+#define ADD2EXIT(a,pri) ADD2LIST(a,__EXIT_LIST__,22); \
+                        asm(".stabs \"___EXIT_LIST__\",20,0,0," #pri "+128")
+ADD2EXIT(__memCleanUp,-50);
+#elif !defined(ixemul)
+#error No libnix and no ixemul!?
+#endif /* libnix */
+#else
+#error Only GCC is supported, multitasking safe malloc/free required.
+#endif /* __GNUC__ */
+
+#endif /* def AMIGA */
diff --git a/amiga.h b/amiga.h
new file mode 100644 (file)
index 0000000..6f132d0
--- /dev/null
+++ b/amiga.h
@@ -0,0 +1,88 @@
+#ifdef AMIGA
+#ifndef _AMIGA_H
+#define _AMIGA_H
+#define AMIGA_H_VERSION "$Id: amiga.h,v 1.1 2001/05/13 21:57:06 administrator Exp $"
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/amiga.h,v $
+ *
+ * Purpose     :  Amiga-specific declarations.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: jcc.h,v $
+ *
+ *********************************************************************/
+\f
+
+#define _KERNEL
+#include <sys/socket.h>
+#undef _KERNEL
+
+#define __NOLIBBASE__
+#include <proto/socket.h>
+#undef __NOLIBBASE__
+
+#include <proto/exec.h>
+#include <exec/tasks.h>
+#include <proto/dos.h>
+#include <dos/dostags.h>
+
+struct UserData
+{
+       struct Library *sb;
+       int eno;
+};
+
+#define SocketBase ((struct Library *)(((struct UserData *)(FindTask(NULL)->tc_UserData))->sb))
+#define errno (((struct UserData *)(FindTask(NULL)->tc_UserData))->eno)
+#define select(a,b,c,d,e) WaitSelect(a,b,c,d,e,NULL)
+#define inet_ntoa(x) Inet_NtoA(x.s_addr)
+
+extern int childs;
+extern struct Task *main_task;
+
+void InitAmiga(void);
+void amiga_exit(void);
+void __memCleanUp(void);
+__saveds ULONG server_thread(void);
+
+#define exit(x)\
+{\
+   if(main_task)\
+   {\
+      if(main_task == FindTask(NULL))\
+      {\
+         while(childs) Delay(10*TICKS_PER_SECOND); exit(x);\
+      } else {\
+         CloseLibrary(SocketBase);\
+         childs--;\
+         RemTask(NULL);\
+      }\
+   }\
+}
+
+#define EINTR 0
+
+#endif /* ndef _AMIGA_H */
+#endif /* def AMIGA */
diff --git a/blocklist b/blocklist
new file mode 100644 (file)
index 0000000..7b48f3a
--- /dev/null
+++ b/blocklist
@@ -0,0 +1,1060 @@
+#
+# This is /etc/junkbuster/blocklist which was put here by a junkbuster rpm
+#
+# $Id: blocklist,v 1.3 2000/09/17 07:29:18 swa Exp $
+#
+# Last modified on Mon Sep 25 20:41:50 2000 (CEST)
+#
+# --------------------------------------------------------------------------
+#
+# Newest version is always available from 
+#
+#          http://www.waldherr.org/blocklist 
+#
+# Read http://www.waldherr.org/junkbuster/update.shtml on how to keep
+# this file up-to-date.
+#
+# This list is Copyright (c) Stefan Waldherr <stefan@waldherr.org>.
+#
+# No distribution of this list without acknowledgement of the author(s). 
+# No selling of thist list without prior written agreement.
+#
+# --------------------------------------------------------------------------
+#
+# Contributors are listed in the Hall Of Fame at
+#
+#        http://www.waldherr.org/junkbuster/hof.shtml
+#
+#  PS: I know that there are a ton of redundant regexps in this 
+#      file, but I haven't had time to fix them. Any help 
+#      appreciated.
+#
+# --------------------------------------------------------------------------
+#
+# For more detail, see http://www.junkbusters.com/ht/en/ijbfaq.html#blocking
+#
+# --------------------------------------------------------------------------
+#
+# Empty lines and lines beginning with a `#' are ignored.
+# The following line should be included to block use of telnet (port 23)
+:23
+
+# --------------------------------------------------------------------------
+#
+# generic paths
+#
+# --------------------------------------------------------------------------
+
+/*.*/(.*[-_.])?ads?[0-9]?(/|[-_.].*|\.(gif|jpe?g))
+/*.*/(.*[-_.])?count(er)?(\.cgi|\.dll|\.exe|[?/])
+/*.*/(ng)?adclient\.cgi
+/*.*/(plain|live|rotate)[-_.]?ads?/
+
+/*.*/(sponsor)s?[0-9]?/
+###/*.*/(sponsor|banner)s?[0-9]?/
+###/*.*/.*banner([-_]?[a-z0-9]+)?\.(gif|jpg)
+
+/*.*/_?(plain|live)?ads?(-banners)?/
+/*.*/abanners/
+/*.*/ad(sdna_image|gifs?)/
+/*.*/ad(server|stream|juggler)\.(cgi|pl|dll|exe)
+/*.*/adbanners/
+/*.*/adserver
+/*.*/adstream\.cgi
+/*.*/adv((er)?ts?|ertis(ing|ements?))?/
+/*.*/anzei(gen)?/?
+/*.*/ban[-_]cgi/
+/*.*/banner_?ads/
+/*.*/banner_?anzeigen
+/*.*/bannerimage/
+/*.*/banners?/
+/*.*/banners?\.cgi/
+/*.*/cgi-bin/centralad/getimage
+/*.*/images/addver\.gif
+/*.*/images/advert\.gif
+/*.*/images/marketing/.*\.(gif|jpe?g)
+/*.*/place-ads
+/*.*/popupads/
+/*.*/promobar.*
+/*.*/publicite/
+/*.*/randomads/.*\.(gif|jpe?g)
+/*.*/reklama/.*\.(gif|jpe?g)
+/*.*/reklame/.*\.(gif|jpe?g)
+/*.*/reklaam/.*\.(gif|jpe?g)
+/*.*/siteads/
+/*.*/sponsor.*\.gif
+/*.*/sponsors?[0-9]?/
+/*.*/ucbandeimg/
+/*.*/werb\..*
+/*.*/werbebanner/
+/*.*/werbung/.*\.(gif|jpe?g)
+/.*/adv\.      # www.telegraaf.nl
+/.*/advert[0-9]+\.jpg
+/.*bann\.gif
+/Media/Images/Adds/
+/_banner/
+/ad_images/
+/adgenius/
+/adimages/
+/*.*/ads/
+/*.*/ads\\
+/viewad/
+/adserve/
+/adverts/
+/annonser?/
+/bando/
+/bannerad/
+/bannerfarm/
+/bin/getimage.cgi/...\?AD
+/bin/nph-oma.count/ct/default.shtml
+/bin/nph-oma.count/ix/default.html
+/cgi-bin/getimage.cgi/....\?GROUP=
+/cgi-bin/nph-load
+/cgi-bin/webad.dll/ad
+/cwmail/acc\.gif
+/cwmail/amzn-bm1\.gif
+/db_area/banrgifs/
+/gif/teasere/
+/grafikk/annonse/
+/graphics/defaultAd/
+/grf/annonif
+/htmlad/
+/image\.ng/AdType
+/image\.ng/transactionID
+/images/.*/.*_anim\.gif # alvin brattli
+/ip_img/.*\.(gif|jpe?g)
+/marketpl*/
+/minibanners/
+/netscapeworld/nw-ad/
+/promotions/houseads/
+/rotads/ 
+/rotateads/
+/rotations/ 
+/torget/jobline/.*\.gif
+/viewad/
+/werbung/
+/worldnet/ad\.cgi
+/zhp/auktion/img/
+/cgi-bin/nph-adclick.exe/
+/*.*/Image/BannerAdvertising/
+/*.*/ad-bin/
+/*.*/adlib/server\.cgi
+/*.*/gsa_bs/gsa_bs.cmdl
+/autoads/
+/anz/pics/
+
+# for our finnish friends, by Kai Puolamaki <Kai.Puolamaki@iki.fi>
+/*.*/mainos/*.*/.*\.gif
+/*.*/mainos/*.*/.*\.jpe?g
+
+# more from a finnish friend Petri Haapio <pha@iki.fi>
+cgi.tietovalta.fi
+keltaisetsivut.fi/web/img/\.*gif
+haku.net/pics/pana\.*gif
+www.fi/guvat/\.*gif
+/*.*/(.*[-_.].*)?maino(kset|nta|s).*(/|\.(gif|html?|jpe?g|png))
+/*.*/(ilm(oitus)?|kampanja)(hallinta|kuvat?)(/|\.(gif|html?|jpe?g|png))
+
+# and even more from a finnish friend Hannu Napari <Hannu.Napari@hut.fi>
+194.251.243.50/cgi-bin/banner
+
+www.dime.net/ad
+www.iltalehti.fi/ad
+www.iltalehti.fi/ilmkuvat
+www.mtv3.fi/mainoskuvat
+
+# <jwz@jwz.org>
+/*.*/adfinity
+/*.*/[?]adserv
+/*.*/bizgrphx/
+/*.*/smallad2\.gif
+/*.*/ana2ad\.gif
+/*.*/adimg/
+/*.*/.*counter\.pl
+/*.*/spin_html/
+/*.*/images/topics/topicgimp\.gif
+discovery.com/.*banner_id
+/*.*/.*bannr\.gif
+cruel.com/images/
+idrink.com/frm_bottom.htm
+/*.*/.*pb_ihtml\.gif
+/*.*/ph-ad.*\.focalink\.com
+/cgi-bin/adjuggler
+
+/we_ba/ # hausfrauenseite.de *bwhahahaaaaa*
+
+# ms sucks !
+/.*(ms)?backoff(ice)?.*\.(gif|jpe?g)
+/.*(/ie4|/ie3|msie|sqlbans|powrbybo|activex|backoffice|explorer|netnow|getpoint|ntbutton|hmlink).*\.(gif|jpe?g)
+/.*activex.*(gif|jpe?g)
+/.*explorer?.(gif|jpe?g)
+/.*freeie\.(gif|jpe?g)
+/.*/ie_?(buttonlogo|static?|anim.*)?\.(gif|jpe?g)
+/.*ie_sm\.(gif|jpe?g)
+/.*msie(30)?\.(gif|jpe?g)
+/.*msnlogo\.(gif|jpe?g)
+/.*office97_ad1\.(gif|jpe?g)
+/.*pbbobansm\.(gif|jpe?g)
+/.*powrbybo\.(gif|jpe?g)
+/.*sqlbans\.(gif|jpe?g)
+/.*exc_ms\.gif
+/.*ie4get_animated\.gif
+/.*ie4_animated\.gif
+/.*n_iemap\.gif
+/.*ieget\.gif
+/.*logo_msnhm_*
+/.*mcsp2\.gif
+/.*msn2\.gif
+/.*add_active\.gif
+/.*n_msnmap\.gif
+/.*Ad00\.gif
+/.*s_msn\.gif
+/.*addchannel\.gif
+/.*adddesktop\.gif
+/.*/ns4\.gif
+/.*/v3sban\.gif
+/.*/?FPCreated\.gif
+/.*/opera35\.gif
+/.*/opera13\.gif
+/.*/opera_b\.gif
+/.*/ie_horiz\.gif
+/.*/ie_logo\.gif
+
+# ... and even more!
+/.*/favicon\.ico
+
+# generally useless information and promo stuff (commented out)
+#/*.*/(counter|getpcbutton|BuiltByNOF|netscape|hotmail|vcr(rated)?|rsaci(rated)?|freeloader|cache_now(_anim)?|apache_pb|now_(anim_)?button|ie_?(buttonlogo|static?|.*ani.*)?)\.(gif|jpe?g)
+
+/*.*/images/na/us/brand/
+/*.*/advantage\.(gif|jpg)
+/*.*/advanbar\.(gif|jpg)
+/*.*/advanbtn\.(gif|jpg)
+/*.*/biznetsmall\.(gif|jpg)
+/*.*/utopiad\.(gif|jpg)
+/*.*/epipo\.(gif|jpg)
+/*.*/amazon([a-zA-Z0-9]+)\.(gif|jpg)
+/*.*/bnlogo.(gif|jpg)
+/*.*/buynow([a-zA-Z0-9]+)\.(gif|jpg)
+
+/p/d/publicid
+
+
+# for the dutch folks by a dutch friend gertjan@west.nl
+/*.*/Advertenties/
+/.*./Adverteerders/
+netdirect.nl/nd_servlet/___
+
+# --------------------------------------------------------------------------
+#
+# specific servers
+#
+# --------------------------------------------------------------------------
+
+# the next two lines work 
+12.16.1.10/web_GIF
+12.16.1.10/~web_ani
+193.158.37.3/cgi-bin/impact
+193.210.156.114
+193.98.1.160/img
+194.221.183.222/mailsentlu
+194.221.183.223
+194.221.183.224
+194.221.183.225
+194.221.183.226
+194.221.183.227
+194.231.79.38
+195.124.124.56
+195.27.70.69
+195.30.94.21
+195.63.104.222//inbox
+195.63.104.222//log    # www.weltbild.de
+195.63.104.222//meld
+195.63.104.222//menu
+195.63.104.222/folderlu
+195.63.104.222/folderru
+195.63.104.222/inbox
+195.63.104.222/loginlu
+195.63.104.222/loginmu
+195.63.104.222/loginru
+195.63.104.222/logoutlu
+195.63.104.222/logoutmu
+195.63.104.222/logoutru
+195.63.104.61//inbox
+195.63.104.61//log     # www.weltbild.de
+195.63.104.61//meld
+195.63.104.61//menu
+195.63.104.61/inbox
+195.63.104.61/loginlu
+195.63.104.61/loginmu
+195.63.104.61/loginru
+195.63.104.61/logoutlu
+195.63.104.61/logoutmu
+195.63.104.61/logoutru
+199.78.52.10
+1st-fuss.com
+204.253.46.71:1977
+204.94.67.40/wc/
+205.153.208.93
+205.216.163.62
+205.217.103.58:1977
+206.165.5.162/images/gcanim\.gif
+206.221.254.181:80
+206.50.219.33
+207.137.96.35
+207.159.129.131/abacus
+207.159.135.72
+207.82.250.9
+207.87.15.234
+207.87.27.10/tool/includes/gifs/
+208.156.39.142
+208.156.39.144
+208.156.60.230
+208.156.60.234
+208.156.60.235
+209.1.112.252/adgraph/
+209.1.135.142:1971
+209.1.135.144:1971
+209.132.97.164/IMG/
+209.185.222.45
+209.185.222.60
+209.185.253.199
+209.207.224.220/servfu.pl 
+209.207.224.222/servfu.pl
+209.239.37.214/cgi-pilotfaq/getimage\.cgi
+209.297.224.220
+209.75.21.6
+209.85.89.183/cgi-bin/cycle\?host
+212.63.155.122/(banner|concret|softwareclub)
+216.15.157.34
+216.27.61.150
+216.49.10.236/web1000/
+247media.com
+62.144.115.12/dk/
+ICDirect.com/cgi-bin
+Shannon.Austria.Eu.net/\.cgi/
+WebSiteSponsor.de
+207.181.220.145
+213.165.64.42
+
+#
+# generic hosts (probably most effective)
+#
+ad*.*.*
+ad*.*.*.*
+*.ads.*.*
+banner*.*.*
+banner*.*.*.*
+
+*.admaximize.com
+*.imgis.com
+/*.*/*preferences.com*
+1ad.prolinks.de
+adwisdom.com
+akamaitech.net/.*/Banners/
+altavista.telia.com/av/pix/sponsors/
+amazon.com/g/associates/logos/
+annonce.insite.dk
+asinglesplace.com/asplink\.gif
+athand.com/rotation
+automatiseringgids.nl/gfx/advertenties/
+#avenuea.com/Banners/
+avenuea.com/view/
+badservant.guj.de
+befriends.net/personals/matchmaking\.jpg
+bizad.nikkeibp.co.jp
+bs.gsanet.com/gsa_bs/
+cash-for-clicks.de
+cda.at/customer/
+cgicounter.puretec.de/cgi-bin/
+ciec.org/images/countdown\.gif
+classic.adlink.de/cgi-bin/accipiter/adserver.exe
+click..wisewire.com
+clickhere.egroups.com/img/
+imagine-inc.com
+commonwealth.riddler.com/Commonwealth/bin/statdeploy\?[0-9]+
+customad.cnn.com
+dagbladet.no/ann-gif
+deja.com/jump/
+digits.com/wc/
+dino.mainz.ibm.de
+dn.adzerver.com/image.ad
+ds.austriaonline.at
+emap.admedia.net
+etrade.com/promo/
+eur.yimg.com/a/
+eur.a1.yimg.com/eur.yimg.com/a/
+us.a1.yimg.com/us.yimg.com/a/
+eurosponsor.de
+fastcounter.linkexchange.com
+flycast.com
+focalink.com/SmartBanner
+freepage.de/cgi-bin/feets/freepage_ext/.*/rw_banner
+freespace.virgin.net/andy.drake
+futurecard.com/images/
+gaia.occ.com/click.*
+globaltrack.com
+globaltrak.net
+go.com/cimages\?SEEK_
+gp.dejanews.com/gtplacer
+gtp.dejanews.com/gtplacer
+deja.com/gifs/onsale/
+hitbox.com 
+home.miningco.com/event.ng/.*AdID
+hurra.de
+hyperbanner.net
+icount.com/.*count
+image*.narrative.com/news/.*\.(gif|jpe?g)
+image.click2net.com
+image.linkexchange.com
+images.nytimes.com
+images.yahoo.com/adv/
+images.yahoo.com/promotions/
+imageserv.adtech.de
+img.web.de
+impartner.de/cgi-bin
+informer2.comdirect.de:6004/cd/banner2
+infoseek.go.com/cimages
+ins.at/asp/images/
+kaufwas.com/cgi-bin/zentralbanner\.cgi
+leader.linkexchange.com
+link4ads.com
+link4link.com
+linktrader.com/cgi-bin/
+logiclink.nl/cgi-bin/
+lucky.theonion.com/cgi-bin/oniondirectin\.cgi
+lucky.theonion.com/cgi-bin/onionimp\.cgi
+lucky.theonion.com/cgi-bin/onionimpin\.cgi
+m.doubleclick.net
+mailorderbrides.com/mlbrd2\.gif
+media.priceline.com
+mediaplex.com
+members.sexroulette.com
+messenger.netscape.com
+miningco.com/zadz/
+# movielink became moviefone
+moviefone.com/.*banner
+moviefone.com/.*newbutton
+moviefone.com/.*ad\.gif
+moviefone.com/.*mmail
+moviefone.com/.*poster\.gif
+moviefone.com/.*btyb
+moviefone.com/.*h_guy
+moviefone.com/.*h_showtick
+moviefone.com/.*h_aML
+moviefone.com/.*/m_
+moviefone.com/.*/icon_
+moviefone.com/.*/NF_.*back
+moviefone.com/.*/h_.*gif
+moviefone.com/media/imagelinks
+moviefone.com/media/imagelinks/MF.(ad|sponsor)
+moviefone.com/media/art
+mqgraphics.mapquest.com/graphics/Advertisements/
+netgravity.*
+newads.cmpnet.com
+news.com/cgi-bin/acc_clickthru
+ngadcenter.net
+ngserve.pcworld.com/adgifs/
+nol.at:81
+nrsite.com
+nytsyn.com/gifs
+offers.egroups.com
+pagecount.com
+ph-ad.*\.focalink.com
+preferences.com
+promotions.yahoo.com/
+pub.nomade.fr
+qsound.com/tracker/tracker.exe
+resource-marketing.com/tb/
+revenue.infi.net
+rtl.de/homepage/wb/images/
+schnellsuche.de/images/*
+shout-ads.com/cgibin/shout.php3
+sjmercury.com/advert/
+smartclicks.com/.*/smart(img|banner|host|bar|site)
+smh.com.au/adproof/
+spinbox1.filez.com
+static.wired.com/advertising/
+swiftad.com
+sysdoc.pair.com/cgi-sys/cgiwrap/sysdoc/sponsor\.gif
+t-online.de/home/040255162-001/*
+taz.de/taz/anz/
+tcsads.tcs.co.at
+teleauskunft.de/commercial/
+thecounter.com/id
+tm.intervu.net
+tvguide.com/rbitmaps/
+ubl.com/graphics/
+ubl.com/images/
+ultra.multimania.com
+ultra1.socomm.net
+uproar.com
+us.yimg.com/a/
+us.yimg.com/promotions/
+valueclick.com
+valueclick.net
+victory.cnn.com
+videoserver.kpix.com
+washingtonpost.com/wp-adv/
+webconnect.net/cgi-bin/webconnect.dll
+webcounter.goweb.de
+webserv.vnunet.com/ip_img/.*ban
+werbung.pro-sieben.de/cgi-bin
+whatis.com/cgi-bin/getimage.exe/
+www..bigyellow.com/......mat.*
+www.adclub.net
+www.addme.com/link8\.gif
+www.aftonbladet.se/annons
+www.americanpassage.com/
+www.angelfire.com/in/twistriot/images/wish4\.gif
+www.bizlink.ru/cgi-bin/irads\.cgi
+www.blacklightmedia.com/adlemur
+www.bluesnews.com/flameq\.gif
+www.bluesnews.com/images/ad[0-9]+\.gif
+www.bluesnews.com/images/gcanim3\.gif
+www.bluesnews.com/images/throbber2\.gif
+www.bluesnews.com/miscimages/fragbutton\.gif
+www.businessweek.com/sponsors/
+www.canoe.ca/AdsCanoe/
+www.cdnow.com/MN/client.banners
+www.clickagents.com
+www.clickthrough.ca
+www.clicmoi.com/cgi-bin/pub\.exe
+www.dailycal.org/graphics/adbanner-ab\.gif
+www.detelefoongids.com/pic/[0-9]*
+www.dhd.de/CGI/werbepic
+www.dsf.de/cgi-bin/site_newiac.adpos
+www.firsttarget.com/cgi-bin/klicklog.cgi
+www.forbes.com/forbes/gifs/ads
+www.forbes.com/tool/includes/gifs/
+www.fxweb.holowww.com/.*\.cgi
+www.geocities.com/TimesSquare/Zone/5267/
+www.goto.com/images-promoters/
+www.handelsblatt.de/hbad
+www.hotlinks.de/cgi-bin/barimage\.cgi
+www.infoseek.com/cimages
+www.infoworld.com/pageone/gif
+www.isys.net/customer/images
+www.javaworld.com/javaworld/jw-ad
+www.kron.com/place-ads/
+www.leo.org/leoclick/
+www.linkexchange.ru/cgi-bin/erle\.cgi
+www.linkstation.de/cgi-bin/zeige
+www.linux.org/graphic/miniature/
+www.linux.org/graphic/square/
+www.linux.org/graphic/standard/
+www.luncha.se/annonsering
+www.mediashower.com
+www.ml.org/gfx/spon/icom/
+www.ml.org/gfx/spon/wmv
+www.musicblvd.com/mb2/graphics/netgravity/
+nedstat.nl/cgi-bin/
+www.news.com/Midas/Images/
+www.newscientist.com/houseads
+www.nextcard.com/affiliates/
+www.nikkeibp.asiabiztech.com/image/NAIS4\.gif
+www.nordlys.no/imaker/.*/.*/.*/.....\.gif      # alvin brattli
+www.nordlys.no/imaker/.*/.*/.*/..003           # alvin brattli
+www.oanda.com/server/banner
+omdispatch.co.uk
+www.oneandonlynetwork.com
+www.page2page.de/cgi-bin/
+www.prnet.de/.*/bannerschnippel/.*\.(gif|jpe?g)
+www.promptsoftware.com/marketing/
+#www.reklama.ru/cgi-bin/banners/
+www.riddler.com/sponsors/
+www.rle.ru/cgi-bin/erle\.cgi
+www.rock.com/images/affiliates/search_black\.gif
+www.rtl.de/search/.*kunde
+#www.search.com/Banners
+www.sfgate.com/place-ads/
+www.shareware.com/midas/images/borders-btn\.gif
+#www.sjmercury.com/products/marcom/banners/
+www.smartclicks.com:81
+www.sol.dk/graphics/portalmenu
+www.sponsornetz.de/jump/show.exe
+www.sponsorpool.net
+www.sunworld.com/sunworldonline/icons/adinfo.sm\.gif
+www.swwwap.com/cgi-bin/
+www.taz.de/~taz/anz/
+www.telecom.at/icons/.*film\.(gif|jpe?g)
+www.theonion.com/bin/
+www.topsponsor.de/cgi-bin/show.exe
+www.ugo.net
+www.ugu.com/images/EJ\.gif
+www.warzone.com/pics/banner/
+www.warzone.com/wzfb/ads.cgi
+www.webpeep.com
+www.websitepromote.com/partner/img/
+www.winjey.com/onlinewerbung/*\.gif
+www.wishing.com/webaudit
+www.www-pool.de/cgi-bin/banner-pool
+www2.blol.com/agrJRU\.gif
+www3.exn.net:80
+yahoo.com/CategoryID=0
+yahoo.de/adv/images
+~cpan.valueclick.com
+~www.hitbox.com
+
+#swa
+www.bannerland.de/click.exe
+*.cyberclick.net
+*.eu-adcenter.net/
+www.web-stat.com
+www.slate.com/snav/
+www.slate.com/redirect/
+www.slate.com/articleimages/
+usads.imdb.com
+www.forbes.com/tool/images/frontend/
+www.zserver.com
+www.spinbox.com
+pathfinder.com/shopping/marketplace/images/
+/*.*/adbanner*
+/*.*/adgraphic*
+static.wired.com/images
+perso.estat.com/cgi-bin/perso/
+dinoadserver1.roka.net
+fooladclient*.fool.com
+affiliate.aol.com/static/
+cybereps.com:8000
+iadnet.com
+orientserve.com
+wvolante.com
+findcommerce.com
+smartage.com
+
+# www.sunday-times.co.uk
+www.sunday-times.co.uk/standing/newsint/ticker
+
+# Für Germany.Net-User: Germany.Net (fast) banner- u. grafikfrei!
+germany.net/gebu-frei\.gif
+germany.net/bilder/menue/leiste\.gif
+germany.net/bilder/gn_logos/*
+germany.net/bilder/90x90/*
+germany.net/banner-homepage/*
+germany.net/downloadshop/*
+germany.net/bilder/action/promopoly/germanynet/basisdienste/hilfe/*
+
+# Block as much of GeoCities as possible
+# All geocities-owned images
+www.geocities.com/images
+www.geocities.com/MemberBanners/live/
+pic.geocities.com/images
+# And the popup (it still pops up, but does not eat up precious bandwidth)
+#www.geocities.com/ad_container/pop.html # already fixed by other regexp
+
+# from corion@informatik.uni-frankfurt.de
+sam.songline.com/@
+img.getstats.com/
+#ads.xmonitor.net/xadengine.cgi # fixed by above regexp
+# Also block the japanese geocities popups
+www.geocities.co.jp/images
+# Also block the come.to, surf.to etc. popups
+v3.come.to/pop.asp
+
+# Also block the xoom stuff.
+xb.xoom.com
+home.talkcity.com/homepopup.html.*
+
+# Max Maischein <max.maischein@econsult.de> again ...
+# Halflife.net uses WON banners
+# Banners from Freeserve
+#banner.freeservers.com/cgi-bin/fs_adbar # fixed by above regexp
+# And those nasty va-popups !
+/.*/?va_banner.html
+# And an all-around hit against advert*.jpg
+/.*/advert[0-9]+\.jpg
+# And yet another Internet Explorer gif ...
+/.*/ie_horiz\.gif
+# Some uninteresting buttons I think...
+mircx.com/images/buttons/
+services.mircx.com/.*\.gif
+# Ooops - UserFriendly (Iambe) has a banner that gets eaten ...
+~www.userfriendly.org/images/banners/banner_dp_heart\.gif
+# Easyspace - yet another "free disk space" provider with <yuck> banner popups
+www.easyspace.com/(fpub)?banner.html
+www.easyspace.com/100\.gif
+# Some russian banner exchanges
+banner.ricor.ru/cgi-bin/banner.pl
+#www.bizlink.ru/cgi-bin/irads.cgi # already fixed by other regexp
+stx9.sextracker.com/stx/send/
+# And even more of geocities :
+www.geocities.com/pictures/
+# Gaah - www.angelfire.com - another webspace provider with popups
+angelfire.com/sys/download.html
+# Gamasutra.com uses this ad provider
+sally.songline.com/@
+
+# Eule.de (search engine)
+# maybe images.eule.de as a whole...
+www.eule.de/cgi-bin/
+images.eule.de/comdirect\.gif 
+images.eule.de/wp\.gif
+aladin.de/125_1\.gif
+images.eule.de/neu/books\.gif
+
+# --------------------------------------------------------------------------
+#
+# some images
+#
+# --------------------------------------------------------------------------
+
+# some images on cnn's website just suck!
+/.*cnnstore\.gif
+/.*book.search\.gif
+/.*cnnpostopinionhome.\.gif
+/.*custom_feature\.gif
+/.*explore.anim.*gif
+/.*infoseek\.gif
+/.*pathnet.warner\.gif
+/.*images/cnnfn_infoseek\.gif
+/.*images/pathfinder_btn2\.gif
+/.*img/gen/fosz_front_em_abc\.gif
+/.*img/promos/bnsearch\.gif
+/.*navbars/nav_partner_logos\.gif
+/BarnesandNoble/images/bn.recommend.box.*
+/digitaljam/images/digital_ban\.gif
+/hotstories/companies/images/companies_banner\.gif
+/markets/images/markets_banner\.gif
+/ows-img/bnoble\.gif
+/ows-img/nb_Infoseek\.gif
+cnn.com/images/custom/totale\.gif
+cnn.com/images/lotd/custom.wheels\.gif
+cnn.com/images/.*/by/main.12\.gif
+cnn.com/images/.*/find115\.gif
+cnn.com/.*/free.email.120\.gif
+cnnfn.com/images/left_banner\.gif
+focus.de/A/AF/AFL/
+www.cnn.com/images/.*/bn/books\.gif
+www.cnn.com/images/.*/pointcast\.gif
+www.cnn.com/images/.*/fusa\.gif
+cnn.com/images/.*/start120\.gif
+images.cnn.com/SHOP/
+/.*by/main\.gif
+/.*gutter117\.gif
+/.*barnes_logo\.gif
+# the / indicates the beginning of the path (and no longer the FQDN)
+/.*nbclogo\.gif
+/.*microdell\.gif
+/.*secureit\.gif
+
+g.deja.com/gifs/(q|us)west_120x120\.gif
+
+#
+/gif/buttons/banner_.*
+/gif/buttons/cd_shop_.*
+/gif/cd_shop/cd_shop_ani_.*
+
+#altavista
+/av/gifs/av_map\.gif
+/av/gifs/av_logo\.gif
+/av/gifs/new/ns\.gif
+altavista.com/i/valsdc3\.gif
+jump.altavista.com/gn_sf
+
+# tucows
+tucows.*.*/images/locallogo\.gif
+#tucows.dsuper.net/images/locallogo\.gif
+
+#
+mt_freshmeat\.jpg
+
+# simpliemu.hypermart.net/frames.html
+go2net.com/mgic/adpopup
+go2net.com/metaspy/images/exposed\.gif
+go2net.com/metaspy/images/ms_un\.gif
+
+#
+www.cebu-usa.com/cwbanim1\.gif
+www.cebu-usa.com/Connection\.jpg
+www.cebu-usa.com/phonead\.gif
+www.cebu-usa.com/ban3\.jpg
+www.cebu-usa.com/tlban\.gif
+www.cebu-usa.com/apwlogo1\.gif
+www.cebu-usa.com/rose\.gif
+
+# fnet
+www.fnet.de/img/geldboerselogo\.jpg
+
+# hirsch@mathcs.emory.edu
+/images/getareal2\.gif
+
+www.assalom.com/aziza/logos/cniaffil\.gif
+www.assalom.com/aziza/logos/4starrl1\.gif
+www.phantomstar.com/images/media/m1\.gif
+
+#
+wahlstreet.de/MediaW\$/tsponline\.gif
+wahlstreet.de/MediaW\$/dzii156x60\.gif
+wahlstreet.de/MediaW\$/etban156x60_2_opt2\.gif
+
+# linuxtoday.com
+/pics/gotlx1\.gif
+/pics/getareal1\.gif
+/pics/amzn-b5\.gif
+/ltbs/cgi-bin/click.cgi
+linuxtoday.com/ltbs/pics/
+
+# Geocities popups
+/ad[-_]container/
+/include/watermark/v2/
+
+# Reinier Bikker <R.P.Bikker@phys.uu.nl>
+# Banner.xxLINK.nl/
+
+# Mark Lutz <luma@nikocity.de>
+/.*/*werb.*\.(gif|jpe?g) # hope that's not to restrictive
+
+#Free Yellow thing at bottom of pages (HereticPC)
+www.freeyellow.com/images/powerlink5a\.gif
+www.freeyellow.com/images/powerlink5b\.gif
+www.freeyellow.com/images/powerlink5c\.gif
+www.freeyellow.com/images/powerlink5d\.gif
+www.freeyellow.com/images/powerlink5e\.gif
+
+#HereticPC
+www.eads.com/images/refbutton\.gif
+www.fortunecity.com/console2/newnav/*
+www.goldetc.net/search\.gif
+www.cris.com/~Lzrdking/carpix/cars3-le\.gif
+www.justfreestuff.com/scott\.gif
+www.cyberthrill.com/entrance\.gif
+secure.pec.net/images/pec69ani\.gif
+www.new-direction.com/avviva\.gif
+internetmarketingcenter\.gif
+www.new-direction.com/wp-linkexchange-loop\.gif
+www.new-direction.com/windough\.gif
+www.digitalwork.com/universal_images/affiliate/dw_le_3\.gif
+service.bfast.com/bfast/click/*
+www.new-direction.com/magiclearning\.gif
+www.new-direction.com/mailloop\.gif
+
+www.free-banners.com/images/hitslogo\.gif
+rob.simplenet.com/dyndns/fortune5\.gif
+nasdaq-amex.com/images/bn_ticker\.gif
+
+#
+# navilor@hotmail.com
+#
+#
+# wayne@staff.msen.com
+#
+a*.*.*.yimg.com/([0-9]*|\/)*us.yimg.com/*
+ad.doubleclick.net
+www.dnps.com/ads
+www.realtop50.com/cgi-bin/ad
+~a*.*.*.yimg.com/([0-9]|\/)*us.yimg.com/i/*
+
+#
+www.yacht.de/images/(my_ani|eissingani|chartertrans|fum|schnupper|fysshop|garmin)\.gif
+www.sponsorweb.de/web-sponsor/nt-bin/show.exe
+
+#
+# Club-internet pops up a complain if you refuse cookie (still pops up...)
+perso.club-internet.fr/html/Popup/popup_frame_nocookie.html
+perso.club-internet.fr/pagesperso/popup_nocookie.html
+
+gmx.net/images/newsbanner/
+cash4banner.de
+
+quicken.lexware.de/images/us7-468x60.gif
+/img/special/chatpromo\.gif
+www.travelocity.com/images/promos/
+
+# wonder that that does...
+p01.com/1x1.dyn
+
+/*.*/phpAds/viewbanner.php
+/*.*/phpAds/phpads.php
+
+www.linux-magazin.de/banner    
+comtrack.comclick.com
+click-fr.com
+iac-online.de/filler
+
+media.interadnet.com
+stat.www.fi/cgi-bin
+/cgi/banners.cgi
+ads-digi.sol.no
+fp.buy.com
+disneystoreaffiliates.com
+
+powerwork.mobile.de/cgi-bin/getimage\.cgi
+
+
+
+####################################################
+# Jon's addition:
+#
+# Register ads
+#www.theregister.co.uk/media/155\.gif
+www.theregister.dealtime.co.uk/BannerIn/
+#www.theregister.co.uk/media/SearchDomainRed\.gif
+#www.theregister.co.uk/media/ByDomainbusterRed\.gif
+#www.theregister.co.uk/media/454\.gif
+#www.theregister.co.uk/media/461\.gif
+#www.theregister.co.uk/media/dealtime-lh\.gif
+# Ad target:
+www.domainbuster.com/cgi-bin/domainbuster/dpro\.pl
+
+#www.theregister.co.uk/media/.*\.swf
+#www.theregister.co.uk/media/.*\.js
+
+# get agressive:
+www.theregister.co.uk/media/
+
+# Dilbert:
+www.dilbert.com/comics/dilbert/images/.*_140x800.*\.gif
+
+# stattrack.com
+# Uses URL: http://www.stattrack.com/cgi-bin/stats/image.cgi
+/cgi-bin/stats/
+# And loads JavaScript from http://www.stattrack.com/stats/code
+www.stattrack.com/stats/
+
+#GeoCities crap
+##geo.yahoo.com/serv
+##visit.geocities.com/visit.gif
+*.*.*.yimg.com/*/www.geocities.com/js_source
+#http://us.toto.geo.yahoo.com/toto?s=76001086
+##*.toto.geo.yahoo.com
+
+# Nuke GeoCities rubbish
+*.*.geo.yahoo.com
+*.geo.yahoo.com
+geo.yahoo.com
+visit.geocities.com
+*.*.*.yimg.com/.*/www.geocities.com/
+
+#http://counter16.bravenet.com/counter.php
+counter*.*.*
+
+#http://stat.cybermonitor.com/7emezone_p?1707_USdvd
+stat*.*.*
+
+#http://members.tripod.com/adm/popup/.....
+members.tripod.com/adm/popup/
+
+#This is the worst ad idea ever!  Bye bye!
+#count.exitexchange.com/exit/1100661
+#count.exitexchange.com/clients/navbar.html
+#(used in http://skyhivisuals.tripod.com/malfunctions_.htm)
+exitexchange.com
+
+#SourceForge ads.
+sfads.osdn.com
+
+#Crap trapping sites
+webhideout.com
+
+####################################################
+
+
+
+#
+# some regexps are simply too aggressive ...
+#
+# equalizer to /*.*(.*[-_.])?ads?[0-9]?(/|[-_.].*|.(gif|jpe?g)) 
+# or other regexps
+#
+#
+~adamwhone.co.uk
+~adsl.tin.it
+~stsci.edu
+~tgs.com
+~sun.com
+~povray.org
+~admin.*.*
+~admin.*.*.*
+~ad.siemens.de             # SIEMENS Automation & Drives
+~add-url.altavista.com
+~adis.on.ca
+~address*.*.*
+~address*.*.*.*
+~add*.*.*
+~add*.*.*.*
+~adu*.*.*
+~adu*.*.*.*
+~advice.*.*
+~advice.*.*.*
+
+# univ. don't advertise, do they :-)
+~*.*.edu
+~*.*.*.edu
+~www.ugu.com/sui/ugu/adv
+~adfa.edu.au
+~adsl*.*.*
+
+~clubs.yahoo.com/clubs
+~edit.my.yahoo.com/config/show_identity
+~www.ix.de/newsticker/data/ad
+~www.heise.de/newsticker/data/ad
+~www.careernet.de/anzeige
+~www.careernet.de/bewerber/stellenanzeigen
+~www.baumgartner.de/stellenmarkt/anzeigen
+~www.dspartner.de/Anzeigen
+~www.aws-jobs.de/Anzeigen
+~www.jobware.de/.*/anzeigen/
+~www.jobworld.de/bilder/
+~www.cnn.com/TECH/computing/.*/internet.ads/
+~www.financial.de/shop/
+~gnn.de/.*\.html
+~www.auktionen.de
+
+~194.221.152.2/phptelefontmp
+~harvard.edu/images/banner/
+
+~adswww.harvard.edu
+~www.dhd.de/CGI/anzeigen/
+
+~ads.web.de/web/
+~img.web.de/web/img/
+
+~www.segel.de/menu/bilder/anzeigen\.gif
+~www.corel.com/graphics/banners/
+~www.software.ibm.com/ad/
+~www.omg.org/docs/ad/
+
+~sperrmuell.de/scripts/anzeigen
+www.freenet.de/index.html
+www.01019freenet.de/index.html
+~www.freenet.de/freenet/
+~www.01019freenet.de/freenet/
+~webfactory.de/anzeigen.php
+~www.cdmag.com
+~www.internatif.org/bortzmeyer/debian/sponsor/
+~hp.com
+
+~www.software.hosting.ibm.com/ad/
+~www.ibm.com/software/ad/
+~brickshelf.com
+
+~www.debian.org/Pics/banner-blue\.gif
+~www.linux.de/pics/Nachrichten_banner\.gif
+~www.werbekurier.de
+
+~finder.shopping.yahoo.com/shop/
+~national.com/pf
+~mozilla.org
+~eidos.de
+~e-sheep.com
+~punkassgear.com
+~mozilla.org
+~mozillazine.org
+~adbusters.org
+~annoy.com
+~consumer-direct.com
+~www.iez-auktion.de
+~ibm.com
+~sgi.com
+
+# my banking stuff => no ads. last regexp for fast access :-)
+~comdirekt.de
+~comdirect.de
+~teledata.de
+
+
+~msdn.microsoft.com
+
+# do not forget newline at the end of this file!!!
+
diff --git a/config b/config
new file mode 100644 (file)
index 0000000..3ba741b
--- /dev/null
+++ b/config
@@ -0,0 +1,207 @@
+#  Sample Configuration file for the Internet Junkbuster 2.0
+
+#
+# $Id: config,v 1.2 2001/04/30 03:05:11 rodney Exp $
+#
+
+#
+#
+# Copyright 1997-8 Junkbusters Corp.  For distribution, modification and use
+# under the GNU General Public License. These files come with NO WARRANTY.
+# See http://www.junkbusters.com/ht/en/gpl.html or README file for details.
+#
+# When starting the proxy, give the name of this file as an argument.
+# Any changes made to this file are *not* automatically loaded; you have 
+# to stop and restart the proxy.
+
+# For information see http://www.junkbusters.com/ht/en/ijbman.html
+# or the documentation that came with the release
+
+# Lines beginning with a # character are comments; they are ignored.
+# Many example lines are provided here commented out
+
+# the blockfile contains patterns to be blocked by the proxy
+blockfile      ./blocklist # comments are OK here, too
+
+# the imagefile contains patterns to detect blocked images
+imagefile      ./imagelist
+
+# the popfile contains patterns of servers where javascript popups are disabled
+#
+# if the next line is not commented out, all javascript popups from the sites 
+# that match the patterns in popup will be blocked
+# popupfile     ./popup
+
+# File containing content modification rules
+#re_filterfile   ./re_filterfile
+
+# Uncomment to filter *all* traffic. Default is to
+# filter only if we wouldn't send a cookie either.
+#
+#re_filter_all
+
+
+# the cookiefile contains patterns to specify the cookie management policy
+#
+cookiefile     ./cookiefile
+
+# the logfile is where all logging and error messages are written
+#
+logfile        ./junkbuster.log
+
+# the jarfile is where cookies can be stored
+#
+#jarfile    ./jarfile
+
+# the forwardfile defines domain-specific routing
+#
+#forwardfile    ./forward
+
+# file which lists and into which trusted domains are written
+#
+#trustfile     ./trust
+# files specify locations of "for information about trusted referers, see.."
+# multiple trust_info_url lines are OK
+#
+# trust_info_url     http://internet.junkbuster.com/
+# trust_info_url     http://www.yoursite.com/our_trust_policy.html
+#
+
+# The access control list file can be used to restrict IP addresses
+# that are permitted to use the proxy (see warnings in the FAQ).
+#
+#aclfile ./aclfile
+
+# add an "X-Forwarded-For:" specification to each request header
+#
+#add-forwarded-header
+
+# if logging cookies into a jarfile, and no other wafers were
+# explicity set, then by default a vanilla wafer is sent with
+# each request.
+#
+# setting 'suppress-vanilla-wafer' stops this vanilla wafer from
+# being sent.
+#
+suppress-vanilla-wafer
+
+# add these wafers to each request header
+# multiple wafer lines are OK
+#
+#wafer    NOTE=Like most people, I want my browsing to be anonymous.
+#wafer    WARNING=Please do not attempt to track me.
+
+# Anything can be added to the request headers. Please don't litter.
+# multiple add-header lines are OK
+#
+#add-header     Forwarded: by http://stay-out-of-my-backyard.net
+#add-header    Forwarded: by http://pro-privacy-isp.net
+#add-header    Proxy-Connection: Keep-Alive
+
+# listen-address specifies where the Junkbuster will listen for connections
+# Specifying a port is optional; if unspecified the defaults is 8000.
+# Before Version 2.0.2 the default was to bind to all IP addresses (INADDR_ANY)
+# This has been restricted to localhost to avoid unintended security breaches.
+# To open the proxy to all, uncomment the following line:
+#listen-address      :8000
+# other example usage:
+#listen-address      124.207.250.245:8080
+# to explicitly state what is now the default:
+#listen-address      localhost
+# or equivalently:
+listen-address    127.0.0.1:8000
+
+# user-agent specifies treatment of the "User-Agent:" (and "UA-*:") header(s)
+# default: Forge the "User-Agent:" 
+# 'text' : Always send <text> as the "User-Agent:"
+# .      : Pass the "User-Agent:" unchanged
+# @      : Pass the "User-Agent:" if the server is in the cookie file,
+#          forge the "User-Agent:" otherwise
+#user-agent     @
+
+# note: Russian browsers may be confused if user agent misidentifies
+# the operating system (Mac vs Windows); see FAQ
+user-agent    .
+
+# referer specifies treatment of the "Referer:" header
+# New option by "Andreas S. Oesterhelt" <oes@paradis.rhein.de>
+#
+# default: Kill the referrer-header from the client
+# 'text' : Always send <text> as the referrer
+# .      : Pass the referrer unchanged
+# @      : Pass the referrer if the server is in the cookie file,
+#          kill the referrer otherwise
+# §      : Pass the referrer if the server is in the cookie file,
+#       send a forged referrer that points to the root-diretory URL
+#       of the current request otherwise
+referer     §
+
+# from specifies value to be subsituted if browser provides a "From:" header
+#
+#from        spam-me-senseless@sittingduck.net
+
+# tinygif allows you to change the appearance of blocked images
+#
+# tinygif      0  # Show a "broken icon"
+# tinygif      1  # Show a GIF of one transparent pixel
+# tinygif      2  # Show a GIF with the word "JUNKBUSTER"
+tinygif     2
+# tinygif  3 http://localhost/1x1.gif   # Temporary redirect to this URL
+
+# Andrew <anw@tirana.freewire.co.uk> added
+# The following can be used to suppress display of the block lists when the
+# page http://x.x/show-proxy-args is displayed. With a long block list this
+# accelerates loading of the configuration page and also hides the contents of
+# the block lists (for whatever reason). Maintainers of junkbuster proxies for 
+# multiple use can specify a message for any use who wants to know what is in
+# these files.
+#
+#suppress-blocklists Contact sysadmin@example.com for details.
+# suppress-blocklists
+
+# debug sets the level of debugging information to log in the logfile
+#
+# debug         1 # GPC  = show each GET/POST/CONNECT request
+# debug         2 # CONN = show each connection status
+# debug         4 # IO   = show I/O status
+# debug         8 # HDR  = show header parsing
+# debug        16 # LOG  = log all data into the logfile
+# debug        32 # FRC  = debug force feature
+# debug        64 # REF  = debug regular expression filter 
+#
+# multiple "debug" directives, are OK - they're logical-OR'd together
+#
+#debug         15 # same as setting the first 4 listed above
+debug 1
+#debug 255
+
+# single-threaded operation (i.e. disallows multiple threads or processes)
+# This is most often used for debugging because it keeps the
+# debugging output "in order" for easy reading.
+#
+#single-threaded
+
+# Toggle flag.  0 => disabled, anything else (ie. 1) => enabled
+toggle 1
+
+
+# Win32 GUI specific options.  Moved here from ijbw32.ini
+# in hopes of keep all of our config settings together.
+
+activity-animation      1
+log-messages            1
+log-highlight-messages  1
+log-buffer-size         1
+log-max-lines           200
+log-font-name           Comic Sans MS
+log-font-size           8
+show-on-task-bar        0
+close-button-minimizes  1
+
+# hide-console is used only on Win32 console mode. It instructs
+# the Internet Junkbuster to disconnect from and hide the
+# command console.
+#
+#hide-console
+
+
diff --git a/config.h b/config.h
new file mode 100644 (file)
index 0000000..4d71f86
--- /dev/null
+++ b/config.h
@@ -0,0 +1,195 @@
+/* config.h.  Generated automatically by configure.  */
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+#ifndef _CONFIG_H
+#define _CONFIG_H
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/acconfig.h,v $
+ *
+ * Purpose     :  This file should be the first thing included in every
+ *                .c file.  (Before even system headers).  It contains 
+ *                #define statements for various features.  It was
+ *                introduced because the compile command line started
+ *                getting ludicrously long with feature defines.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and 
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: acconfig.h,v $
+ *
+ *********************************************************************/
+\f
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/*
+ * Version number - Major (X._._)
+ */
+#define VERSION_MAJOR 2
+
+/*
+ * Version number - Minor (_.X._)
+ */
+#define VERSION_MINOR 9
+
+/*
+ * Version number - Point (_._.X)
+ */
+#define VERSION_POINT 3
+
+/*
+ * Version number, as a string
+ */
+#define VERSION "2.9.3"
+
+/*
+ * Regular expression matching for URLs.  (Highly recommended).  If this is 
+ * not defined then you can ony use prefix matching.
+ */
+#define REGEX 1
+
+/*
+ * Allow JunkBuster to be "disabled" so it is just a normal non-blocking
+ * non-anonymizing proxy.  This is useful if you're trying to access a
+ * blocked or broken site - just change the setting in the config file
+ * and send a SIGHUP (UN*X), or use the handy "Disable" menu option (Windows
+ * GUI).
+ */
+#define TOGGLE 1
+
+/*
+ * Enables arbitrary content modification regexps
+ */
+#define PCRS 1
+
+/*
+ * If a stream is compressed via gzip (Netscape specific I think), then
+ * it cannot be modified with Perl regexps.  This forces it to be 
+ * uncompressed.
+ */
+#define DENY_GZIP 1
+
+/*
+ * Enables statistics function.
+ */
+#define STATISTICS 1
+
+/*
+ * Bypass filtering for 1 page only
+ */
+#define FORCE_LOAD 1
+
+/*
+ * Split the show-proxy-args page into a page for each config file.
+ */
+#define SPLIT_PROXY_ARGS 1
+
+/*
+ * Kills JavaScript popups - window.open, onunload, etc.
+ */
+#define KILLPOPUPS 1
+
+/*
+ * Support for webDAV - e.g. so Microsoft Outlook can access HotMail e-mail
+ */
+#define WEBDAV 1
+
+/*
+ * Detect image requests automatically for MSIE.  Will fall back to
+ * other image-detection methods (i.e. USE_IMAGE_LIST) for other
+ * browsers.
+ *
+ * It detects the following header pair as an image request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: * / *
+ *
+ * And the following as a HTML request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *
+ *
+ * And no, I haven't got that backwards - IE is being wierd.
+ *
+ * Known limitations: 
+ * 1) If you press shift-reload on a blocked HTML page, you get
+ *    the image "blocked" page, not the HTML "blocked" page.
+ * 2) Once an image "blocked" page has been sent, viewing it 
+ *    in it's own browser window *should* bring up the HTML
+ *    "blocked" page, but it doesn't.  You need to clear the 
+ *    browser cache to get the HTML version again.
+ *
+ * These limitations are due to IE making inconsistent choices
+ * about which "Accept:" header to send.
+ */
+#define DETECT_MSIE_IMAGES 1
+
+/*
+ * Use image list to detect images.
+ * If you do not define this then everything is treated as HTML.
+ *
+ * Whatever the setting of this value, DETECT_MSIE_IMAGES will 
+ * override it for people using Internet Explorer.
+ */
+#define USE_IMAGE_LIST 1
+
+/*
+ * Allows the use of ACL files to control access to the proxy by IP address.
+ */
+#define ACL_FILES 1
+
+/*
+ * Allows the use of trust files.
+ */
+#define TRUST_FILES 1
+
+/*
+ * Allows the use of jar files to capture cookies.
+ */
+#define JAR_FILES 1
+
+/*
+ * Use PCRE rather than GNU Regex
+ */
+#define PCRE 1
+
+/* Define if you have the bcopy function.  */
+#define HAVE_BCOPY 1
+
+/* Define if you have the memmove function.  */
+#define HAVE_MEMMOVE 1
+
+/* Define if you have the strerror function.  */
+#define HAVE_STRERROR 1
+
+#endif /* _CONFIG_H */
diff --git a/config.h.in b/config.h.in
new file mode 100644 (file)
index 0000000..930ca66
--- /dev/null
@@ -0,0 +1,194 @@
+/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+#ifndef _CONFIG_H
+#define _CONFIG_H
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/acconfig.h,v $
+ *
+ * Purpose     :  This file should be the first thing included in every
+ *                .c file.  (Before even system headers).  It contains 
+ *                #define statements for various features.  It was
+ *                introduced because the compile command line started
+ *                getting ludicrously long with feature defines.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and 
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: acconfig.h,v $
+ *
+ *********************************************************************/
+\f
+
+/* Define to empty if the keyword does not work.  */
+#undef const
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+#undef size_t
+
+/* Define if you have the ANSI C header files.  */
+#undef STDC_HEADERS
+
+/*
+ * Version number - Major (X._._)
+ */
+#undef VERSION_MAJOR
+
+/*
+ * Version number - Minor (_.X._)
+ */
+#undef VERSION_MINOR
+
+/*
+ * Version number - Point (_._.X)
+ */
+#undef VERSION_POINT
+
+/*
+ * Version number, as a string
+ */
+#undef VERSION
+
+/*
+ * Regular expression matching for URLs.  (Highly recommended).  If this is 
+ * not defined then you can ony use prefix matching.
+ */
+#undef REGEX
+
+/*
+ * Allow JunkBuster to be "disabled" so it is just a normal non-blocking
+ * non-anonymizing proxy.  This is useful if you're trying to access a
+ * blocked or broken site - just change the setting in the config file
+ * and send a SIGHUP (UN*X), or use the handy "Disable" menu option (Windows
+ * GUI).
+ */
+#undef TOGGLE
+
+/*
+ * Enables arbitrary content modification regexps
+ */
+#undef PCRS
+
+/*
+ * If a stream is compressed via gzip (Netscape specific I think), then
+ * it cannot be modified with Perl regexps.  This forces it to be 
+ * uncompressed.
+ */
+#undef DENY_GZIP
+
+/*
+ * Enables statistics function.
+ */
+#undef STATISTICS
+
+/*
+ * Bypass filtering for 1 page only
+ */
+#undef FORCE_LOAD
+
+/*
+ * Split the show-proxy-args page into a page for each config file.
+ */
+#undef SPLIT_PROXY_ARGS
+
+/*
+ * Kills JavaScript popups - window.open, onunload, etc.
+ */
+#undef KILLPOPUPS
+
+/*
+ * Support for webDAV - e.g. so Microsoft Outlook can access HotMail e-mail
+ */
+#undef WEBDAV
+
+/*
+ * Detect image requests automatically for MSIE.  Will fall back to
+ * other image-detection methods (i.e. USE_IMAGE_LIST) for other
+ * browsers.
+ *
+ * It detects the following header pair as an image request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: * / *
+ *
+ * And the following as a HTML request:
+ *
+ * User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
+ * Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, * / *
+ *
+ * And no, I haven't got that backwards - IE is being wierd.
+ *
+ * Known limitations: 
+ * 1) If you press shift-reload on a blocked HTML page, you get
+ *    the image "blocked" page, not the HTML "blocked" page.
+ * 2) Once an image "blocked" page has been sent, viewing it 
+ *    in it's own browser window *should* bring up the HTML
+ *    "blocked" page, but it doesn't.  You need to clear the 
+ *    browser cache to get the HTML version again.
+ *
+ * These limitations are due to IE making inconsistent choices
+ * about which "Accept:" header to send.
+ */
+#undef DETECT_MSIE_IMAGES
+
+/*
+ * Use image list to detect images.
+ * If you do not define this then everything is treated as HTML.
+ *
+ * Whatever the setting of this value, DETECT_MSIE_IMAGES will 
+ * override it for people using Internet Explorer.
+ */
+#undef USE_IMAGE_LIST
+
+/*
+ * Allows the use of ACL files to control access to the proxy by IP address.
+ */
+#undef ACL_FILES
+
+/*
+ * Allows the use of trust files.
+ */
+#undef TRUST_FILES
+
+/*
+ * Allows the use of jar files to capture cookies.
+ */
+#undef JAR_FILES
+
+/*
+ * Use PCRE rather than GNU Regex
+ */
+#undef PCRE
+
+/* Define if you have the bcopy function.  */
+#undef HAVE_BCOPY
+
+/* Define if you have the memmove function.  */
+#undef HAVE_MEMMOVE
+
+/* Define if you have the strerror function.  */
+#undef HAVE_STRERROR
+
+#endif /* _CONFIG_H */
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..6c620ec
--- /dev/null
+++ b/configure
@@ -0,0 +1,1968 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --enable-mingw32        Use mingw32 for a Windows GUI"
+ac_help="$ac_help
+  --disable-regex         Don't allow regular expressions in the blockfile"
+ac_help="$ac_help
+  --disable-pcre-regex    Use old, slow GNU Regex instead of PCRE."
+ac_help="$ac_help
+  --disable-toggle        Don't support temporary disable"
+ac_help="$ac_help
+  --disable-pcrs          Don't support arbitrary content modification"
+ac_help="$ac_help
+  --disable-force         Don't allow blockfle to be bypassed"
+ac_help="$ac_help
+  --disable-killpopup     Never block popups"
+ac_help="$ac_help
+  --disable-stats         Don't keep statistics"
+ac_help="$ac_help
+  --disable-split-proxy-args  One big show-proxy-args page, not one per file."
+ac_help="$ac_help
+  --disable-webdav        Don't support WebDAV.  This option stops MS Outlook
+                          Express from accessing HotMail e-mail."
+ac_help="$ac_help
+  --disable-ie-images     Don't auto-detect whether a request from MS Internet
+                          Explorer is for an image or HTML."
+ac_help="$ac_help
+  --disable-image-list    Don't try to figure out whether a request is for an
+                          image or HTML using the imagelist - assume HTML."
+ac_help="$ac_help
+  --disable-acl-files     Prevents the use of ACL files to control access to
+                          the proxy by IP address."
+ac_help="$ac_help
+  --disable-trust-files   Prevents the use of trust files."
+ac_help="$ac_help
+  --disable-jar-files     Prevents the use of jar files to capture cookies."
+ac_help="$ac_help
+  --disable-static-pcre   Link dynamically with the pcre and pcreposix
+                          libraries.  You must build the libraries seperately."
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=jcc.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='       '
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+VERSION_MAJOR=2
+VERSION_MINOR=9
+VERSION_POINT=3
+
+
+
+
+
+cat >> confdefs.h <<EOF
+#define VERSION_MAJOR ${VERSION_MAJOR}
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION_MINOR ${VERSION_MINOR}
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION_POINT ${VERSION_POINT}
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}"
+EOF
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:592: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:622: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+       continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:673: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:705: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 716 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:747: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:752: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:761: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:780: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:812: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 827 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 844 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 861 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:893: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 898 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:922: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 927 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:957: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:988: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  for ac_file in conftest.*; do
+    case $ac_file in
+    *.c) ;;
+    *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+    esac
+  done
+else
+  { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1014: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1019 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1044 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1062 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1083 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:1119: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1124 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:1173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:1194: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1199 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_size_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+
+for ac_func in strerror bcopy memmove
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1230: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1235 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+# Check whether --enable-mingw32 or --disable-mingw32 was given.
+if test "${enable_mingw32+set}" = set; then
+  enableval="$enable_mingw32"
+  if test $enableval = yes; then
+    WIN_ONLY=
+    CYGWIN_FLAGS="-mwindows -mno-cygwin"
+    echo "Using mingw32 (Win32 GUI)"
+  else
+    WIN_ONLY=#
+    if test "$CYGWIN" = "yes"; then
+      CYGWIN_FLAGS="-mno-win32"
+      echo "Using Cygnus (Win32 command line)"
+    else
+      CYGWIN_FLAGS=
+    fi
+  fi
+else
+  if test "$MINGW32" = "yes"; then
+    WIN_ONLY=
+    CYGWIN_FLAGS="-mwindows -mno-cygwin"
+    echo "Using mingw32 (Win32 GUI)"
+  else
+    WIN_ONLY=#
+    if test "$CYGWIN" = "yes"; then
+      CYGWIN_FLAGS="-mno-win32"
+      echo "Using Cygnus (Win32 command line)"
+    else
+      CYGWIN_FLAGS=
+    fi
+  fi
+fi
+
+
+
+
+
+SOLARIS_ONLY=#
+
+
+
+
+GNU_REGEX_ONLY=
+PCRE_REGEX_ONLY=
+NO_REGEX_ONLY=#
+
+# Check whether --enable-regex or --disable-regex was given.
+if test "${enable_regex+set}" = set; then
+  enableval="$enable_regex"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define REGEX 1
+EOF
+
+else
+  NO_REGEX_ONLY=
+  GNU_REGEX_ONLY=#
+  PCRE_REGEX_ONLY=#
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define REGEX 1
+EOF
+
+fi
+
+
+# Check whether --enable-pcre-regex or --disable-pcre-regex was given.
+if test "${enable_pcre_regex+set}" = set; then
+  enableval="$enable_pcre_regex"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define PCRE 1
+EOF
+
+  GNU_REGEX_ONLY=#
+else
+  PCRE_REGEX_ONLY=#
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define PCRE 1
+EOF
+
+  GNU_REGEX_ONLY=#
+
+fi
+
+
+
+
+
+
+
+
+# Check whether --enable-toggle or --disable-toggle was given.
+if test "${enable_toggle+set}" = set; then
+  enableval="$enable_toggle"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define TOGGLE 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define TOGGLE 1
+EOF
+
+fi
+
+
+PCRS_ONLY=
+# Check whether --enable-pcrs or --disable-pcrs was given.
+if test "${enable_pcrs+set}" = set; then
+  enableval="$enable_pcrs"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define PCRS 1
+EOF
+
+  cat >> confdefs.h <<\EOF
+#define DENY_GZIP 1
+EOF
+
+else
+  PCRS_ONLY=#
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define PCRS 1
+EOF
+ cat >> confdefs.h <<\EOF
+#define DENY_GZIP 1
+EOF
+
+fi
+
+
+
+# Check whether --enable-force or --disable-force was given.
+if test "${enable_force+set}" = set; then
+  enableval="$enable_force"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define FORCE_LOAD 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define FORCE_LOAD 1
+EOF
+
+fi
+
+
+# Check whether --enable-killpopup or --disable-killpopup was given.
+if test "${enable_killpopup+set}" = set; then
+  enableval="$enable_killpopup"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define KILLPOPUPS 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define KILLPOPUPS 1
+EOF
+
+fi
+
+
+# Check whether --enable-stats or --disable-stats was given.
+if test "${enable_stats+set}" = set; then
+  enableval="$enable_stats"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define STATISTICS 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define STATISTICS 1
+EOF
+
+fi
+
+
+# Check whether --enable-split-proxy-args or --disable-split-proxy-args was given.
+if test "${enable_split_proxy_args+set}" = set; then
+  enableval="$enable_split_proxy_args"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define SPLIT_PROXY_ARGS 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define SPLIT_PROXY_ARGS 1
+EOF
+
+fi
+
+
+# Check whether --enable-webdav or --disable-webdav was given.
+if test "${enable_webdav+set}" = set; then
+  enableval="$enable_webdav"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define WEBDAV 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define WEBDAV 1
+EOF
+
+fi
+
+
+# Check whether --enable-ie-images or --disable-ie-images was given.
+if test "${enable_ie_images+set}" = set; then
+  enableval="$enable_ie_images"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define DETECT_MSIE_IMAGES 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define DETECT_MSIE_IMAGES 1
+EOF
+
+fi
+
+
+# Check whether --enable-image-list or --disable-image-list was given.
+if test "${enable_image_list+set}" = set; then
+  enableval="$enable_image_list"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define USE_IMAGE_LIST 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define USE_IMAGE_LIST 1
+EOF
+
+fi
+
+
+# Check whether --enable-acl-files or --disable-acl-files was given.
+if test "${enable_acl_files+set}" = set; then
+  enableval="$enable_acl_files"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define ACL_FILES 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define ACL_FILES 1
+EOF
+
+fi
+
+
+# Check whether --enable-trust-files or --disable-trust-files was given.
+if test "${enable_trust_files+set}" = set; then
+  enableval="$enable_trust_files"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define TRUST_FILES 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define TRUST_FILES 1
+EOF
+
+fi
+
+
+# Check whether --enable-jar-files or --disable-jar-files was given.
+if test "${enable_jar_files+set}" = set; then
+  enableval="$enable_jar_files"
+  if test $enableval = yes; then
+  cat >> confdefs.h <<\EOF
+#define JAR_FILES 1
+EOF
+
+fi
+else
+  cat >> confdefs.h <<\EOF
+#define JAR_FILES 1
+EOF
+
+fi
+
+
+LIBRARY_PCRE_ONLY=#
+STATIC_PCRE_ONLY=
+# Check whether --enable-static-pcre or --disable-static-pcre was given.
+if test "${enable_static_pcre+set}" = set; then
+  enableval="$enable_static_pcre"
+  if test $enableval = no; then
+  LIBRARY_PCRE_ONLY=
+  STATIC_PCRE_ONLY=#
+fi
+fi
+
+
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@VERSION_MAJOR@%$VERSION_MAJOR%g
+s%@VERSION_MINOR@%$VERSION_MINOR%g
+s%@VERSION_POINT@%$VERSION_POINT%g
+s%@CC@%$CC%g
+s%@CPP@%$CPP%g
+s%@EXEEXT@%$EXEEXT%g
+s%@OBJEXT@%$OBJEXT%g
+s%@WIN_ONLY@%$WIN_ONLY%g
+s%@CYGWIN_FLAGS@%$CYGWIN_FLAGS%g
+s%@SOLARIS_ONLY@%$SOLARIS_ONLY%g
+s%@GNU_REGEX_ONLY@%$GNU_REGEX_ONLY%g
+s%@PCRE_REGEX_ONLY@%$PCRE_REGEX_ONLY%g
+s%@NO_REGEX_ONLY@%$NO_REGEX_ONLY%g
+s%@PCRS_ONLY@%$PCRS_ONLY%g
+s%@LIBRARY_PCRE_ONLY@%$LIBRARY_PCRE_ONLY%g
+s%@STATIC_PCRE_ONLY@%$STATIC_PCRE_ONLY%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([  ]*\)#\([        ]*define[       ][      ]*\)'
+ac_dB='\([     ][      ]*\)[^  ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_uB='\([     ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
diff --git a/configure.in b/configure.in
new file mode 100644 (file)
index 0000000..492d6ed
--- /dev/null
@@ -0,0 +1,257 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl 
+dnl $Id: configure.in,v 1.2 2001/05/13 22:04:51 administrator Exp $
+dnl 
+dnl Written by and Copyright (C) 2001 the SourceForge
+dnl IJBSWA team.  http://ijbswa.sourceforge.net
+dnl
+dnl Based on the Internet Junkbuster originally written
+dnl by and Copyright (C) 1997 Anonymous Coders and 
+dnl Junkbusters Corporation.  http://www.junkbusters.com
+dnl
+dnl This program is free software; you can redistribute it 
+dnl and/or modify it under the terms of the GNU General
+dnl Public License as published by the Free Software
+dnl Foundation; either version 2 of the License, or (at
+dnl your option) any later version.
+dnl 
+dnl This program is distributed in the hope that it will
+dnl be useful, but WITHOUT ANY WARRANTY; without even the
+dnl implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.  See the GNU General Public
+dnl License for more details.
+dnl 
+dnl The GNU General Public License should be included with
+dnl this file.  If not, you can view it at
+dnl http://www.gnu.org/copyleft/gpl.html
+dnl or write to the Free Software Foundation, Inc., 59
+dnl Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+dnl 
+dnl $Log: configure.in,v $
+dnl 
+AC_INIT(jcc.c)
+AC_CONFIG_HEADER(config.h)
+
+VERSION_MAJOR=2
+VERSION_MINOR=9
+VERSION_POINT=3
+
+AC_SUBST(VERSION_MAJOR)
+AC_SUBST(VERSION_MINOR)
+AC_SUBST(VERSION_POINT)
+
+AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR})
+AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR})
+AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT})
+AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}")
+
+dnl Checks for programs.
+dnl AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_CPP
+dnl AC_PROG_INSTALL
+dnl AC_PROG_LN_S
+dnl AC_PROG_MAKE_SET
+dnl RANLIB is for PCRE:
+dnl AC_PROG_RANLIB
+
+AC_MINGW32
+AC_CYGWIN
+AC_EXEEXT
+AC_OBJEXT
+
+dnl Checks for libraries.
+dnl AC_CHECK_LIB(pcre, pcre_compile)
+dnl AC_CHECK_LIB(pcreposix, regcomp, pcre)
+
+dnl Checks for header files.
+AC_HEADER_STDC
+dnl AC_HEADER_SYS_WAIT
+dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h)
+dnl limits.h is for PCRE:
+dnl AC_CHECK_HEADERS(limits.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_SIZE_T
+
+dnl Checks for library functions.
+dnl AC_TYPE_SIGNAL
+dnl AC_CHECK_FUNC(strstr)
+dnl bcopy and memmove are for PCRE
+AC_CHECK_FUNCS(strerror bcopy memmove)
+
+dnl Build type
+
+AC_ARG_ENABLE(mingw32,
+[  --enable-mingw32        Use mingw32 for a Windows GUI],
+[if test $enableval = yes; then
+    WIN_ONLY=
+    CYGWIN_FLAGS="-mwindows -mno-cygwin"
+    echo "Using mingw32 (Win32 GUI)"
+  else
+    WIN_ONLY=#
+    if test "$CYGWIN" = "yes"; then
+      CYGWIN_FLAGS="-mno-win32"
+      echo "Using Cygnus (Win32 command line)"
+    else
+      CYGWIN_FLAGS=
+    fi
+  fi],
+[if test "$MINGW32" = "yes"; then
+    WIN_ONLY=
+    CYGWIN_FLAGS="-mwindows -mno-cygwin"
+    echo "Using mingw32 (Win32 GUI)"
+  else
+    WIN_ONLY=#
+    if test "$CYGWIN" = "yes"; then
+      CYGWIN_FLAGS="-mno-win32"
+      echo "Using Cygnus (Win32 command line)"
+    else
+      CYGWIN_FLAGS=
+    fi
+  fi])
+
+AC_SUBST(WIN_ONLY)
+AC_SUBST(CYGWIN_FLAGS)
+
+SOLARIS_ONLY=#
+AC_SUBST(SOLARIS_ONLY)
+
+dnl Features
+
+dnl Regex engine:
+
+GNU_REGEX_ONLY=
+PCRE_REGEX_ONLY=
+NO_REGEX_ONLY=#
+
+AC_ARG_ENABLE(regex,
+[  --disable-regex         Don't allow regular expressions in the blockfile],
+[if test $enableval = yes; then
+  AC_DEFINE(REGEX)
+else
+  NO_REGEX_ONLY=
+  GNU_REGEX_ONLY=#
+  PCRE_REGEX_ONLY=#
+fi],AC_DEFINE(REGEX))
+
+AC_ARG_ENABLE(pcre-regex,
+[  --disable-pcre-regex    Use old, slow GNU Regex instead of PCRE.],
+[if test $enableval = yes; then
+  AC_DEFINE(PCRE)
+  GNU_REGEX_ONLY=#
+else
+  PCRE_REGEX_ONLY=#
+fi],[AC_DEFINE(PCRE)
+  GNU_REGEX_ONLY=#
+])
+
+AC_SUBST(GNU_REGEX_ONLY)
+AC_SUBST(PCRE_REGEX_ONLY)
+AC_SUBST(NO_REGEX_ONLY)
+
+
+dnl Other features:
+
+AC_ARG_ENABLE(toggle,
+[  --disable-toggle        Don't support temporary disable],
+[if test $enableval = yes; then
+  AC_DEFINE(TOGGLE)
+fi],AC_DEFINE(TOGGLE))
+
+PCRS_ONLY=
+AC_ARG_ENABLE(pcrs,
+[  --disable-pcrs          Don't support arbitrary content modification],
+[if test $enableval = yes; then
+  AC_DEFINE(PCRS)
+  AC_DEFINE(DENY_GZIP)
+else
+  PCRS_ONLY=#
+fi],[AC_DEFINE(PCRS) AC_DEFINE(DENY_GZIP)])
+AC_SUBST(PCRS_ONLY)
+
+AC_ARG_ENABLE(force,
+[  --disable-force         Don't allow blockfle to be bypassed],
+[if test $enableval = yes; then
+  AC_DEFINE(FORCE_LOAD)
+fi],AC_DEFINE(FORCE_LOAD))
+
+AC_ARG_ENABLE(killpopup,
+[  --disable-killpopup     Never block popups],
+[if test $enableval = yes; then
+  AC_DEFINE(KILLPOPUPS)
+fi],AC_DEFINE(KILLPOPUPS))
+
+AC_ARG_ENABLE(stats,
+[  --disable-stats         Don't keep statistics],
+[if test $enableval = yes; then
+  AC_DEFINE(STATISTICS)
+fi],AC_DEFINE(STATISTICS))
+
+AC_ARG_ENABLE(split-proxy-args,
+[  --disable-split-proxy-args  One big show-proxy-args page, not one per file.],
+[if test $enableval = yes; then
+  AC_DEFINE(SPLIT_PROXY_ARGS)
+fi],AC_DEFINE(SPLIT_PROXY_ARGS))
+
+AC_ARG_ENABLE(webdav,
+[  --disable-webdav        Don't support WebDAV.  This option stops MS Outlook
+                          Express from accessing HotMail e-mail.],
+[if test $enableval = yes; then
+  AC_DEFINE(WEBDAV)
+fi],
+AC_DEFINE(WEBDAV))
+
+AC_ARG_ENABLE(ie-images,
+[  --disable-ie-images     Don't auto-detect whether a request from MS Internet
+                          Explorer is for an image or HTML.],
+[if test $enableval = yes; then
+  AC_DEFINE(DETECT_MSIE_IMAGES)
+fi],
+AC_DEFINE(DETECT_MSIE_IMAGES))
+
+AC_ARG_ENABLE(image-list,
+[  --disable-image-list    Don't try to figure out whether a request is for an
+                          image or HTML using the imagelist - assume HTML.],
+[if test $enableval = yes; then
+  AC_DEFINE(USE_IMAGE_LIST)
+fi],
+AC_DEFINE(USE_IMAGE_LIST))
+
+AC_ARG_ENABLE(acl-files,
+[  --disable-acl-files     Prevents the use of ACL files to control access to
+                          the proxy by IP address.],
+[if test $enableval = yes; then
+  AC_DEFINE(ACL_FILES)
+fi],
+AC_DEFINE(ACL_FILES))
+
+AC_ARG_ENABLE(trust-files,
+[  --disable-trust-files   Prevents the use of trust files.],
+[if test $enableval = yes; then
+  AC_DEFINE(TRUST_FILES)
+fi],
+AC_DEFINE(TRUST_FILES))
+
+AC_ARG_ENABLE(jar-files,
+[  --disable-jar-files     Prevents the use of jar files to capture cookies.],
+[if test $enableval = yes; then
+  AC_DEFINE(JAR_FILES)
+fi],
+AC_DEFINE(JAR_FILES))
+
+LIBRARY_PCRE_ONLY=#
+STATIC_PCRE_ONLY=
+AC_ARG_ENABLE(static-pcre,
+[  --disable-static-pcre   Link dynamically with the pcre and pcreposix
+                          libraries.  You must build the libraries seperately.],
+[if test $enableval = no; then
+  LIBRARY_PCRE_ONLY=
+  STATIC_PCRE_ONLY=#
+fi])
+AC_SUBST(LIBRARY_PCRE_ONLY)
+AC_SUBST(STATIC_PCRE_ONLY)
+
+AC_OUTPUT(Makefile)
+
diff --git a/cookiefile b/cookiefile
new file mode 100644 (file)
index 0000000..f17f4b0
--- /dev/null
@@ -0,0 +1,67 @@
+#
+# This is /etc/junkbuster/cookefile which was put here by a junkbuster rpm
+#
+# Last modified on Sun Jan 31 22:36:03 1999 (CEST)
+#
+# --------------------------------------------------------------------------
+#
+# Newest version is always available from 
+#
+#          http://www.waldherr.org/cookiefile
+#
+# Read http://www.waldherr.org/junkbuster/update.shtml on how to keep
+# this file up-to-date.
+#
+# For more detail, see http://www.junkbusters.com/ht/en/ijbfaq.html#cookies
+#
+# Empty lines and lines beginning with a # are ignored.
+# To permit an entire site to set cookies, simply include its domain name:
+# really-trustyworthy-people.org
+#
+# You can allow cookies out, but stop them coming in:
+# >send-user-cookies.com
+#
+#>egroups.com
+#>tvguide.com
+#>wired.com/news/
+#americanexpress.com
+#cnn.com
+#www.nytimes.com
+#yahoo.com
+#amazon.de
+#amazon.co.uk
+#slashdot.org
+#www.palmgear.com
+#onelist.com
+#freshmeat.net
+
+# Sites that need cookies
+javasoft.com
+sun.com
+msdn.microsoft.com
+sourceforge.net
+yahoo.com
+anonymizer.com
+
+# Experimenting
+ashleycars.co.uk
+
+# Shopping
+dabs.com
+overclockers.co.uk
+worldpay.com   # for quietpc.com
+jungle.com
+scan.co.uk
+
+#Shopping: Micro Warehouse's site
+#inmac.co.uk
+#technomatic.co.uk
+
+# This is stupid.  Without these two entries, the link from McAfee's website
+# to their online UK shop gives a 500 server error.
+#mcafee.com
+#mcafeestoreuk.beyond.com
+
+
+
+
diff --git a/cygwin.h b/cygwin.h
new file mode 100644 (file)
index 0000000..4568ea8
--- /dev/null
+++ b/cygwin.h
@@ -0,0 +1,63 @@
+#ifndef _CYGWIN_H
+#define _CYGWIN_H
+#define CYGWIN_H_VERSION "$Id: cygwin.h,v 1.1 2001/05/13 21:57:06 administrator Exp $"
+/*********************************************************************
+ *
+ * File        :  $Source: /home/administrator/cvs/ijb/cygwin.h,v $
+ *
+ * Purpose     :  The windows.h file seems to be a *tad* different, so I
+ *                will bridge the gaps here.  Perhaps I should convert the
+ *                latest SDK too?  Shudder, I think not.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and 
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
+ *    $Log: cygwin.h,v $
+ *
+ *********************************************************************/
+
+/* Conditionally include this whole file. */
+#ifdef __MINGW32__
+
+/* Hmmm, seems to be overlooked. */
+#define _RICHEDIT_VER 0x0300
+
+/*
+ * Named slightly different ... but not in Cygwin v1.3.1 ...
+ *
+ * #define LVITEM   LV_ITEM
+ * #define LVCOLUMN LV_COLUMN
+ */
+
+#endif /* def __MINGW32__ */
+#endif /* ndef _CYGWIN_H */
+
+
+/*
+  Local Variables:
+  tab-width: 3
+  end:
+*/
diff --git a/doc/USER_DOC_IS_WIDELY_OBSOLETED b/doc/USER_DOC_IS_WIDELY_OBSOLETED
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/doc/changes.txt b/doc/changes.txt
new file mode 100644 (file)
index 0000000..6aa1482
--- /dev/null
@@ -0,0 +1,991 @@
+This file contains details of the changes made to JunkBuster, in
+chronological order.  Scroll down to the bottom for the newest 
+additions!
+
+
+*****************************************************************************
+* Copied from old README                                                    *
+*****************************************************************************
+
+README for the Internet Junkbuster Proxy (TM) Copyright 1997-8 Junkbusters Corp.
+
+   Id: README,v 1.1 2001/04/16 21:10:38 rodney Exp 
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2 of the License,
+   or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+   See the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+The version of the code with this makefile is Version 2.0.2.
+No CHANGES file is included here; for a history of previous versions see
+   http://www.junkbusters.com/ht/en/ijbdist.html#previous
+This version tightens security over 2.0.1; some multi-user sites will need
+to change the listen-address in the configuration file (see previous URL).
+
+For installation on Windows see http://www.junkbusters.com/ht/en/ijbwin.html
+An executable is provided so you don't need nmake or a C compiler.
+
+For UNIX and other systems see the FAQ. If you just want to test it with its
+defaults of simply stopping cookies and private info, all you need to do now
+on most Unix systems is type make, run junkbuster & and configure your browser.
+
+This directory should contain the following files.  The .html files are also
+in http://www.junkbusters.com/ht/en/ and http://internet.junkbuster.com
+You are welcome to publish copies of the .html files on your local web server,
+according to the GNU General Public License.
+
+gpl.html GNU General Public Licence
+junkbstr.exe   Executable (binary) for Windows 95/NT
+Makefile A very bland Makefile; Most versions of Unix except HP & Suns
+      compile without change. Windows requires the changes indicated.
+ijbman.html Manual for the Internet Junkbuster, HTML format
+junkbuster.1   Manual for the Internet Junkbuster, man macro format:
+         man ./junkbuster.1 # or nroff -man junkbuster.1 | more
+ijbfaq.html FAQ: Frequently Asked Questions on the Internet Junkbuster
+      Includes installation instructions
+junkbstr.ini   Sample configuration file with almost all options commented out
+sblock.ini  Sample blockfile (which doesn't really block much, see FAQ)
+scookie.ini Sample cookiefile (permits little; you decide who to trust)
+saclfile.ini   Sample access control file (block access to everyone)
+sforward.ini   Sample forwardfile (does no fowarding, no gateways, so SOCKS)
+strust.ini  Sample trustfile (has no trusted sites and blocks nothing)
+conn.c, bind.c, encode.c, loaders.c, parsers.c, ssplit.c   Various utilities
+socks4.c Code for SOCKS4 and SOCKS4A gateways
+jcc.c    The main program
+jcc.h    #included declarations etc
+gnu_regex.c, gnu_regex.h:  Regular expression code from the FSF, not us.
+win32.c     A few lines of code specific to the Windows version (95 & NT)
+acl.c    Access controls (new in version 2.0) - doesn't replace firewalls
+filters.c   Strings for the presentation of messages to user
+
+If you find that the Internet Junkbuster improves the quality of your life
+online, we hope you'll visit http://www.junkbusters.com to see how our free
+services can help you bust other kinds of junk out of your life:
+junk mail, spam, telemarketing, and invasions of your private data.
+And please tell your friends about this free product, and help them set it up.
+
+If your company finds this software useful in protecting its confidential
+information and making its people happier and more productive, please consider
+purchasing one of our our commercial support packages:
+   http://www.junkbusters.com/ht/en/ijbfaq.html#commercial
+
+We don't advertise, so please tell others in your community about us.
+
+Junkbusters Corp.    http://www.junkbusters.com
+
+
+*****************************************************************************
+* Copied from old README.too                                                *
+*****************************************************************************
+
+Id: README.TOO,v 1.1 2001/04/16 21:10:38 rodney Exp
+
+This is the README.TOO file for Stefan's version of the Internet
+Junkbuster (from http://www.waldherr.org/junkbuster/).
+
+
+
+Installation:
+-------------
+Install the RPM with the usual command `rpm -Uvh foobar.rpm'. Since we
+run the Junkbuster as user `nobody', cd to a directory where `nobody'
+has read access (in particular NOT /root) and issue (as root)
+
+   /etc/rc.d/init.d/junkbuster start
+
+This will be done automagically for you any time you boot your machine.
+
+
+
+Configuration:
+--------------
+To let Junkbuster take `care' of the ads, you have to setup your
+browser to use the Junkbuster.
+
+  Short instructions for the advanced user:
+
+   Configure Netscape to use 127.0.0.1 on port 8000 as 
+        a proxy server.
+
+  Detailed instructions for the beginner:
+
+        Remove Internet Explorer and install Netscape. No `real' 
+        user would ever use MSIE. Though the Junkbuster works 
+        with IE as well. Read 
+        http://www.junkbusters.com/ht/en/ijbfaq.html#browser
+
+Check to see if the Junkbuster works correctly by surfing to
+
+   http://127.0.0.1/show-proxy-args
+
+or any other place and add the text `/show-proxy-args' to the URL.
+Ok? Then enjoy your ad-free surfing.
+
+
+
+Mailinglists:
+-------------
+In case you are interested in the Junkbuster, there are two
+mailinglists (junkbuster-users and junkbuster-announce). Instructions
+on how to subscribe and unsubscribe are at
+
+   http://www.waldherr.org/junkbuster/
+
+Bugs:
+-----
+Please fill out
+
+   http://sourceforge.net/bugs/?func=addbug&group_id=11118
+
+Patches:
+--------
+Please fill out
+
+   http://sourceforge.net/patch/?func=addpatch&group_id=11118
+
+Need Help?
+----------
+Please fill out
+
+   http://sourceforge.net/support/?func=addsupport&group_id=11118
+
+
+Comments:
+---------
+I would greatly appreciate feedback for this program. Send comments to
+Stefan Waldherr <stefan@waldherr.org> (in either German or English). I
+prefer plain text. If you happen to see an ad which got thru the filter
+PLEASE use the `contribute' form at http://www.waldherr.org/junkbuster/.
+
+Have fun,
+Stefan.
+
+
+*****************************************************************************
+* Copied from old README.win                                                *
+*****************************************************************************
+
+$Id: README.WIN,v 1.1 2001/04/16 21:10:38 rodney Exp $
+
+This is the README.WIN file for the Windows version of the Internet
+Junkbuster (from http://www.waldherr.org/junkbuster/).
+
+Installation:
+-------------
+Congrats, since you are reading this file, you have already unzipped
+the archive correctly.
+
+Start the Junkbuster with `junkbstr' (i.e., click on the icon in the
+ijb subdirectory). If you want to start Junkbuster automatically,
+make a link to the program in the `Autostart' folder.
+
+
+
+Configuration:
+--------------
+To let Junkbuster take `care' of the ads, you have to setup your
+browser to use the Junkbuster.
+
+  Short instructions for the advanced user:
+
+   Configure Netscape to use 127.0.0.1 on port 8000 as 
+        a proxy server.
+
+  Detailed instructions for the beginner:
+
+        Remove Internet Explorer and install Netscape. No `real' 
+        user would ever use MSIE. Though the Junkbuster works 
+        with IE as well. Read 
+        http://www.junkbusters.com/ht/en/ijbfaq.html#browser
+
+Check to see if the Junkbuster works correctly by surfing to
+
+   http://127.0.0.1/show-proxy-args
+
+or any other place and add the text `/show-proxy-args' to the URL.
+Ok? Then enjoy your ad-free surfing.
+
+
+
+Mailinglists:
+-------------
+In case you are interested in the Junkbuster, there are two
+mailinglists (junkbuster-users and junkbuster-announce). Instructions
+on how to subscribe and unsubscribe are at
+
+   http://www.waldherr.org/junkbuster/
+
+Bugs:
+-----
+Please fill out
+
+   http://sourceforge.net/bugs/?func=addbug&group_id=11118
+
+Patches:
+--------
+Please fill out
+
+   http://sourceforge.net/patch/?func=addpatch&group_id=11118
+
+Need Help?
+----------
+Please fill out
+
+   http://sourceforge.net/support/?func=addsupport&group_id=11118
+
+Comments:
+---------
+I would greatly appreciate feedback for this program. Send comments to
+Stefan Waldherr <stefan@waldherr.org> (in either German or English). I
+prefer plain text. If you happen to see an ad which got thru the filter
+PLEASE use the `contribute' form at http://www.waldherr.org/junkbuster/.
+
+Have fun,
+Stefan.
+
+
+*****************************************************************************
+* Copied from old README.re_filter                                          *
+*****************************************************************************
+
+DISCLAIMER:
+   This is pre-alpha code. Using it in any other way
+   than just reading it is a high risk activity and
+   the author disclaims all liability for any damage.
+
+   See the GNU General Public License at
+   http://www.gnu.org/copyleft/gpl.html for details.
+
+
+Dear alpha-Tester,
+
+Thank you for trying out the experimental re_filter feature of
+Junkbuster. As this is still a very early pre-release version,
+and I'm neither much of an autoconf or make wizard, building
+the patched junkbuster involves some manual work, that is 
+described below. Please also see the Request for Thoughts section,
+as the whole point of this pre-release ist to collect ideas for
+improvement and bug reports.
+
+
+INSTALLATION:
+
+  - Get and install pcre from
+    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
+    Version 3.1 or any later one will do. I recommend 3.4.
+    It *should* install on Win32 as well, but I haven't tried
+    that. Don't forget to run ldconfig afterwards.
+
+  - Now you have two options:
+
+    A) Install pcrs as a shared library:
+       pcrs.c and pcrs.h are included in the (patched) ijb subdirectory.
+       1.) patch Makefile < Makefile.re_shared.diff  
+       2.) gcc -Wall -fPIC -c pcrs.c  
+       3.) gcc -shared -Wl,-soname,libpcrs.so.1 -o libpcrs.so.1.0.1 pcrs.o -lc -lpcre
+       If this worked OK,
+       4.) copy libpcrs.so.1.0.1 to /usr/local/lib
+       5.) ln -s /usr/local/lib/libpcrs.1.0.1 /usr/local/lib/libpcrs.so
+       6.) ldconfig (Or whatever the equivalent on your platform might be)
+       7.) cp pcrs.h /usr/local/include
+
+    OR
+
+    B) Incorporate pcrs into the junkbuster (much easier):
+       Smile and relax. You're done.
+
+  - Edit the provided re_filterfile to suit your needs and place it
+    with the rest of junkbusters configfiles.
+
+  - Now junkbuster should build with a simple 'make'.
+    Note: Setting debug = REF in jcc.c will enable debugging
+    for the re_filter.
+
+  - Include a line "re_filterfile <wherever>" in your junkbuster
+    config file, pointing at the re_filterfile
+
+  - (Optional:) Include a line "re_filter_all" in the config
+    file. This will set the Policy to filter content from all sites.
+    Default is to filter only from sites that you wouldn't send a
+    cookie either. 
+
+  - Fire up junkbuster.
+
+HOW IT WORKS:
+
+    Nah, not tonight anymore ;-)
+
+REQUEST FOR THOUGHTS:
+
+  - The main decision is whether to filter on-the-fly or to buffer
+    up the whole document and then run the filter on it. I've built
+    both versions and currently prefer buffering.
+
+    The advantage of on-the-fly-filtering is obviously that the
+    document begins to display before it's fully loaded. The big
+    disadvantage is that with arbitraty content altering in place,
+    you don't know the size that the document will have after
+    altering when the Content-Length Header is to be sent. Only
+    option is to chew it altogether.
+
+    Apart from preserving the ability to generate a valid Content-Length
+    header (which the patch currently does not yet do), buffering up
+    the document has some advantages from the filtering point of view:
+
+     - Reliability. Patterns in the document cannot be ripped apart
+       and are reliably found. (If you look at the document fragment-wise
+       while it's being transmitted, you miss any pattern that spans
+       a fragment border) This is especially bad for patterns that do
+       serious HTML reformatting, as fragments are typically in the order
+       of 1500 bytes each.
+
+     - Flexibility: The re_filter gives you the choice whether you want
+       to replace only the pattern's first occurance or replace it globally.
+       This becomes meningless with fragments. (Solution possible, though.)
+
+    As the filter only processes objects of MIME type text/*, which are typically
+    rather small compared to binary multimedia (sic) type data, I don't think
+    that the disadvantage of delayed display of the first bytes is really grave.
+
+    What do you think?
+
+  - Is the choice between a radical (filter all) and semi-smart (filter only when
+    also crunching cookies) flexible enough? Should I really introduce yet another
+    configfile for specifying the domains to filter content from? Would anyone use
+    that?
+
+  - Should I use pcre as a shared library and work out a nice installation
+    automagic, or should the relevant functions be incorporated in re_filter.c?
+
+  - Even if yes, do we really want an extension that relies on an external library
+    like pcre?
+
+  - Any bugs, stupid parts in the code ?
+
+  - Cool suggestions for the re_filterfile? (PLEASE!)
+
+  - Should character set translation along the lines of Perl's 'tr' operator
+    be included?
+
+  - Is the whole feature just pathetic?
+
+FEEDBACK:
+
+    A whole lot of work has gone into this feature (the pcrs code was also
+    just written for this) and I'd really like to know if and how you like
+    it. Since I'm more of a perl than C programmer (and after doing so much
+    string manipulation in C I'm once again glad abaout that!), I'm sure there
+    is much to improve. Please send any suggestions/observations/hellos to
+    oes@paradis.rhein.de. I would also be very glad about any assistance for
+    a autoconf/make procedure for prcs.
+
+Well, have fun!
+--Andreas
+
+
+*****************************************************************************
+* Copied from old README.cygwin                                             *
+*****************************************************************************
+
+Id: README.cygwin,v 1.2 2001/04/29 23:16:29 rodney Exp
+
+
+What I did:  I saw too many "personalities" in IJB; so I
+ran the code through a couple of regexp's and then let XEmacs
+reformat the whole shebang!  The results is a uniform
+looking code base; aka. as if 1 person created the whole
+project.
+
+Why I did it:  (1) it is easier to maintain  (2) easier for
+a new person to make changes/additions  (3) it *looks* more
+professional  (4) IMHO, it is easier to read (this is very
+much a personal preference).
+
+What I propose: A IJB standards list be included in the
+distro and all source/patch checkins be checked for
+compliance.  We don't need to be an arse on this point, but
+submitters should make a valiant attempt to support the
+standards.
+
+Note: do not even try to diff my code with another code
+base, you will be overwhelmed.  After all, the regexps did a
+good bit of changing and XEmacs reformatter did a great deal
+more.
+
+One more note: these changes include conditional compilation for
+un?x (namely Linux), cygwin (un?x like compile for WIN32), and
+mingw32 (WIN32 like compilation w/o VC++).  Right now, all seems
+fully functional except cygwin.  The cygwin compile will work,
+but includes code to make it single threaded.  I need to debug
+the fork issues, but that will have to come later.
+
+
+Specific changes to expect:
+
+
+1: I've majorly reworked the Makefiles.  The existing Makefile was
+too *spaghetti* for me!  For one, I eliminated the "-I." from the
+include path (ugly).  Use #include "" for local directory files
+and #include <> for path found files (that's basic even to c).
+
+
+2: In accordance with #1, I changed #include "windows.h" to
+#include <windows.h> and #include <gnu_regex.h> to #include
+"gnu_regex.h".
+
+
+3: As part of my standards suggestions (to come later in this
+file), I added a standard comment block to every function.  There
+were too many functions with *no* comment and about 20 different
+styles to those that did.  This is an example of the block I used:
+/*********************************************************************
+ *
+ * Function    :  block_acl
+ *
+ * Description :  Block this request?
+ *                Decide yes or no based on ACL file.
+ *
+ * Parameters  :
+ *          1  :  src = Address the browser/user agent is requesting.
+ *          2  :  dst = The proxy or gateway address this is going to.
+ *          3  :  csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns     : 0 = FALSE (don't block) and 1 = TRUE (do block)
+ *
+ *********************************************************************/
+
+
+4: Some files prototyped like this:
+      void
+      func(param1)
+      int param1;
+      {
+      }
+and other like this:
+      void func(int param1)
+      {
+      }
+I made all look like the second.
+
+
+5: Made:
+      if(  to be  if (
+      while(  to be  while (
+      switch(  to be switch (
+      etc ...
+The former looks too much like a function call.
+
+
+6: Put braces on their own line and aligned under the
+reserved word:
+      if () {
+      } else {
+      }
+to be:
+      if ()
+      {
+      }
+      else
+      {
+      }
+The same for while, do, etc...
+
+
+7: Casted malloc in several places, e.g.:
+      p = malloc(n);
+to be:
+      p = (char *)malloc(n);
+This eliminates compiler warnings.
+
+
+8: Applied the Perl regexp patch and made it fully conditionally
+compiled (-DPCRS=TRUE).
+
+
+9: It *appears* that if MINGW32 sees a "main" function, it will
+try to link it and start with main (ala console mode).  Since I
+need MINGW32 to find WinMain instead, I conditionally changed
+"main" to "_main" (for MINGW32 only!).
+
+
+10: Changed popup.c to be killpopup.c.  This was necessary to
+clean up the Makefile.  Since there was an ini type file called
+"popup" and "popup.c", make got confused on target names.  No
+other ini file has a .c file with the same name, so I hope this
+isn't a big deal.  Plus, it fits its config variable
+(kill_all_popups) much better.
+
+
+11: Added:
+  /*
+    Local Variables:
+    tab-width: 3
+    end:
+  */
+to all .c and .h files.  I use 3 character tabs and this will make
+the files display correctly in Emacs editors.  This is just my
+default setting.  Perhaps I will filter all files via "expand
+-t3", so not to pi$$ everyone off.  Vi is capable of using 3
+character tabs, as I am sure VC++ would be.
+
+
+12: Several places included regexp code with out "#ifdef REGEX"
+which broke the ability to compile w/o regexp's.  I fixed the code
+and can compile w/o regexp (which I don't normally do, but now I
+*can*).
+
+
+13: In WinMain, changed:
+      pszLastTok = strchr(pszLastTok, ' ');
+to be:
+      pszLastTok = strchr(pszLastTok+1, ' ');
+The former causes an infinite loop with 2 or more parameters.
+
+
+14: Added my own strdup for Cygwin, see jcc.c for why.
+
+
+15: Added defines in the Makefile and this to jcc.h:
+      #define VERSION VERSION_MAJOR "." VERSION_MINOR "." VERSION_POINT
+This makes "update the numbers also in jcc.h manually" unnecessary
+(see your Makefile for this quote).
+
+
+16: Split the "inifiles" target in Makefile into separate targets,
+this way each file can be regenerated individually according to
+the same implicit rule.
+
+
+17: With the Makefile restructure, I can only provide for
+Cygwin/gcc.  Hopefully this is a bit cleaner and others can add
+their compilers w/o re-spaghetting the file.  I have provided
+several makefiles as examples only, I do not intend for the
+project to start maintaining multiple Makefiles.  Perhaps some of
+the platform specific Makefile code could be split out into
+separate files and we could use the "include" directive to read in
+the correct one.
+
+Better than this, let's get a configure.in guru on the project and
+dynamically create the Makefiles!
+
+
+18: In an effort to get this to market (you knew this was coming
+eh?), I am going to put the standards suggestions in another file
+and ship this one as is.  But then, you can probably guess most of
+the standards by the changes you see.
+
+
+19: Added a really quick and dirty "install" target to the
+Makefile.  This needs to be cleaned up and proper directories put
+in for each platform.
+
+
+-- release 1 (obsoleted) --
+
+
+20: Incorporated the TOGGLE and webDAV support patches into my
+Cygwin patch.  I added conditional compilation to both features.
+I changed "extern BOOL g_bToggleIJB;" to be of type "int".  This
+makes jcc.h independent of "windows.h".  The inclusion of such
+should not (and is not) necessary for compilation on all
+platforms.  Besides, BOOL is really only a char or an int anyway!
+
+
+21: Added a new ini!  I modified the usual un?x type config file
+to M$ type ini file for a Perl regexp compile.  This was necessary
+to call EditFile on the Perl regexp config file.  The new ini
+filename is "sregexp.ini" (naturally).  I then added menu items to
+edit the popup.ini and sregexp.ini files.
+
+
+22: I made "dot h" files for all the "dot c" files.  I used this
+command to do the *dirty* work:
+    grep -e "^[A-z]" *.c | sed -e "/=/d" -e "/^[^(]*$/d" \
+         -e "/^extern/d" -e "/^static/d" -e "/;$/d"
+
+And I made each "dot h" file be immune to multiple inclusion via
+conditional compilation.  Ie. the "jcc.h" file will only include
+itself if _JCC_H is undefined.
+
+After this was done, I compiled the project source by source and
+let the compiler tell me what each file was dependent on.  Once I
+got all the objects to compile, I included the new dependencies in
+the Makefiles.
+
+BTW, I intend to get the Makefile to be generated by a configure
+script.  Whether this is a GNU "configure.in" type file or a shell
+script, I do not know.  All I do know is that this is a must for a
+"Go/No go" type decision.  We cannot proceed with the philosophy
+"leave it up to the user to get it to work".
+
+
+23: I broke out the code to load the config file from main.  I put
+this code into a function called load_config.  I made this routine
+be called from a signal "HUP".  This means we can restart
+junkbusters from the command line or from the daemon script via
+"restart" without actually killing it and restarting it.  This is
+common behavior to un?x daemons (see inetd for example).  I fixed
+the junkbusters.init script to take advantage of this.  I intend
+to make a M$ menu complement to this as soon as I can.
+
+
+24: BTW, if you have not already noticed by my postings and/or
+code, I have added patches and made them all conditionally
+compiled.  Ie. #ifdef TOGGLE, #ifdef WEBDAV, #ifdef PCRS, etc...
+I think that all extensions to IJB should be submitted in this
+way.  Not only can you compile IJB to be as "tight" as you want,
+it also gives the user a "smorgasbord" of options to
+choose from.  This is quite common in the free software world (you
+need look no farther than emacs to see this) and provides maximum
+flexibility.
+
+
+25: As promised, I obsoleted the "ijbw32.ini" file.  I was a bit
+confused by the "close-behaviour=1" entry.  It seems to me that it
+duplicated the "close-button-minimizes=1" entry.  And (by looking
+at the code) it was unused.  Anyway, I eliminated the "ijbw32.ini"
+file and assimilated the settings into the config file.  Bye Bye
+"ijbw32.ini", hello "config" (aka. don't unnecessarily duplicate
+files and/or data types).
+
+
+26: Eliminated re_filter.c.  This only defined
+(un)load_re_filterfile and re_process_buffer.  I moved
+(un)load_re_filterfile to loaders.c and re_process_buffer to
+filters.c. I also modified the Makefiles to reflect this.  In the
+doing, I modified the loader and unloader to use the "files"
+variable and moved joblist to "re_filterfile_spec" struct.  I
+added "plist" to the client_state so that all Perl regexp code
+could find the latest parsing of the re_filterfile ini.
+
+This is in keeping with the IJB data structures philosophies.
+
+
+27: Eliminated acl.c.  This (as pcre) only defined
+(un)load_aclfile and block_acl.  I moved (un)load_aclfile to
+loaders.c and block_acl to filters.c.  I also modified the
+Makefiles to reflect this.
+
+
+28: Since I created "dot h" files for all the "dot c" files, I
+eliminated all the "extern ...variable;" and all the "extern
+...function;" statements that I could find in the "dot c" files.
+Instead, I included the proper "dot h" files to do this for us.
+
+
+29: Corrected the "install" Makefile target for un?x.  I will do
+the same for WIN32 targets.
+
+
+30: Note on the "TOGGLE" patch: since I made IJB fully restartable
+via a NOHUP signal; I thought the TOGGLE patch should apply to
+both un?x and WIN32.  Thus, I eliminated the WIN32 dependencies in
+that patch and added "toggle" to the config file.  Now everything
+works fine for either platform.  Still to come is a restart menu
+command in WIN32 (See: note 23).
+
+
+31: Just a possible programmer note, we REALLY need a generic
+linked list module.  Since text lists, client states, filter
+files, etc... implement list creation and destruction over and
+over; I suggest a generic list that can handle *any* type of list
+(ala template classes in C++).  If this module included an
+iterator (of sorts), we could eliminate the myriad of "for ( top=x;
+NULL != x->next; x=x->next )" type statements that are all over
+IJB.
+
+After all, this was taught in the basic "Intro to Data Types"
+class (for all you CS majors).
+
+
+32: Renamed all of the .INI files to be .TXT files.  I did this
+because the .INI files were NOT *really* ini files; which
+potentially be confusing.  I used the .TXT extension to make sure
+that EditFile still worked.
+
+
+33: Removed the "initialed comments", such as "/* swa */".  This
+leads to less readable code (because it becomes fragmented) and
+retains the "multiple personality" syndrome.  Comments such as
+this can always be figured out from the versioning system.  Also,
+these comments really should be pooled in one place : the README
+files.
+
+
+34: Perhaps we should break with the current versioning tactic of 
+a "tail version" and start fresh.  Perhaps a new major version
+release is in order?  Version = 3.0.0?
+
+
+35: Added a "Accept-Encoding: gzip" cruncher.  If a stream is
+compressed via gzip (Netscape specific I think), then it cannot
+be modified with Perl regexps.  So I added this as an option in
+the Makefiles.
+
+
+36: As promised in one of my postings, I have make a
+configure-esk script to generate the Makefiles.  I would still
+like to have a full blown configure.in compatible system, but this 
+will do in the meantime.  Note: this configure script covers
+linux, cygwin, and mingw32.  At this point I do not have VC++ to
+test any of my changes.  But the configure script should be
+flexible enough to handle this platform.
+
+
+--
+
+Please give any feedback to the ijb egroups and, if you feel you
+need quicker contact, CC me at IwantToKeepAnon@yahoo.com
+
+Let me say once more, this has a *lot* of changes and may (aka
+WILL) break a lot of existing patches.  But I hope the "idea" will
+catch on.  Perhaps this could be made the baseline code base and
+other patches added and standardized later.
+
+*****************************************************************************
+* Date:        7 May 2001                                                   *
+* Version:     ??                                                           *
+* Description: Changes for MS Visual C++                                    *
+* Author:      Jon Foster <jon@jon-foster.co.uk>                            *
+*****************************************************************************
+(Based on Stromlund's version 0.20)
+
+I have made several changes to make this compile under VC++ 97, and add new
+features.
+
+Code changes:
+
+1) If you disable IJB (using the TOGGLE patch) it now turns PCRS off.
+2) "Missing function prototype" warnings have been corrected by adding
+   appropriate #include statements
+3) The _DIST_URL define removed and hardcoded.  There are hardcoded URLs all 
+   over the place that need fixing - one more doesn't matter.  We do really 
+   need to come up with a long-term solution though.  (Suggestion: Host a 
+   redirector on the SourceForge web space.  e.g 
+   "http://ijbswa.sourceforge.net/redirect.php?ver=2.0.2-10&target=faq",
+   "http://ijbswa.sourceforge.net/redirect.php?ver=2.0.2-10&target=download",
+   etc.  This allows us to move the pages around easily, and the SourceForge
+   space can be maintained by anyone who's interested, it's not tied to a 
+   particular individual.  This is similar to the approach taken by 
+   Microsoft and Netscape in their browsers.)
+4) New file ijbconfig.h is #included everywhere.  This provides me with a
+   place to define VERSION, PCRS, etc.  You can still define VERSION_xxx
+   on the command line, but the other defines are in the header file.
+   There were just too many #defines - so many that the VC++ 97 IDE 
+   broke when I tried to define them on the command line.  We probably 
+   should fix the configure script so that it modifies this file.
+5) Deleted empty file afxres.h - we needed to use the VC++ system header 
+   file of that name.  However, it's easier to just delete it and put 
+   the relevent #defines in w32res.h.
+6) New #define: NO_PROGRAM_NAME_DISPLAY uses "IJB" as the program name in 
+   the log file instead of "H:\Documents and Settings\Administrator\My 
+   Documents\Prog\VC\ijb2\Release\junkbuter.exe" or similar.  The reason 
+   for this should be obvious!
+7) New #define: STATISTICS enables the statistics feature
+8) Statistics is thread-safe, I think.  However, loading up the
+   statistics page now counts as a blocked request.
+9) New, shorter message if a setting in the config file is recognised 
+   but unsupported by the current build.  It doesn't have "WARNING:" in
+   front of it either.  We may want to actually take this message out 
+   and have it just silently ignore these entries.
+10) New feature: #define SPLIT_PROXY_ARGS and the show-proxy-settings 
+    page will split each file out to a seperate page.  This is 
+    because the files are quite big, and having to do 1 extra click to 
+    get to them is no problem.  This #define also disables the 
+    suppress_blocklists feature (because I believe the original intent 
+    of suppress_blocklists was similar?).  It also saves memory by 
+    reading the config files to generate the HTML on the fly, rather 
+    than storing prepared HTML constantly in memory.
+11) Marked global constants with "const" attribute.  This has a 
+    knock-on effect on pointers in function prototypes, so these have
+    also been marked const where needed.
+12) Rewrote encode.c to have tables pre-initialized, so it can be 
+    marked constant.  Also split into 3 distinct functions so that
+    the tables (which are realy an implementation detail) are not
+    visible outside that file.
+13) Changes to how files are reloaded when you reload the config 
+    file.  Previous method didn't free memory (or if you uncommented 
+    the free() calls, it was not thread-safe.)  It is now handled 
+    automatically - files are reloaded whenever the filename to 
+    read changes, or the file's timestamp changes.  The code in
+    loaders.c which handles this test has been moved to a single
+    utility function.
+14) killpopup changes:
+     * Only compiled if you #define KILLPOPUPS
+     * Call to filter_popups() moved from read_socket() to chat().
+     * Writing 1 past end of buffer bug fixed.
+     * It was scanning the whole buffer even if only partially filled.
+     * Moved load/unload to loaders.c and changed file handling to 
+       follow standard.
+15) Auto-detect whether we want an image or HTML implemented for 
+    Microsoft IE.  :-)
+    There doesn't seem to be a way to tell with the latest build 
+    of Mozilla. :-(
+16) Image file code conditionally compiled.
+17) Provided option (SPLIT_PROXY_ARGS) to split the show-proxy-args
+    page into a main page, and then a page for each config file.  
+    This option will also save memory by loading the files when 
+    required for display, rather than saving them in memory when
+    they are initially loaded.
+18) Force page loading ("noijb.") patch applied.  #define FORCE_LOAD
+
+
+Packaging changes:
+
+1) PCRE 3.4 (less it's test and demo programs) is now included in the 
+   pcre directory.  It will be statically linked with Junkbuster.  (On 
+   win32, DLLs cause a lot of hassle - with a library this small it isn't 
+   worth it.  I don't know if it would be better to dynamically link under
+   UNIX?)
+2) junkbustr.dsp and junkbustr.dsw VC++97 project and workspace files are
+   included.
+3) win32build/junkbustr.exe Win32 binary is included.  It should not require
+   any DLLs.  It was compiled with all features supported.
+4) All README.xyz files put together in this file.
+5) Unused files (acl.c, pthread.c, ...) deleted.
+6) My block & cookie files used (based on the Waldherr ones).
+
+Known bug: The Adobe Acrobat 4 plug-in fails when I try to view PDF files in
+MSIE.  Workaround: disable "web browser integration" in the Adobe Acrobat 
+settings.
+
+*****************************************************************************
+* Date:        14 May 2001 (early morning)                                  *
+* Version:     Reported as 2.9.0                                            *
+* Description: Various updates                                              *
+* Author:      Jon Foster <jon@jon-foster.co.uk>                            *
+*****************************************************************************
+
+1)  Now use PCRE, not GNU REGEX.  I have not yet had chance to check the
+    syntax of the block/image/cookie file to ensure that they match what
+    is expected - however they seem to work.
+2)  Replaced "configure" script with one generated by "autoconf".  Also 
+    use a header "config.h" (was ijbconfig.h in my previous release) for 
+    the #defines.  "config.h" is now generated with "autoheader" from 
+    "acconfig.h" and "configure.in".  (Note that to install you do not
+    need autoconf or autoheader - just run "./configure".)
+    To see command-line options, run "./configure --help".
+    This is my first ever autoconf script, so it has some rough edges
+    (how PCRE is handled is the roughest).
+3)  Error logging code replaced with new module errlog.c, based on the
+    one from JunkBusterMT (but with the threading code removed).
+4)  Most of Rodney's 0.21 and 0.21A patches applied. (Marked *).  I did not
+    apply all of these, since I had already independently done conditional
+    popup file, conditional image file, and integration of popup code.
+5*) ACL, Jar and trust files conditionally compiled.
+6*) New source file headers.
+7*) Various cosmetic changes.  (But I have not consistently ordered the 
+    config files - I think that's worthwhile, but it's 1am and I want to
+    get this released!)
+8*) RCS tags on .h files.
+9)  RCS tags are const char[] rather than const char *.  (Saves 4 bytes
+    per tag ;-)
+10) VC++ project files renamed to vc_junkbuster.*.
+11) show-proxy-args now shows status of all conditionals, not just REGEX
+12) Various functions moved around.  Most notably all the system-specific
+    sockets code which was spread between jcc.c, bind.c, and connect.c,
+    has been moved to "jbsockets.c".  The non-system-specific code from
+    connect.c and socks4.c has been movet to "gateway.c".  Also, the
+    config file loader and the global variables it writes to have been
+    moved to "loadcfg.c".  (Maybe this should go into loaders.c?)
+    And candidate for the "worst filename ever" award is "miscutil.c",
+    which contains, well, miscellaneous utility functions like zalloc.
+    (Suggestions for a better name for this file are welcome!)
+13) Loaders now use a common function to read a line and skip comments,
+    and this function also stores the proxy_args.
+14) Added ./junkbuster --help     (Not for Win32 GUI)
+15) Added ./junkbuster --version  (Not for Win32 GUI)
+16) Win32 resources are now all marked as "U.S. English", rather than
+    being a mix of "U.S. English", "U.K. English" and "Irish English".
+17) Version number changes to 2.9.0
+
+Known bugs:
+- See (1) above about blockfiles.
+- Sending SIGHUP (under Red Hat Linux 7.1) causes a crash.  v0.21A hangs
+  after a SIGHUP.  This needs investigating, but pthreads support will 
+  almost certainly help here, so it may not be worth investigating
+  immediately.
+- Compiling with shared system pcre and pcreposix libraries is supported
+  via a switch to configure, but completely untested.
+
+Please note that there are now 2^14 == 16384 combinations of conditional 
+defines, and 4 major compilers (VC, Linux, mingw32, cygwin) for a total 
+of 65536 different builds.  We cannot possibly test all of them!  My 
+standard build is "everything on", and I've tested that on each compiler,
+along with a few variants.  You may uncover new bugs (probably compiler 
+errors) if you use an exotic combination of switches.
+
+*****************************************************************************
+* Date:        14 May 2001                                                  *
+* Version:     2.9.1                                                        *
+* Description: Various updates                                              *
+* Author:      Andreas S. Oesterhelt <oes@oesterhelt.org>                   *
+*****************************************************************************
+(From his e-mail:)
+
+ - in parsers.c, fixed two #ifdef FORCE to #ifdef FORCE_LOAD
+   (BTW: I think FORCE is precise enough, since loading remote
+   data is the whole purpose of a proxy..)
+ - Set the FORCE_PREFIX (back) to 'IJB-FORCE-LOAD-'. While 'noijb.'
+   is more elegant and looks like a hostname in the URL, it doesn't
+   make clear to the inexperienced user that the proxy is bypassed. It
+   also has a higher name collision risk.
+ - Filled in the function header templates for my functions in
+   parsers.c (again). They obviously got lost in our current
+   patch war ;-)
+ - Cut the credit for the §-referrer-option from the config file,
+   that Stefan had placed there.
+ - Improved the re_filterfile 
+
+*****************************************************************************
+* Date:        14 May 2001                                                  *
+* Version:     2.9.2                                                        *
+* Description: FORCE patch (again!)                                         *
+* Author:      Andreas S. Oesterhelt <oes@oesterhelt.org>                   *
+*****************************************************************************
+(These notes written by Jon)
+
+- Andreas applied the latest version of the FORCE patch.
+
+*****************************************************************************
+* Date:        14 May 2001 (late afternoon)                                 *
+* Version:     2.9.3                                                        *
+* Description: Various updates                                              *
+* Author:      Jon Foster <jon@jon-foster.co.uk>                            *
+*****************************************************************************
+
+1) Incorporated updates from current CVS tree, including:
+   - Amiga support (completely untested by me - I don't have an Amiga)
+   - "tinygif 3" support (redirects blocked images to a specified URL, so
+     the browser doesn't have to load and cache many copies of the same
+     image).
+   - one case where there were both local and global "referrer" variables
+     (yuck!) clarified by renaming the local one to "refer".
+   - Fixed some places where close() was used instead of close_socket().
+   Thanks to Jörg Strohmayer (joergs at users.sourceforge.net) for these.
+2) Temporary hack to get FORCE_LOAD to work with IE.  I just lowercased the
+   FORCE_LOAD_PREFIX.  Needs fixing properly.
+3) Most URLs hardcoded into JunkBuster were changed to go through a script
+   e.g. http://ijbswa.sourceforge.net/redirect.php?v=2.9.3&to=faq
+   The only other URLs left are the GNU GPL:
+     http://www.fsf.org/copyleft/gpl.html
+   and the home page:
+     http://ijbswa.sourceforge.net/
+   ... and various URLs which will be intercepted by JunkBuster anyway.
+   TODO: Still need to do something with the URLs in JunkBuster Corp's 
+   copyright/trademark notice on the bottom of the show-proxy-args page.
+4) PCRE or GNU Regex is now a #define option.
+
+*****************************************************************************
+* End of file                                                               *
+*****************************************************************************
+
diff --git a/doc/gpl.html b/doc/gpl.html
new file mode 100644 (file)
index 0000000..7f0b610
--- /dev/null
@@ -0,0 +1,567 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\r
+<html>\r
+<head>\r
+<!-- Copyright 1996-8 Junkbusters Corporation -->\r
+<!-- This work comes with NO WARRANTY -->\r
+<!-- It may be redistributed and modified under the GNU GPL-->\r
+<!-- See the body of http://www.junkbusters.com/ht/en/gpl.html for details-->\r
+<!-- Junkbusters is a registered trade mark of Junkbusters Corporation -->\r
+<!-- Generated 1998/10/31 03:58:25 UTC -->\r
+<meta name="Generator" content="Junkbusters Ebira $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $">\r
+<!-- Document  ID: $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $ -->\r
+<title>\r
+The GNU General Public License\r
+</title>\r
+<base href="http://www.junkbusters.com/ht/en/gpl.html">\r
+<meta name="description" content="We did not write the GPL: the Free Software Foundation did | The GPL allows copying and changing of copyrighted documents | Version 2, June 1991 | Preamble | GNU General Public License: Terms and Conditions for Copying, Distribution and Modification | Appendix: How to Apply These Terms to Your New Programs">\r
+<meta name="keywords" content="stop, junk, busters, junkbusters, junkbuster, mail, email, e-mail, direct, spam, spamoff, declare, telemarketing, telemarketers, privacy, sharing, names, renting, direct, marketing, database, databases, junk mail, lists, environment, conservation, recycling, catalogs, consumer, sending, opt out ">\r
+<link rel="next" href="precre.html">\r
+<link rel="previous" href="precre.html">\r
+<link rel="contents" href="toc.html">\r
+</head>\r
+<body bgcolor="#f8f8f0" link="#000078" alink="#ff0022" vlink="#787878">\r
+<p align="center">\r
+<a name="top_of_page" href="legal.html#marks">\r
+<img border=0 width=160 height=34 src="/images/trans_tn.gif" alt="Junkbusters"></a>\r
+</p>\r
+\r
+<center>\r
+<h1>The GNU General Public License\r
+</h1>\r
+</center>\r
+<!-- Translators: no -->\r
+<center>\r
+<h2><a name="notus"><font face="arial, helvetica">\r
+We did not write the GPL: the Free Software Foundation did\r
+</font></a>\r
+</h2>\r
+</center>\r
+\r
+<h3><a name="allows" href="/cgi-bin/gp?pg=gpl&pr=allows"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+The GPL allows copying and changing of copyrighted documents\r
+</h3>\r
+<p>\r
+<a name="fsf">The Free Software Foundation</a>\r
+<a href="http://www.fsf.org/fsf/fsf.html">(FSF)</a>\r
+is a non-profit institution\r
+that designed the GNU General Public License (GPL) to promote the\r
+publication of free software.\r
+The GPL is used by thousands of programmers\r
+who want to give others the right to copy and modify\r
+the source code of their programs. Millions of people benefit from this.\r
+<p>\r
+<a name="junkbuster">We use the GPL</a>\r
+to allow everyone to use, copy and modify the\r
+<a href="ijb.html">Internet Junkbuster</a>\r
+as they wish.\r
+<a name="separate">Companies can use it for commercial purposes,</a>\r
+but they are not permitted to use it in products that they claim\r
+as their property\r
+without negotiating a separate agreement with us beforehand.\r
+<p>\r
+<a name="text">The GPL</a>\r
+<a href="http://dsl.org/copyleft/">can also be used</a>\r
+on documents written in human languages.\r
+We give everyone permission to use everything on our web site under the GPL.\r
+This means that you do not have to break copyright laws in order\r
+to print a page or email a screen of the text to someone, for example.\r
+Many sites do not permit you to do these things.\r
+<p>\r
+<a name="best">If you have a home page,</a>\r
+we recommend that you consider using the GPL to\r
+allow others the right to copy and use all the documents you create for it.\r
+If you just mark a page as copyright, they won't even\r
+legally be able to print it.\r
+If you don't state you are its copyright owner,\r
+they could change it slightly and claim it as their own property. \r
+By marking it with both copyright and GPL notices\r
+you allow them to copy it but not to claim\r
+anything derived from it as their own.\r
+<p>\r
+<a name="protect">The GPL protects your</a>\r
+<a href="declare.html">J<small>UNK<i>BUSTERS</i></small> D<small>ECLARATION</small></a>,\r
+<a href="spamoff.html">Spam Offer</a>,\r
+and all documents from us that you publish on your home page\r
+or distribute to direct marketers by any other means.\r
+By making your\r
+D<small>ECLARATION</small>\r
+available to them under the GPL, you are\r
+<a href="precre.html#gpl">permitting them use to it, but never to claim it as their property,</a>\r
+even if they transform it.\r
+<p>\r
+<a name="rest">The</a>\r
+remainder of this page is the text of the GPL.\r
+As legal documents go it's relatively clear,\r
+but unfortunately it's fairly long because it has to cover\r
+a lot of details specific to computer programs\r
+that may not be relevant to\r
+D<small>ECLARATION</small>s.\r
+The hypertext links are ours, and should not be misinterpreted\r
+as an indication of emphasis by the FSF.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<center>\r
+<h2><a name="v2"><font face="arial, helvetica">\r
+Version 2, June 1991\r
+</font></a>\r
+</h2>\r
+</center>\r
+<blockquote>\r
+<a name="crn">Copyright 1989, 1991</a>\r
+<br>\r
+<a name="address">Free Software Foundation, Inc.</a>\r
+<br>\r
+675 Mass Ave.\r
+<br>\r
+Cambridge, MA 02139\r
+<br>\r
+USA\r
+</blockquote>\r
+<a name="changing">Everyone</a>\r
+is permitted to copy and distribute verbatim copies\r
+of this license document, but changing it is not allowed.\r
+\r
+<h3><a name="pream" href="/cgi-bin/gp?pg=gpl&pr=pream"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Preamble\r
+</h3>\r
+<p>\r
+The licenses for most software are designed to take away your\r
+freedom to share and change it.  By contrast, the GNU General Public\r
+License is intended to guarantee your freedom to share and change free\r
+software--to make sure the software is free for all its users.  This\r
+General Public License applies to most of the Free Software\r
+Foundation's software and to any other program whose authors commit to\r
+using it.  (Some other Free Software Foundation software is covered by\r
+the GNU Library General Public License instead.)  You can apply it to\r
+your programs, too.\r
+<p>\r
+<a name="freedom">When we speak of free software,</a>\r
+we are referring to freedom, not\r
+price.  Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+this service if you wish), that you receive source code or can get it\r
+if you want it, that you can change the software or use pieces of it\r
+in new free programs; and that you know you can do these things.\r
+<p>\r
+<a name="forbid">To protect your rights,</a>\r
+we need to make restrictions that forbid\r
+anyone to deny you these rights or to ask you to surrender the rights.\r
+These restrictions translate to certain responsibilities for you if you\r
+distribute copies of the software, or if you modify it.\r
+<p>\r
+<a name="allrights">For example,</a>\r
+if you distribute copies of such a program, whether\r
+gratis or for a fee, you must give the recipients all the rights that\r
+you have.  You must make sure that they, too, receive or can get the\r
+source code.  And you must show them these terms so they know their\r
+rights.\r
+<p>\r
+<a name="steps">We protect your rights with two steps:</a>\r
+(1) copyright the software, and\r
+(2) offer you this license which gives you legal permission to copy,\r
+distribute and/or modify the software.\r
+<p>\r
+<a name="protection">Also,</a>\r
+for each author's protection and ours, we want to make certain\r
+that everyone understands that there is no warranty for this free\r
+software.  If the software is modified by someone else and passed on, we\r
+want its recipients to know that what they have is not the original, so\r
+that any problems introduced by others will not reflect on the original\r
+authors' reputations.\r
+<p>\r
+<a name="threat">Finally,</a>\r
+any free program is threatened constantly by software\r
+patents.  We wish to avoid the danger that redistributors of a free\r
+program will individually obtain patent licenses, in effect making the\r
+program proprietary.  To prevent this, we have made it clear that any\r
+patent must be licensed for everyone's free use or not licensed at all.\r
+<p>\r
+<a name="terms">The precise terms and conditions</a>\r
+for copying, distribution and\r
+modification follow.\r
+</p>\r
+\r
+<h3><a name="tnc" href="/cgi-bin/gp?pg=gpl&pr=tnc"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+GNU General Public License: Terms and Conditions for Copying, Distribution and Modification\r
+</h3>\r
+<p>\r
+<a name="applies">O.</a>\r
+This License applies to any program or other work which contains\r
+a notice placed by the copyright holder saying it may be distributed\r
+under the terms of this General Public License.  The "Program", below,\r
+refers to any such program or work, and a "work based on the Program"\r
+means either the Program or any derivative work under copyright law:\r
+that is to say, a work containing the Program or a portion of it,\r
+either verbatim or with modifications and/or translated into another\r
+language.  (Hereinafter,\r
+<a href="bus-ops.html#trans">translation</a>\r
+is included without limitation in\r
+the term "modification".)  Each licensee is addressed as "you".\r
+<p>\r
+<a name="scope">Activities</a>\r
+<a href="faqs.html#copying">other than copying, distribution and modification are not covered by this License;</a>\r
+they are outside its scope.  The act of\r
+running the Program is not restricted, and the output from the Program\r
+is covered only if its contents constitute a work based on the\r
+Program (independent of having been made by running the Program).\r
+<p>\r
+<a name="depends">Whether that is true depends on what the Program does.</a>\r
+<br><ol  type="1">\r
+<li>\r
+<a name="verbatim">You may copy</a>\r
+and distribute verbatim copies of the Program's\r
+source code as you receive it, in any medium, provided that you\r
+conspicuously and appropriately publish on each copy an appropriate\r
+copyright notice and disclaimer of warranty; keep intact all the\r
+notices that refer to this License and to the absence of any warranty;\r
+and give any other recipients of the Program a copy of this License\r
+along with the Program.\r
+<p>\r
+<a name="fee">You may charge a fee</a>\r
+for the physical act of transferring a copy, and\r
+you may at your option offer warranty protection in exchange for a fee.\r
+<li>\r
+<a name="modify">You may modify</a>\r
+your copy or copies of the Program or any portion\r
+of it, thus forming a work based on the Program, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+<br><ol  type="a">\r
+<li>\r
+<a name="notices">You must cause</a>\r
+the modified files to carry prominent notices\r
+stating that you changed the files and the date of any change.\r
+<li>\r
+<a name="nocharge">You must</a>\r
+cause any work that you distribute or publish, that in\r
+whole or in part contains or is derived from the Program or any\r
+part thereof, to be licensed as a whole at no charge to all third\r
+parties under the terms of this License.\r
+<li>\r
+<a name="interactive">If the modified program</a>\r
+normally reads commands interactively\r
+when run, you must cause it, when started running for such\r
+interactive use in the most ordinary way, to print or display an\r
+announcement including an appropriate copyright notice and a\r
+notice that there is no warranty (or else, saying that you provide\r
+a warranty) and that users may redistribute the program under\r
+these conditions, and telling the user how to view a copy of this\r
+License.  (Exception: if the Program itself is interactive but\r
+does not normally print such an announcement, your work based on\r
+the Program is not required to print an announcement.)\r
+</ol>\r
+<p>\r
+<a name="sections">These requirements</a>\r
+apply to the modified work as a whole.  If\r
+identifiable sections of that work are not derived from the Program,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works.  But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Program, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote it.\r
+<p>\r
+<a name="intent">Thus,</a>\r
+it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Program.\r
+<p>\r
+<a name="aggregation">In addition,</a>\r
+mere aggregation of another work not based on the Program\r
+with the Program (or with a work based on the Program) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+<li>\r
+<a name="exeutable">You may copy</a>\r
+and distribute the Program (or a work based on it,\r
+under Section 2) in object code or executable form under the terms of\r
+Sections 1 and 2 above provided that you also do one of the following:\r
+<br><ol  type="a">\r
+<li>\r
+<a name="medium">Accompany it</a>\r
+with the complete corresponding machine-readable\r
+source code, which must be distributed under the terms of Sections\r
+1 and 2 above on a medium customarily used for software interchange; or,\r
+<li>\r
+<a name="written">Accompany it with a written offer,</a>\r
+valid for at least three\r
+years, to give any third party, for a charge no more than your\r
+cost of physically performing source distribution, a complete\r
+machine-readable copy of the corresponding source code, to be\r
+distributed under the terms of Sections 1 and 2 above on a medium\r
+customarily used for software interchange; or,\r
+<li>\r
+<a name="distrib">Accompany it</a>\r
+with the information you received as to the offer\r
+to distribute corresponding source code.  (This alternative is\r
+allowed only for noncommercial distribution and only if you\r
+received the program in object code or executable form with such\r
+an offer, in accord with Subsection b above.)\r
+</ol>\r
+<p>\r
+<a name="preferred">The source code</a>\r
+for a work means the preferred form of the work for\r
+making modifications to it.  For an executable work, complete source\r
+code means all the source code for all modules it contains, plus any\r
+associated interface definition files, plus the scripts used to\r
+control compilation and installation of the executable.  However, as a\r
+special exception, the source code distributed need not include\r
+anything that is normally distributed (in either source or binary\r
+form) with the major components (compiler, kernel, and so on) of the\r
+operating system on which the executable runs, unless that component\r
+itself accompanies the executable.\r
+<p>\r
+<a name="access">If distribution of executable or object code is made</a>\r
+by offering\r
+access to copy from a designated place, then offering equivalent\r
+access to copy the source code from the same place counts as\r
+distribution of the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+<li>\r
+<a name="otherwise">You may not copy,</a>\r
+modify, sublicense, or distribute the Program\r
+except as expressly provided under this License.  Any attempt\r
+otherwise to copy, modify, sublicense or distribute the Program is\r
+void, and will automatically terminate your rights under this License.\r
+However, parties who have received copies, or rights, from you under\r
+this License will not have their licenses terminated so long as such\r
+parties remain in full compliance.\r
+<li>\r
+<a name="voluntary">You are not required</a>\r
+to accept this License, since you have not\r
+signed it.  However, nothing else grants you permission to modify or\r
+distribute the Program or its derivative works.  These actions are\r
+prohibited by law if you do not accept this License.  Therefore, by\r
+modifying or distributing the Program (or any work based on the\r
+Program), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Program or works based on it.\r
+<li>\r
+<a name="redistrib">Each time you redistribute</a>\r
+the Program (or any work based on the\r
+Program), the recipient automatically receives a license from the\r
+original licensor to copy, distribute or modify the Program subject to\r
+these terms and conditions.  You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties to\r
+this License.\r
+<li>\r
+<a name="patent">If, as a consequence of a court judgment</a>\r
+or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License.  If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Program at all.  For example, if a patent\r
+license would not permit royalty-free redistribution of the Program by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Program.\r
+<p>\r
+<a name="invalid">If any portion</a>\r
+of this section is held invalid or unenforceable under\r
+any particular circumstance, the balance of the section is intended to\r
+apply and the section as a whole is intended to apply in other\r
+circumstances.\r
+<p>\r
+<a name="induce">It is not the purpose</a>\r
+of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system, which is\r
+implemented by public license practices.  Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+<p>\r
+<a name="clarify">This section</a>\r
+is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+<li>\r
+<a name="geog">If the distribution</a>\r
+and/or use of the Program is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Program under this License\r
+may add an explicit geographical distribution limitation excluding\r
+those countries, so that distribution is permitted only in or among\r
+countries not thus excluded.  In such case, this License incorporates\r
+the limitation as if written in the body of this License.\r
+<li>\r
+<a name="revise">The Free Software Foundation</a>\r
+may publish revised and/or new versions   \r
+of the General Public License from time to time.  Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+Each version is given a distinguishing version number.  If the Program\r
+specifies a version number of this License which applies to it and "any\r
+later version", you have the option of following the terms and conditions\r
+either of that version or of any later version published by the Free\r
+Software Foundation.  If the Program does not specify a version number of\r
+this License, you may choose any version ever published by the Free Software\r
+Foundation.\r
+<li>\r
+<a name="permission">If you wish to incorporate parts</a>\r
+of the Program into other free\r
+programs whose distribution conditions are different, write to the author\r
+to ask for permission.  For software which is copyrighted by the Free\r
+Software Foundation, write to the Free Software Foundation; we sometimes\r
+make exceptions for this.  Our decision will be guided by the two goals\r
+of preserving the free status of all derivatives of our free software and\r
+of promoting the sharing and reuse of software generally.\r
+<p>\r
+<a name="nowarr">NO WARRANTY</a>\r
+<li>\r
+<a name="foc">BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,</a>\r
+THERE IS NO WARRANTY\r
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\r
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+REPAIR OR CORRECTION.\r
+<li>\r
+<a name="liable">IN NO EVENT UNLESS REQUIRED</a>\r
+BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+POSSIBILITY OF SUCH DAMAGES.\r
+</ol>\r
+END OF TERMS AND CONDITIONS\r
+</p>\r
+\r
+<h3><a name="append" href="/cgi-bin/gp?pg=gpl&pr=append"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Appendix: How to Apply These Terms to Your New Programs\r
+</h3>\r
+<p>\r
+If you develop a new program, and you want it to be of the greatest\r
+possible use to the public, the best way to achieve this is to make it\r
+free software which everyone can redistribute and change under these terms.\r
+<p>\r
+<a name="attach">To do so,</a>\r
+attach the following notices to the program.  It is safest\r
+to attach them to the start of each source file to most effectively\r
+convey the exclusion of warranty; and each file should have at least\r
+the "copyright" line and a pointer to where the full notice is found.\r
+<blockquote>\r
+&lt;one line\r
+to give the program's name and a brief idea of what it\r
+does.&gt;\r
+Copyright (C) 19yy\r
+&lt;name of\r
+author&gt;\r
+<p>\r
+<a name="free">This program is free software;</a>\r
+you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2 of the License, or\r
+(at your option) any later version.\r
+<p>\r
+<a name="merchant">This program</a>\r
+is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+GNU General Public License for more details.\r
+<p>\r
+<a name="ifnot">You should</a>\r
+have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+</blockquote>\r
+<p>\r
+<a name="contact">Also add</a>\r
+information on how to contact you by electronic and paper mail.\r
+<p>\r
+<a name="short">If the program is interactive,</a>\r
+make it output a short notice like this\r
+when it starts in an interactive mode:\r
+<blockquote>\r
+Gnomovision version 69, Copyright (C) 19yy name of author\r
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
+This is free software, and you are welcome to redistribute it\r
+under certain conditions; type `show c' for details.\r
+</blockquote>\r
+<p>\r
+<a name="hypo">The hypothetical</a>\r
+commands `show w' and `show c' should show the appropriate\r
+parts of the General Public License.  Of course, the commands you use may\r
+be called something other than `show w' and `show c'; they could even be\r
+mouse-clicks or menu items--whatever suits your program.\r
+<p>\r
+<a name="disclaimer">You should also get your employer</a>\r
+(if you work as a programmer) or your\r
+school, if any, to sign a "copyright disclaimer" for the program, if\r
+necessary.  Here is a sample; alter the names:\r
+<blockquote>\r
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program\r
+`Gnomovision' (which makes passes at compilers) written by James Hacker.\r
+\r
+&lt;signature\r
+of\r
+Ty Coon&gt;,\r
+1 April 1989\r
+<br>\r
+Ty Coon, President of Vice\r
+</blockquote>\r
+<p>\r
+<a name="library">This General Public License</a>\r
+does not permit incorporating your program into\r
+proprietary programs.  If your program is a subroutine library, you may\r
+consider it more useful to permit linking proprietary applications with the\r
+library.  If this is what you want to do, use the GNU Library General\r
+Public License instead of this License.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<font face="arial, helvetica">\r
+<a rel="begin" href="index.html">Home</a> <font color="#ff0000">\r
+<b> &#183; </b></font>\r
+<a rel="next" href="precre.html">Next</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="lopt.html">Site Map</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="legal.html">Legal</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkdata.html">Privacy</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="cookies.html">Cookies</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijb.html">Banner Ads</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="telemarketing.html">Telemarketing</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkmail.html">Mail</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkemail.html">Spam</a>\r
+\r
+</font><form action="/cgi-bin/search" method="GET">\r
+<input type="text" name="q" size=60 maxlength=120 value="">\r
+<input type="submit" value="Search"></form>\r
+<small>\r
+<small>\r
+<p>\r
+<a href="legal.html#copy">Copyright</a> &#169; 1996-8 Junkbusters\r
+<a href="legal.html#marks">&#174;</a> Corporation.\r
+Copying and distribution permitted under\r
+the <a href="gpl.html"><small>GNU</small></a>\r
+General Public License.\r
+</small>\r
+<tt>\r
+1998/10/31\r
+http://www.junkbusters.com/ht/en/gpl.html\r
+</tt>\r
+<address><kbd>webmaster&#64;junkbusters.com</kbd></address>\r
+</small>\r
+</body>\r
+</html>\r
diff --git a/doc/ijbfaq.html b/doc/ijbfaq.html
new file mode 100644 (file)
index 0000000..ab7e798
--- /dev/null
@@ -0,0 +1,3186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\r
+<html>\r
+<head>\r
+<!-- Copyright 1996-8 Junkbusters Corporation -->\r
+<!-- This work comes with NO WARRANTY -->\r
+<!-- It may be redistributed and modified under the GNU GPL-->\r
+<!-- See the body of http://www.junkbusters.com/ht/en/gpl.html for details-->\r
+<!-- Junkbusters is a registered trade mark of Junkbusters Corporation -->\r
+<!-- Generated 1998/10/31 03:58:25 UTC -->\r
+<meta name="Generator" content="Junkbusters Ebira $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $">\r
+<!-- Document  ID: $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $ -->\r
+<title>\r
+Internet Junkbuster Frequently Asked Questions\r
+</title>\r
+<base href="http://www.junkbusters.com/ht/en/ijbfaq.html">\r
+<meta name="description" content="An extensive FAQ on the Internet Junkbuster, free software to removes banner ads, cookies, and other stuff you don't want from your web browser.">\r
+<meta name="keywords" content="stop, junk, busters, junkbusters, junkbuster, mail, email, e-mail, direct, spam, spamoff, declare, telemarketing, telemarketers, privacy, sharing, names, renting, direct, marketing, database, databases, junk mail, lists, environment, conservation, recycling, catalogs, consumer, sending, opt out , privacy, advertising, direct, marketing, targeting, through, click, trails, http_referer, cookie, cutter, iff, internet fast forward, Cookie Management Tool">\r
+<link rel="next" href="ijbman.html">\r
+<link rel="previous" href="ijb.html">\r
+<link rel="contents" href="toc.html">\r
+</head>\r
+<body bgcolor="#f8f8f0" link="#000078" alink="#ff0022" vlink="#787878">\r
+<center>\r
+<h1><a name="top_of_page">Internet J<small>UNK<i><font color=red>BUSTER</font></i></small> Frequently Asked Questions\r
+</a></h1>\r
+</center>\r
+<font face="arial, helvetica">\r
+<p align="center">\r
+<a href="#u">Download for UNIX</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijbwin.html#zip">(Download for Windows 95/NT)</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijbdist.html#top_of_page">(Other OS)</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#browser">Configuring Browsers</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#local">Installation</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#companies">For Companies</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#blocking">Blocking</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#cookies">Cookies</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#anonymity">Anonymity</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#security">Security</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijbman.html#top_of_page">(Technical Manual)</a>\r
+</p>\r
+</font><br>\r
+<center>\r
+<h2><a name="top"><font face="arial, helvetica">\r
+The Top Ten Questions\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>For a list of the questions on this page (without the answers),\r
+see our\r
+<a href="toc.html#ijbfaq">Table of Contents.</a>\r
+It also contains detailed pointers into our pages\r
+on\r
+<a href="cookies.html">cookies</a>\r
+and on busting \r
+<a href="junkemail.html">junk e-mail,</a>\r
+<a href="junkmail.html">junk mail</a>\r
+and\r
+<a href="telemarketing.html">telemarketing calls.</a>\r
+\r
+<h3><a name="what" href="/cgi-bin/gp?pg=ijbfaq&pr=what"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What is the Internet Junkbuster Proxy and what does it do for me?\r
+</h3>\r
+<p>\r
+The\r
+Internet Junkbuster\r
+Proxy\r
+<a href="legal.html#marks"><small><sup>TM</sup></small></a>\r
+is\r
+<a href="ijbfaq.html#free">free</a>\r
+privacy-enhancing software that can be run on your PC or by your\r
+<small>ISP</small>\r
+or company.\r
+It blocks requests for\r
+<small>URL</small>s\r
+(typically banner ads)\r
+that match its\r
+<a href="ijbfaq.html#blocking">blockfile.</a>\r
+It also deletes unauthorized\r
+<a href="ijbfaq.html#cookies">cookies</a>\r
+and other\r
+unwanted identifying\r
+<a href="ijbfaq.html#anonymity">header information</a>\r
+that is exchanged between web servers and browsers.\r
+These headers are not normally accessible to users\r
+(even though they may contain information that's important to your privacy),\r
+but with the\r
+Internet Junkbuster\r
+you can see almost\r
+<a href="ijbman.html#o_d">anything you want</a>\r
+and control everything you're likely to need.\r
+<b>You</b>\r
+<a href="over.html#you_def">decide what's junk.</a>\r
+<a href="legal.html#marks"><small><sup>SM</sup></small></a>\r
+Many people\r
+<a href="ijbfaq.html#readymade">publish</a>\r
+their blockfiles to help others get started.\r
+</p>\r
+\r
+<h3><a name="free" href="/cgi-bin/gp?pg=ijbfaq&pr=free"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Is there a license fee / warranty / registration form / expiration?\r
+</h3>\r
+<p>\r
+No, none of these.\r
+It's completely free of charge.\r
+Junkbusters\r
+offers you the software to copy, use, modify and distribute\r
+as you wish, forever, at\r
+<a href="over.html#nobucks">no charge</a>\r
+under the\r
+<a href="gpl.html">GNU General Public License.</a>\r
+<p>\r
+<a name="warranty">It comes with</a>\r
+<a href="gpl.html#nowarr">no warranty of any kind.</a>\r
+<p>\r
+<a name="register">You don't have to register,</a>\r
+in fact we don't even provide a way to do so:\r
+the practice of registering software is\r
+usually just an\r
+excuse\r
+to send you solicitations and\r
+<a href="self.html#warranty">sell your name</a>\r
+and information about your behavior.\r
+You are welcome to obtain and use our software as anonymously you wish.\r
+(Your\r
+<small>IP</small>\r
+address will naturally be\r
+<a href="http://www.junkbusters.com/cgi-bin/privacy">disclosed</a>\r
+when you download it,\r
+so if you work for a web ad company\r
+you might want to use a service such as the\r
+<a href="ijbfaq.html#anonymizing">lpwa.com</a>\r
+when you get it.\r
+We\r
+<a href="over.html#nopriv">never</a>\r
+want to be given any information that you consider private or confidential.)\r
+<p>\r
+<a name="why">We are often asked why we give away a product that many</a>\r
+would happily pay for.\r
+The answer is that we are determined to carry out our\r
+<a href="over.html">mission:</a>\r
+to free the world from junk communications.\r
+</p>\r
+\r
+<h3><a name="windows" href="/cgi-bin/gp?pg=ijbfaq&pr=windows"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Does it run on Windows? On a Mac? On the AOL browser?\r
+</h3>\r
+<p>\r
+For the latest information on availability, see the\r
+<a href="ijbdist.html">Distribution Information</a>\r
+page.\r
+We\r
+<a href="ijbdist.html#win3.1">don't</a>\r
+think it will ever run on\r
+Windows 3.1.\r
+But you don't need to have it running on your computer\r
+if you get your\r
+<small>ISP</small>\r
+or Systems Administrator at\r
+<a href="ijbfaq.html#companies">work</a>\r
+to run it.\r
+</p>\r
+\r
+<h3><a name="isp" href="/cgi-bin/gp?pg=ijbfaq&pr=isp"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How can I get my ISP to run the Internet Junkbuster?\r
+</h3>\r
+<p>\r
+Try their sales or support department\r
+(depending on whether you are already a customer).\r
+<a name="unaware">You might send them email including the following</a>\r
+<small>URL</small>:\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>http://www.junkbusters.com/ht/en/ijbfaq.html#isps</kbd></big>\r
+<br>\r
+<a name="switch">You could mention that many</a>\r
+<a href="ijbfaq.html#does">other</a>\r
+<small>ISP</small>s\r
+provide it,\r
+and that you regard it as an important part of your decision on\r
+where to buy Internet service.\r
+</p>\r
+\r
+<h3><a name="who" href="/cgi-bin/gp?pg=ijbfaq&pr=who"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Who chooses the options that control what is blocked?\r
+</h3>\r
+<p>\r
+Whoever starts the\r
+Internet Junkbuster\r
+chooses the options and the blockfile.\r
+If your \r
+<small>ISP</small>\r
+runs it for you, they have to make these decision\r
+(though\r
+<a href="http://www.lunatech.com/proxy/">some</a>\r
+may give you a choice of proxies,\r
+and a way to suggest new\r
+<small>URL</small>s\r
+to block).\r
+If you run it on your computer,\r
+<b>You</b>\r
+<a href="over.html#you_def">decide what's junk.</a>\r
+<a href="legal.html#marks"><small><sup>SM</sup></small></a>\r
+</p>\r
+\r
+<h3><a name="self" href="/cgi-bin/gp?pg=ijbfaq&pr=self"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I download and run the program on my computer?\r
+</h3>\r
+<p>\r
+It depends on your platform.\r
+If you are using Windows 95 or NT,\r
+see our separate page on\r
+<a href="ijbwin.html">installing under Windows.</a>\r
+If you have a C compiler and are using almost any flavor of\r
+<small>UNIX <a href="legal.html#not_our_trademark">&#174;</a></small>\r
+you\r
+<a href="ijbfaq.html#local">download it, compile it, start it running,</a>\r
+and then\r
+<a href="ijbfaq.html#browser">configure your browser.</a>\r
+Several precompiled packages are also available through links in our\r
+<a href="ijbdist.html">distribution page</a>,\r
+which lists all available platforms.\r
+<p>\r
+<a name="port">If you are using a platform for which we have no current</a>\r
+availability,\r
+you are welcome to port the code.\r
+If you do this and you would like us to consider publishing your ported version,\r
+please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=port">tell us.</a>\r
+</p>\r
+\r
+<h3><a name="show" href="/cgi-bin/gp?pg=ijbfaq&pr=show"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How can I tell which blockfile and options are being used?\r
+</h3>\r
+<p>\r
+Just point your browser to\r
+<a href="http://internet.junkbuster.com/cgi-bin/show-proxy-args">http://internet.junkbuster.com/cgi-bin/show-proxy-args</a>\r
+or to any\r
+<small>URL</small>\r
+ending in\r
+<big><kbd>show-proxy-args</kbd></big>\r
+(even if it doesn't exist).\r
+It needn't exist because the\r
+Internet Junkbuster 2.0\r
+intercepts the request, blocks it,\r
+and returns in its place\r
+information about itself.\r
+Using the\r
+<small>URL</small>\r
+above is useful for checking that your browser really is\r
+going through an\r
+Internet Junkbuster,\r
+because the\r
+<big><kbd>junkbuster.com</kbd></big>\r
+server returns a warning if the request actually gets to it.\r
+Some people set the home page of their browser to such a\r
+<small>URL</small>\r
+to be sure that it is configured to use the proxy.\r
+<p>\r
+<a name="headers">If you wish to check the header information</a>\r
+your proxy is actually sending,\r
+a visit to\r
+<a href="http://internet.junkbuster.com/cgi-bin/show-http-headers">http://internet.junkbuster.com/cgi-bin/show-http-headers</a>\r
+will give you the more relevant ones first.\r
+You might also like to turn the proxy\r
+<a href="ijbfaq.html#discontinue">off</a>\r
+and compare the difference. (Don't forget to turn it back on again.)\r
+</p>\r
+\r
+<h3><a name="responding" href="/cgi-bin/gp?pg=ijbfaq&pr=responding"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+My browser started giving me ``server not responding'' messages\r
+</h3>\r
+<p>\r
+Once your browser is told to use a proxy such as the\r
+Internet Junkbuster,\r
+it thinks of it as its server for everything,\r
+so this message means it can't talk to the proxy.\r
+The\r
+Internet Junkbuster\r
+may not be running,\r
+or you may have specified its proxy\r
+<a href="ijbfaq.html#address">address</a>\r
+incorrectly.\r
+Check that the details you entered are correct.\r
+If you have\r
+<big><kbd>telnet</kbd></big>\r
+you can try connecting to the appropriate port to see if the\r
+Internet Junkbuster\r
+is running.\r
+If your\r
+<small>ISP</small>\r
+is running the\r
+Internet Junkbuster,\r
+you may want to check with them.\r
+If you are running it yourself under\r
+<small>UNIX <a href="legal.html#not_our_trademark">&#174;</a></small>,\r
+try looking at a\r
+<big><kbd>ps ax</kbd></big>\r
+to see if it is running.\r
+The\r
+<a href="ijbman.html#o_h">port</a>\r
+specified in its options should be the same one as your\r
+browser has configured.\r
+</p>\r
+\r
+<h3><a name="idea" href="/cgi-bin/gp?pg=ijbfaq&pr=idea"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+I've got this great idea for a new feature. Who do I tell?\r
+</h3>\r
+<p>\r
+We'd be very interested to hear it, but please bear a few things in mind.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="considered">Please check this FAQ to see if we've already considered</a>\r
+the idea,\r
+such as\r
+<a href="ijbfaq.html#size">automatic detection</a>\r
+of banner ads\r
+and\r
+<a href="ijbfaq.html#broken">replacing ads</a>\r
+with something else such as a\r
+transparent\r
+<small>GIF</small>.\r
+<li>\r
+<a name="confidential">Don't tell us anything you want to keep confidential</a>\r
+or retain some right over.\r
+<li>\r
+<a name="wish">We currently have a</a>\r
+long wish list of things that we may or may not do\r
+in the near future, including\r
+a version for your favorite computer and a plug-in version.\r
+<li>\r
+<a name="go4it">If you don't want to wait</a>\r
+you're welcome to improve on our code, publish your version on the Web,\r
+and\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=idea">tell us</a>\r
+where to find it.\r
+Projects that are especially welcome\r
+include\r
+a port to the Mac\r
+and extensions for\r
+<small>HTTP</small>\r
+1.1.\r
+</ul>\r
+</p>\r
+\r
+<h3><a name="other" href="/cgi-bin/gp?pg=ijbfaq&pr=other"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+My question isn't listed here. Who do I ask for support?\r
+</h3>\r
+<p>\r
+<a name="harder">If you find using our free product</a>\r
+harder than you're used to for consumer software,\r
+there are many\r
+<a href="links.html#WebWiper">commercial alternatives</a>\r
+that you could consider.\r
+<p>\r
+<a name="RTM">The answer to detailed technical questions may be answered in</a>\r
+<a href="ijbman.html">manual page</a>,\r
+or in the source code.\r
+Also double-check this page for an answer:\r
+using the ``find'' feature on your browser for likely keywords may help.\r
+Our site also has a\r
+<a href="search.html">search</a>\r
+feature.\r
+<p>\r
+<a name="Use">Many people post requests for help and responses on</a>\r
+<a href="http://search.dejanews.com/dnquery.xp?query=junkbuster&site=excite">Usenet.</a>\r
+<p>\r
+<a name="them">If your</a>\r
+<small>ISP</small>\r
+is providing\r
+the\r
+Internet Junkbuster\r
+for you,\r
+and your question is about how to use it,\r
+check their web page before asking them.\r
+<p>\r
+<a name="us">Even though we don't offer the kind of</a>\r
+support you might expect if you paid a lot of money for a software product,\r
+you can still ask us.\r
+But before you do, please consider whether\r
+you could ask someone closer to you.\r
+And please be patient if we're slow to reply: we\r
+<a href="over.html#nobucks">never charge consumers </a>\r
+for our services,\r
+so we have to subsidize consumers with revenue from companies,\r
+and our resources are limited.\r
+<p>\r
+<a name="quote">If your company or organization</a>\r
+would be interested in a maintenance contract\r
+with phone and email support,\r
+hard copy documentation and source code and pre-compiled binaries on tape\r
+or disk,\r
+please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=quote">ask us</a>\r
+for a quote.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="browser"><font face="arial, helvetica">\r
+Configuring your browser to talk to the Internet Junkbuster\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>\r
+<h3><a name="address" href="/cgi-bin/gp?pg=ijbfaq&pr=address"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What is the proxy address of the Internet Junkbuster?\r
+</h3>\r
+<p>\r
+<a name="localhost">If you set up</a>\r
+the\r
+Internet Junkbuster\r
+to run on the computer you browse from\r
+(rather than your\r
+<small>ISP</small>'s server\r
+or some networked computer at work),\r
+the proxy will be on\r
+<big><kbd>localhost</kbd></big>\r
+(which is the special name used by every computer on the Internet to\r
+refer to itself)\r
+and\r
+the port will be\r
+<big><kbd>8000</kbd></big>\r
+(unless you have told the\r
+Internet Junkbuster\r
+to\r
+run on a different port with the\r
+<a href="ijbman.html#listen-address">listen-address</a>\r
+option).\r
+So you when\r
+<a href="ijbfaq.html#set">configuring your browser's proxy settings</a>\r
+you typically enter the word\r
+<big><kbd>localhost</kbd></big>\r
+in the two boxes next to\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>\r
+and\r
+<b><font face="arial, helvetica">\r
+Secure</font></b>,\r
+and the number\r
+<big><kbd>8000</kbd></big>\r
+in the two boxes labelled\r
+to the right of those boxes.\r
+<p>\r
+<a name="remote">If your</a>\r
+<small>ISP</small>\r
+or company is running \r
+the\r
+Internet Junkbuster\r
+for you,\r
+they will tell you the address to use.\r
+It will be the name of the computer it's running on\r
+(or possibly its numeric IP address),\r
+plus a port number.\r
+Port 8000 is the default, so assume this number if it is not specified.\r
+Sometimes a colon is used to glue them together,\r
+as in\r
+<big><kbd>junkbuster.fictitous-pro-privacy-isp.net:8000</kbd></big>\r
+but\r
+with most browsers\r
+you do not type the colon,\r
+you enter the address and port number in separate boxes.\r
+</p>\r
+\r
+<h3><a name="set" href="/cgi-bin/gp?pg=ijbfaq&pr=set"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I tell the browser where to find the Internet Junkbuster?\r
+</h3>\r
+<p>\r
+All current browsers can be told the address of a proxy to use.\r
+You enter the same information in two fields in your browser's proxy\r
+configuration screen (see list below): one for\r
+<small>HTTP</small>,\r
+and one for the Secure Protocol (assuming your browser supports\r
+<small>SSL</small>).\r
+If you find some information already entered for your proxy,\r
+see the\r
+<a href="ijbfaq.html#already">next question.</a>\r
+Here are the menus you go through to get to the proxy configuration settings.\r
+(We also recommend that you\r
+<a href="links.html#java">disable Java</a>,\r
+which is a separate operation.)\r
+<strong>Make notes on the changes you make so you know how to undo them!</strong>\r
+You will need to know what you did\r
+in case you wish to\r
+<a href="ijbfaq.html#discontinue">discontinue</a>\r
+using the proxy.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="netscape">For</a>\r
+<a href="http://www.netscape.com/comprod/products/navigator/version_3.0/index.html">Netscape</a>\r
+2.01, 2.02 and 3.0\r
+<a href="/images/pcn30.gif">[Graphic Illustration]:</a>\r
+<b><font face="arial, helvetica">\r
+Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Network Preferences</font></b>;\r
+<b><font face="arial, helvetica">\r
+Proxies</font></b>;\r
+<b><font face="arial, helvetica">\r
+Manual Proxy Configuration View ;</font></b>\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+under\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>\r
+and\r
+<b><font face="arial, helvetica">\r
+Security Proxy</font></b>;\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>;\r
+click on the next\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+<br>\r
+With Netscape 2.0,\r
+follow with\r
+<b><font face="arial, helvetica">\r
+Options</font></b>,\r
+<b><font face="arial, helvetica">\r
+Save Options</font></b>.\r
+<br>\r
+<a name="Netscape4.02">With Netscape 4.X series, you first have to go through</a>\r
+<b><font face="arial, helvetica">\r
+Edit/Preferences</font></b>.\r
+<a href="/images/pcn405.gif">[Graphic Illustration]</a>\r
+Then in the frame on the left,\r
+click on triangle pointing to the right towards the word\r
+<b><font face="arial, helvetica">\r
+Advanced</font></b>;\r
+it will switch to a triangle pointing down;\r
+and the words\r
+<b><font face="arial, helvetica">\r
+Cache</font></b>,\r
+<b><font face="arial, helvetica">\r
+Proxies</font></b>\r
+and\r
+<b><font face="arial, helvetica">\r
+Disk Space</font></b>\r
+appear.\r
+Click on\r
+<b><font face="arial, helvetica">\r
+Proxies</font></b>\r
+and the frame on the right will\r
+display a banner saying\r
+<b><font face="arial, helvetica">\r
+Proxies Configure proxies to access the Internet</font></b>.\r
+Click the radio button labeled\r
+<b><font face="arial, helvetica">\r
+Manual proxy configuration</font></b>\r
+then click the button labeled\r
+<b><font face="arial, helvetica">\r
+View</font></b>;\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+under\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>\r
+and\r
+<b><font face="arial, helvetica">\r
+Security Proxy</font></b>;\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>;\r
+click on the next\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+<li>\r
+<a name="explorer3">For</a>\r
+<a href="http://www.microsoft.com/ie/support/docs/tech30/">Internet Explorer 3.0:</a>\r
+<b><font face="arial, helvetica">\r
+View</font></b>;\r
+<b><font face="arial, helvetica">\r
+Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Connections</font></b>;\r
+tick\r
+<b><font face="arial, helvetica">\r
+Connect through proxy server</font></b>\r
+box;\r
+<b><font face="arial, helvetica">\r
+Settings</font></b>;\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>\r
+Box, with port number in the second box;\r
+same with\r
+<b><font face="arial, helvetica">\r
+Secure</font></b>;\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+<li>\r
+<a name="explorer2">For Internet Explorer 2.0: </a>\r
+<b><font face="arial, helvetica">\r
+View</font></b>;\r
+<b><font face="arial, helvetica">\r
+Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Proxy</font></b>;\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+<li>\r
+<a name="nt">On NT for MS-IE:</a>\r
+<b><font face="arial, helvetica">\r
+Control Panel</font></b>;\r
+<b><font face="arial, helvetica">\r
+Internet</font></b>;\r
+<b><font face="arial, helvetica">\r
+Advanced</font></b>;\r
+<b><font face="arial, helvetica">\r
+Proxy</font></b>.\r
+<li>\r
+<a name="if">For MS-IE 4.0: seems to be almost the same as for</a>\r
+<a href="ijbfaq.html#explorer3">3.0</a>,\r
+<b><font face="arial, helvetica">\r
+View</font></b>;\r
+<b><font face="arial, helvetica">\r
+Internet Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Connections</font></b>;\r
+tick\r
+<b><font face="arial, helvetica">\r
+Connect through proxy server</font></b>\r
+box;\r
+<b><font face="arial, helvetica">\r
+Settings</font></b>;\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>\r
+Box, with port number in the second box;\r
+same with\r
+<b><font face="arial, helvetica">\r
+Secure</font></b>;\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+Note that 4.0 has\r
+<b><font face="arial, helvetica">\r
+Advanced</font></b>\r
+settings to allow\r
+<small>HTTP</small>\r
+1.1 through proxies;\r
+these must be disabled because the proxy does not currently understand\r
+<small>HTTP</small>\r
+1.1.\r
+Please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=set">tell us</a>\r
+if you see any other differences.\r
+<li>\r
+<a name="mosaic">For NCSA Mosaic for Windows:</a>\r
+<b><font face="arial, helvetica">\r
+Options</font></b>,\r
+<b><font face="arial, helvetica">\r
+Preferences</font></b>,\r
+<b><font face="arial, helvetica">\r
+Proxy</font></b>;\r
+enter\r
+<a href="ijbfaq.html#address">proxy address details</a>\r
+under\r
+<b><font face="arial, helvetica">\r
+HTTP</font></b>.\r
+<li>\r
+<a name="Opera">For</a>\r
+Opera:\r
+<b><font face="arial, helvetica">\r
+Preferences</font></b>,\r
+<b><font face="arial, helvetica">\r
+Proxy servers</font></b>;\r
+check the box next to HTTP;\r
+enter the server and port number in the box on the other side;\r
+click on\r
+<b><font face="arial, helvetica">\r
+OK</font></b>.\r
+<li>\r
+<a name="lynx">For</a>\r
+<a href="http://www.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Browsers/Lynx">Lynx,</a>\r
+<a href="http://www.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Browsers/Mosaic/">Mosaic/X,</a>\r
+<a name ="grail" href="http://monty.cnri.reston.va.us/grail-0.3/">Grail,</a>\r
+and\r
+W3O\r
+<a href="http://www.w3.org/pub/WWW/Arena/">Arena,</a>\r
+you can specify the proxy via environment variables\r
+before starting the application.\r
+This will probably be done with something like either\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>setenv http_proxy http://localhost:8000/</kbd></big>\r
+<br>\r
+or\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>http_proxy=http://junkbuster.fictitous-pro-privacy-isp.net:8000/ export http_proxy</kbd></big>\r
+<br>\r
+depending on your shell and where the\r
+Internet Junkbuster\r
+lives.\r
+</ul>\r
+If your browser is not listed here,\r
+or if you notice an error, please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=set">tell us</a>\r
+the correct procedure.\r
+</p>\r
+\r
+<h3><a name="already" href="/cgi-bin/gp?pg=ijbfaq&pr=already"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What should I do if I find another proxy is already configured?\r
+</h3>\r
+<p>\r
+Some\r
+<small>ISP</small>s\r
+and companies require all Web traffic to go through their proxy.\r
+In this case you would find your proxy configuration with values already set,\r
+possibly under\r
+<a name="Automatic">Automatic Proxy Configuration</a>\r
+(in the case of \r
+<a href="http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html">Netscape</a>\r
+and\r
+<a href="http://ieak.microsoft.com/">MS-IE 3.0</a>\r
+and above).\r
+It's probably a firewall proxy between your company and the outside world,\r
+<a name="cache">or a</a>\r
+<a href="http://vancouver-webpages.com/CacheNow/">caching proxy</a>\r
+if you're using an \r
+<small>ISP</small>.\r
+<p>\r
+<a name="f">What needs to be done in this case is to</a>\r
+use the\r
+<a href="ijbman.html#forwardfile">forwardfile</a>\r
+option\r
+to tell the\r
+Internet Junkbuster\r
+the address of the other proxy.\r
+Specify a different (unused) port number\r
+with the\r
+<a href="ijbman.html#listen-address">listen-address</a>\r
+option,\r
+and configure your browser to\r
+<a href="ijbfaq.html#chain">use that port.</a>\r
+If you haven't done this kind of thing before,\r
+it's probably best to consult your systems administrator or \r
+<small>ISP</small>\r
+about it;\r
+check their web page first.\r
+</p>\r
+\r
+<h3><a name="discontinue" href="/cgi-bin/gp?pg=ijbfaq&pr=discontinue"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What if I want to stop using the Internet Junkbuster?\r
+</h3>\r
+<p>\r
+Just go through the same procedure you used to start your\r
+browser using the\r
+Internet Junkbuster,\r
+but remove the details you put in\r
+(or if there was something there before, restore it).\r
+You may need to use\r
+<b><font face="arial, helvetica">\r
+Save Options</font></b>\r
+to make this change permanent.\r
+On Netscape 3.0 you can go through\r
+<b><font face="arial, helvetica">\r
+Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Network Preferences</font></b>;\r
+<b><font face="arial, helvetica">\r
+Proxies</font></b>\r
+and click on\r
+<b><font face="arial, helvetica">\r
+No Proxy</font></b>\r
+to turn it off, and later click on\r
+<b><font face="arial, helvetica">\r
+Manual Proxy Configuration</font></b>\r
+if you want to start using it again.\r
+(No need to enter the again details under\r
+<b><font face="arial, helvetica">\r
+View</font></b>\r
+as you did the\r
+<a href="ijbfaq.html#netscape">first time;</a>\r
+they should remain there unchanged.)\r
+<p>\r
+<a name="shut">This stops your browser talking to the proxy;</a>\r
+<a href="ijbfaq.html#shutdown">shutting down the proxy</a>\r
+is a different matter.\r
+</p>\r
+\r
+<h3><a name="dial" href="/cgi-bin/gp?pg=ijbfaq&pr=dial"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Automatic dialing isn't working any more. How do I fix it?\r
+</h3>\r
+<p>\r
+Some browsers (such as MSIE-4) can be configured to dial your\r
+<small>ISP</small>\r
+automatically when you click on a link,\r
+but this feature gets disabled if you specify a proxy running on your\r
+own computer\r
+(with address\r
+<big><kbd>localhost</kbd></big>\r
+or\r
+<big><kbd>127.0.0.1</kbd></big>)\r
+because these addresses don't require dialing.\r
+The\r
+Internet Junkbuster\r
+knows nothing about dialing, so it doesn't work.\r
+To make automatic dialing work,\r
+make up a name such as\r
+<big><kbd>junkbuster.ijb</kbd></big>\r
+and use that name in the proxy settings\r
+instead of\r
+<big><kbd>localhost</kbd></big>,\r
+and then add the line\r
+<big><kbd>127.0.0.1 junkbuster.ijb</kbd></big>\r
+to the file\r
+<big><kbd>c:\windows\hosts</kbd></big>\r
+(if there already is a line beginning with\r
+<big><kbd>127.0.0.1</kbd></big>\r
+just add\r
+<big><kbd>junkbuster.ijb</kbd></big>\r
+at the end of it.)\r
+<p>\r
+<a name="also">This should also work Netscape Communicator 4 on</a>\r
+machines where IE-4 has been installed.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="local"><font face="arial, helvetica">\r
+Setting up the Internet Junkbuster on your local computer\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>The next two sections assume you wish to compile the code\r
+with your own C compiler.\r
+<a name="install">If you just want to use the</a>\r
+<big><kbd>.exe</kbd></big>\r
+file provided for Windows,\r
+see the\r
+<a href="ijbwin.html">Windows Installation page.</a>\r
+\r
+<h3><a name="u" href="/cgi-bin/gp?pg=ijbfaq&pr=u"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I compile the code under Unix?\r
+</h3>\r
+<p>\r
+If you are running Redhat\r
+<a href="aboutus.html#linux">Linux</a>\r
+you may prefer to use the\r
+<a href="ijbdist.html#red">rpm</a>\r
+instead of the following procedure.\r
+<br><ol  type="1">\r
+<li>\r
+<a name="download">First</a>\r
+<a href="ijb20.tar.Z">download the tar file</a>\r
+(~286k)\r
+<a name="tar">and</a>\r
+uncompress and extract the files from it with this command\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>uncompress -c ijb20.tar.Z | tar xf -</kbd></big>\r
+<p>\r
+<li>\r
+<a name="sun">If your operating system is from</a>\r
+<a href="legal.html#not_our_trademark">Sun</a>\r
+or\r
+<a href="legal.html#not_our_trademark">HP</a>\r
+examine the\r
+<big><kbd>Makefile</kbd></big>\r
+and make any changes indicated inside.\r
+<li>\r
+<a name="make">Run</a>\r
+<br>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>make</kbd></big>\r
+<p>\r
+<li>\r
+<a name="defaults">Copy the sample configuration file</a>\r
+(<big><kbd>junkbstr.ini</kbd></big>,\r
+previously called\r
+<big><kbd>sconfig.txt</kbd></big>\r
+and other names in earlier releases)\r
+to some convenient place such as\r
+<big><kbd>/usr/local/lib/junkbuster/configfile</kbd></big>\r
+or whatever you choose.\r
+The sample file has all the options commented out.\r
+You can remove the\r
+<big><kbd>#</kbd></big>\r
+character on any that you want, but it may be better to\r
+leave this until to later.\r
+Run it asynchronously:\r
+<br>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>junkbuster configfile &</kbd></big>\r
+<p>\r
+If you are running a version earlier than 2.0 you can start it with\r
+<big><kbd>junkbuster &</kbd></big>\r
+<p>\r
+<li>\r
+<a name="config">Configure your browser (described</a>\r
+<a href="ijbfaq.html#browser">above).</a>\r
+<li>\r
+<a name="test">Verify that the</a>\r
+Internet Junkbuster\r
+is working (described\r
+<a href="ijbfaq.html#show">above).</a>\r
+<li>\r
+<a name="restart">Decide on the options you really want,</a>\r
+<big><kbd>kill</kbd></big>\r
+the\r
+<a href="ijbfaq.html#pid">process</a>\r
+and start it again. The most popular option is\r
+<a href="ijbman.html#blockfile">blockfile</a>\r
+to block ads.\r
+<a name="comprehensive">A sample blockfile is provided as an illustration,</a>\r
+but it doesn't really stop many ads.\r
+More comprehensive ones are available\r
+<a href="ijbfaq.html#readymade">elsewhere</a>.\r
+<li>\r
+<a name="rc">You'll probably want to add an entry to</a>\r
+<big><kbd>/etc/rc.d/rc.local</kbd></big>\r
+or equivalent to start it at boot time.\r
+(Any output you specify should be redirected to a file.\r
+And don't forget the\r
+&amp;\r
+at the end to run it asynchronously or your system will seize\r
+up after the next reboot.)\r
+</ol>\r
+</p>\r
+\r
+<h3><a name="win" href="/cgi-bin/gp?pg=ijbfaq&pr=win"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I compile the code under Windows?\r
+</h3>\r
+<p>\r
+A binary is currently being supplied with the source code,\r
+but if you prefer to compile it yourself here is the likely procedure.\r
+Most of these steps are repeated in our checklist for\r
+<a href="ijbwin.html">installation under Windows.</a>\r
+<br><ol  type="1">\r
+<li>\r
+<a name="zip">First</a>\r
+<a href="ijb20.zip">click here to download the zip file</a>\r
+called\r
+<big><kbd>ijb20.zip</kbd></big>\r
+(~208k),\r
+then uncompress and unpack the zip archive using a tool like\r
+<a href="http://www.winzip.com/">WinZip</a>.\r
+<li>\r
+<a name="change">Now the distribution (source and sample files)</a>\r
+will be in a folder\r
+called\r
+<big><kbd>ijb20</kbd></big>.\r
+Go into that folder and then edit the Makefile for\r
+your system,\r
+removing the comment character\r
+(<big><kbd>#</kbd></big>)\r
+in the lines related to Win32.\r
+Then type:\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>nmake</kbd></big>\r
+<br>\r
+This should create an executable called\r
+<big><kbd>junkbstr.exe</kbd></big>.\r
+<a name="compilers">For information on issues with various compilers, see the</a>\r
+<a href="ijbdist.html#compilers">Distribution Information</a>\r
+page.\r
+<li>\r
+<a name="attempt">Run the executable with the command:</a>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>junkbstr</kbd></big>\r
+<br>\r
+The program will produce a message\r
+indicating that it has started and is ready to serve.\r
+<p>\r
+<a name="ini">(Version 2.0.1 and above uses</a>\r
+the file\r
+<big><kbd>junkbstr.ini</kbd></big>\r
+as the config file\r
+if it exists and no argument was given. If you have an earlier\r
+version or if you want it to use a different config file,\r
+simply specify that file as the argument.)\r
+<li>\r
+<a name="configures">Configure your browser (described</a>\r
+<a href="ijbfaq.html#browser">above).</a>\r
+<li>\r
+<a name="work">Check the proxy is working (described</a>\r
+<a href="ijbfaq.html#check">below</a>).\r
+<li>\r
+<a name="shortcut">To have the proxy start itself automatically</a>\r
+when you login to Win95,\r
+drop the ``shortcut'' to the\r
+<big><kbd>junkbstr</kbd></big>\r
+executable into the StartUp folder:\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>C:\Windows\Start Menu\Programs\StartUp</kbd></big>\r
+<br>\r
+You might want to change the shortcut's\r
+<big><kbd>Properties-&gt;Shortcut</kbd></big>\r
+to\r
+<big><kbd>Run: Minimized</kbd></big>.\r
+If you specify the\r
+<a href="ijbman.html#hide-console">hide-console</a>\r
+option then the\r
+<small>DOS</small>\r
+window will vanish after it starts.\r
+<p>\r
+<a name="NT">WinNT users can put it into their own</a>\r
+StartUp folders or the Administrator\r
+can put it into the system's global StartUp folder.\r
+For details on how to make this a service under NT\r
+see our\r
+<a href="ijbwin.html#service">Windows page</a>.\r
+</ol>\r
+</p>\r
+\r
+<h3><a name="check" href="/cgi-bin/gp?pg=ijbfaq&pr=check"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I check that the proxy is working?\r
+</h3>\r
+<p>\r
+Pick a page from somewhere (such as your bookmarks, or just one\r
+that your browser was pointing to)\r
+and\r
+<b><font face="arial, helvetica">\r
+Reload</font></b>\r
+it.\r
+If you get a message along the lines of ``server not responding,\r
+using cached copy instead,'' see the advice\r
+<a href="ijbfaq.html#responding">above.</a>\r
+If the page reloads OK, check that your browser is actually\r
+talking to the proxy by going to\r
+<a href="http://internet.junkbuster.com/cgi-bin/show-proxy-args">http://internet.junkbuster.com/cgi-bin/show-proxy-args</a>\r
+or any\r
+<small>URL</small>\r
+ending in\r
+<big><kbd>show-proxy-args</kbd></big>\r
+(as described\r
+<a href="ijbfaq.html#show">below</a>,\r
+the proxy should intercept the request.)\r
+When you see ``Internet Junkbuster Proxy Status,''\r
+you'll know it's working.\r
+</p>\r
+\r
+<h3><a name="chain" href="/cgi-bin/gp?pg=ijbfaq&pr=chain"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How and why would I have this proxy chained with other proxies?\r
+</h3>\r
+<p>\r
+You may need the \r
+<a href="ijbman.html#forwardfile">forwarding</a>\r
+feature to ``daisy chain'' the\r
+Internet Junkbuster\r
+to another proxy, perhaps an\r
+<a href="ijbfaq.html#anonymizing">anonymizing</a>\r
+proxy to\r
+<a href="ijbfaq.html#conceal">conceal</a>\r
+your\r
+<small>IP</small>\r
+address,\r
+or a\r
+<a href="ijbfaq.html#cache">caching proxy</a>\r
+from your\r
+<small>ISP</small>,\r
+or a\r
+<a href="ijbfaq.html#firewall">firewall</a>\r
+proxy between your company and the outside world.\r
+Version 2.0\r
+can be even configured to forward\r
+<a href="ijbman.html#forwardfile">selectively</a>\r
+according to the\r
+<small>URL</small>\r
+requested:\r
+for example, connecting directly to trusted hosts,\r
+but going through an anonymizing or firewall proxy for all other hosts.\r
+<p>\r
+<a name="administrator">Network administrators might use it to provide</a>\r
+transparent access to multiple networks without\r
+modifying browser configurations.\r
+<a name="direct">Most browsers also provide a way of</a>\r
+specifying hosts that the browser\r
+connects to directly, bypassing the proxy. Some provide a method for\r
+<a href="ijbfaq.html#Automatic">Automatic Proxy Configuration.</a>\r
+A well written\r
+Internet Junkbuster\r
+configuration can be much more flexible and powerful.\r
+<p>\r
+<a name="example">An</a>\r
+<small>ISP</small>'s\r
+caching proxy\r
+would typically be called something like\r
+<big><kbd>cache.your-isp.net:8080</kbd></big>\r
+(as described on you\r
+<small>ISP</small>'s\r
+web page);\r
+you would put this information in your\r
+<a href="ijbman.html#forwardfile">forwardfile</a>\r
+as described in our manual.\r
+Your browser would be configured to\r
+the\r
+Internet Junkbuster\r
+for\r
+<small>HTTP</small>\r
+and Security Proxies as before,\r
+but you probably want to tell it to use the caching proxy\r
+for\r
+<small>FTP</small>\r
+and other protocols.\r
+<a name="nonlocal">If your</a>\r
+<small>ISP</small>\r
+is running\r
+the\r
+Internet Junkbuster\r
+for you,\r
+they have probably already decided whether to chain with a caching proxy.\r
+</p>\r
+\r
+<h3><a name="socks" href="/cgi-bin/gp?pg=ijbfaq&pr=socks"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How does the Internet Junkbuster work with SOCKS gateways?\r
+</h3>\r
+<p>\r
+There is support for some\r
+<a href="http://www.leverage.com/users/tlod/ssockd/ssockd.html">gateways</a>\r
+in\r
+Version <a href="ijbdist.html#c4">1.4</a>\r
+and above.\r
+The gateway protocol used to be specified on the command line;\r
+it is\r
+now specified\r
+in the same file as\r
+<a href="ijbman.html#forwardfile">forwarding.</a>\r
+Note that the browser's proxy configuration must\r
+<em>not</em>\r
+specify a\r
+<big><kbd>SOCKS</kbd></big>\r
+host;\r
+it should specify the proxy as described\r
+<a href="ijbfaq.html#set">above.</a>\r
+</p>\r
+\r
+<h3><a name="plain" href="/cgi-bin/gp?pg=ijbfaq&pr=plain"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I configure it to be just a plain old proxy?\r
+</h3>\r
+<p>\r
+To get the proxy to do as little as possible (which means not deleting any\r
+sensitive headers), place in your\r
+configuration file the following three lines (each ending in a space\r
+then a period) to stop it changing sensitive headers:\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>referer .</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>from .</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>user-agent .</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>cookiefile mycookiefile</kbd></big>\r
+<br>\r
+The fourth line is also needed to specify a\r
+<a href="ijbman.html#o_c">cookiefile</a>\r
+that might be called\r
+<big><kbd>mycookiefile</kbd></big>\r
+containing a single line with a\r
+<big><kbd>*</kbd></big>\r
+character, to allow all cookies through.\r
+</p>\r
+\r
+<h3><a name="shutdown" href="/cgi-bin/gp?pg=ijbfaq&pr=shutdown"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I shut down the proxy (to restart it)?\r
+</h3>\r
+<p>\r
+It depends on your platform. Under Windows, use\r
+<b><font face="arial, helvetica">\r
+Ctrl-Break</font></b>\r
+in the \r
+<small>DOS</small>\r
+window or\r
+the old three-fingered salute of\r
+<b><font face="arial, helvetica">\r
+Ctrl-Alt-Delete</font></b>\r
+and select\r
+<b><font face="arial, helvetica">\r
+End Task</font></b>.\r
+Under\r
+<small>UNIX <a href="legal.html#not_our_trademark">&#174;</a></small>\r
+you'll need to\r
+<big><kbd>kill</kbd></big>\r
+the\r
+<b><kbd>junkbuster</kbd></b>\r
+process.\r
+<a name="pid">If you don't know the process number to give to</a>\r
+<big><kbd>kill</kbd></big>, try this:\r
+<big><kbd>ps ax | grep junkbuster</kbd></big>\r
+<br>\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="companies"><font face="arial, helvetica">\r
+Information for companies\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>\r
+<h3><a name="think" href="/cgi-bin/gp?pg=ijbfaq&pr=think"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What do advertising companies think of this kind of technology?\r
+</h3>\r
+<p>\r
+We've seen only a few public comments from the advertising industry on this,\r
+other than\r
+<a href="links.html#adverse">SEC filings.</a>\r
+First, the president of the Internet Advertising Bureau told\r
+<a href="new.html#Rich">CNET</a>\r
+that he wasn't worried by banner blockers.\r
+Second, after the Federal Trade Commission's\r
+<a href="ftc.html">workshop</a>\r
+where we gave a live demonstration of our proxy before\r
+many eminent representatives of the industry,\r
+the\r
+<a href="self.html#dma">Direct Marketing Association</a>\r
+made the following\r
+statement in the closing paragraphs\r
+of their\r
+<a href="http://www.ftc.gov/bcp/privacy/wkshp97/comments2/dma027a.htm">summary comments</a>\r
+to the Commission.\r
+<blockquote>\r
+Clever shareware developers have come up with products that\r
+can obliterate cookies and advertisements for those consumers\r
+who have these concerns.\r
+The Internet is a market that is so democratic and flexible\r
+that it is easy for companies and software\r
+developers to respond to a perceived market need. \r
+</blockquote>\r
+Their attitude seems to be that they would prefer that\r
+people use technical solutions\r
+to protect their privacy than have protections\r
+imposed by legislation or government regulations.\r
+So, do you perceive a market need?\r
+Then here are some ways to flex your democratic muscles.\r
+</p>\r
+\r
+<h3><a name="nobrainer" href="/cgi-bin/gp?pg=ijbfaq&pr=nobrainer"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Should we provide the Internet Junkbuster for our employees?\r
+</h3>\r
+<p>\r
+That depends. Try this quick three-point test.\r
+<br><ol  type="1">\r
+<li>\r
+<a name="waste">Do you want to spend your communications budget</a>\r
+on bandwidth that wastes your employees' time by forcing them to wait\r
+for a lot of annoying distractions while they're trying to\r
+do their jobs?\r
+<li>\r
+<a name="surveillance">Do you want current and potential vendors</a>\r
+to know quantitative details about the\r
+<a href="ijbfaq.html#agent">software and hardware platforms</a>\r
+that you have?\r
+<li>\r
+<a name="intelligence">Do you want your competitors to be able to</a>\r
+<a href="cookies.html">track</a>\r
+exactly which of your\r
+employees are checking out their web sites?\r
+</ol>\r
+If the answer to all three questions is yes,\r
+then you probably don't have any need for this kind of product.\r
+</p>\r
+\r
+<h3><a name="commercial" href="/cgi-bin/gp?pg=ijbfaq&pr=commercial"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can our company get commercial support for the software?\r
+</h3>\r
+<p>\r
+Yes,\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=commercial">ask us</a>\r
+for a quote on a maintenance contract with your choice of\r
+phone and email support,\r
+hard copy documentation,\r
+source code and pre-compiled binaries on tape or disk,\r
+and email alerting of upgrades and issues.\r
+We also offer consulting services to help set up ``stealth browsing''\r
+capabilities to help reduce the footprints left while doing competitive\r
+analysis and other Web work where confidentiality is critical.\r
+</p>\r
+\r
+<h3><a name="isps" href="/cgi-bin/gp?pg=ijbfaq&pr=isps"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+I run an ISP. What issues should I consider before offering it?\r
+</h3>\r
+<p>\r
+Many\r
+<small>ISP</small>s\r
+who offer the proxy to their customers have told us that\r
+most of their customers are \r
+delighted with it\r
+(although one reported that a customer complaint that without banner ads,\r
+surfing was like reading a novel: we recommend making it optional).\r
+Many\r
+<small>ISP</small>s\r
+like it because it reduces bandwidth requirements.\r
+To help get you started,\r
+here's a checklist we've developed from working with a few\r
+<small>ISP</small>s.\r
+You may think of more,\r
+and we'd be interested if you're willing to\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=isps">share them</a>\r
+with us.\r
+<br><ol  type="1">\r
+<li>\r
+<a name="pending">If you get more than one request for</a>\r
+the\r
+Internet Junkbuster\r
+you may want to tell your customers on your News page that you\r
+<a href="ijbfaq.html#isp">already</a>\r
+know about it and are assessing it.\r
+<li>\r
+<a name="try">Try the software and</a>\r
+<a href="ijbfaq.html#install">verify</a>\r
+that it performs satisfactorily.\r
+<li>\r
+<a name="value">Determine whether your customers perceive the service as</a>\r
+<a href="ijbfaq.html#switch">valuable</a>\r
+(and therefore worth the time to set up).\r
+We've had reports of many delighted customers.\r
+<li>\r
+<a name="secure">Assess the</a>\r
+level of\r
+<a href="ijbfaq.html#others">security</a>\r
+associated with the software.\r
+If access is to be\r
+<a href="ijbfaq.html#restrict">restricted</a>\r
+(to just dial-in ports, for example)\r
+how is this to be done?\r
+<li>\r
+<a name="costs">Consider</a>\r
+whether to expect any additional load on computing resources required,\r
+and any change in use of bandwidth due to the blocking of large\r
+<small>GIF</small>s.\r
+<li>\r
+<a name="opt">Choose the</a>\r
+<a href="ijbman.html">options</a>\r
+you wish to provide.\r
+<li>\r
+<a name="multiple">Decide whether you want</a>\r
+to offer a choice of configurations, such some of these four.\r
+<br><ol  type="A">\r
+<li>\r
+<a name="banner">Banners</a>\r
+<a href="ijbfaq.html#blocking">Blocked,</a>\r
+Wafer with\r
+<a href="ijbfaq.html#notice">No-Cookie-Copyright</a>\r
+notice\r
+<li>\r
+<a name="low">Cookies</a>\r
+not stopped\r
+(<a href="ijbman.html#cookiefile">cookiefile</a>\r
+with just a\r
+<big><kbd>*</kbd></big>\r
+in it),\r
+<a href="ijbfaq.html#header">User Agent</a>\r
+specified as\r
+<a href="ijbfaq.html#lynx">Lynx</a>\r
+<li>\r
+<a name="oneway">Cookies from browser</a>\r
+<a href="ijbfaq.html#one">allowed</a>,\r
+permitting\r
+<a href="ijbfaq.html#registration">registered services</a>\r
+<li>\r
+<a name="kid">A proxy for</a>\r
+<a href="ijbfaq.html#children">kids.</a>\r
+</ol>\r
+<a name="caching">If you run a</a>\r
+<a href="ijbfaq.html#chain">caching proxy,</a>\r
+decide whether the \r
+Internet Junkbuster\r
+will chain with it by default,\r
+and whether to offer an alternate with no caching.\r
+(Some\r
+<small>ISP</small>s\r
+don't, because they want to give customers an incentive to use caching\r
+and save bandwidth.)\r
+<li>\r
+<a name="naming">Decide on a naming scheme for your</a>\r
+proxies.\r
+If you're running only one\r
+proxy on one machine,\r
+the simplest way is to just use port 8000 on your main machine,\r
+such as\r
+<big><kbd>our-isp.net.</kbd></big>\r
+But it would probably be safer to put an entry in your name server\r
+and call it something like\r
+<big><kbd>junkbuster.our-isp.net.</kbd></big>\r
+If running several proxies, you could either use different ports\r
+on the same machine, or if you have\r
+the opportunity to distribute the load over\r
+a few machines \r
+you could\r
+use different hostname aliases such as\r
+<big><kbd>banner.junkbuster.our-isp.net</kbd></big>,\r
+<big><kbd>lynx.junkbuster.our-isp.net</kbd></big>\r
+and\r
+<big><kbd>oneway.junkbuster.our-isp.net</kbd></big>\r
+(corresponding to the examples in the previous point).\r
+You may want to set up\r
+<a href="ijbfaq.html#Automatic">Automatic Proxy Configuration.</a>\r
+<li>\r
+<a name="document">Prepare a page</a>\r
+explaining the\r
+Internet Junkbuster\r
+to your customers.\r
+<a name="does">Here's are some examples from</a>\r
+<a href="http://www.cia.com.au/us/help/faq-proxy.html">Australia</a>,\r
+<a href="http://www.rhein-ruhr.de/info/junkbuster.html">Germany</a>,\r
+<a href="http://www.packet.net/ijb/">Florida</a>,\r
+<a href="http://www.eclipse.net/adfilter/index.html">New York/New Jersey/Pennsylvania,</a>\r
+<a href="http://a-o.com/proxy/proxy.html">North Carolina</a>,\r
+<a href="http://www.trip.net/junkbuster/">Texas</a>,\r
+and\r
+<a href="http://www.inconnect.com/proxy.html">Utah</a>.\r
+<a name="reuse">You are welcome to copy and modify</a>\r
+material\r
+from\r
+Junkbusters\r
+according to the\r
+<a href="gpl.html">GPL</a>.\r
+You might want to set up a process to check this page periodically\r
+and update it when it changes.\r
+(A few links can probably serve as well as lot of copying however.)\r
+A typical page would probably specify the following.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="abstract">A brief explanation stating what</a>\r
+the\r
+Internet Junkbuster\r
+does, with a link to this page.\r
+<li>\r
+<a name="addresses">The addresses of the proxy or proxies,</a>\r
+with their port number(s).\r
+<li>\r
+<a name="options">The options used,</a>\r
+and how to view the contents of the blockfile (which you can place on\r
+your web pages,\r
+preferably in a file called\r
+<big><kbd>blocklist.html</kbd></big>\r
+or\r
+<big><kbd>blocklist.txt</kbd></big>).\r
+<li>\r
+<a name="additions">An indication</a>\r
+of whether suggestions for the blocklist are considered,\r
+and if so, how to submit them: to a particular email address,\r
+via web-based form, etc.\r
+<li>\r
+<a name="configuration">Instructions</a>\r
+on how to\r
+configure a browser.\r
+You may want to include details for only the two major browsers\r
+and leave the others to a link.\r
+<li>\r
+<a name="service">Procedures on how to report problems, give feedback etc.</a>\r
+</ul>\r
+<li>\r
+<a name="beta">Invite a small number of technologically sophisticated</a>\r
+customers to beta-test the service.\r
+<li>\r
+<a name="announce">Announce general availability on your ``News'' page.</a>\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=isps">Tell us</a>\r
+if you would like to be included on a list of\r
+<small>ISP</small>s\r
+offering the\r
+Internet Junkbuster.\r
+</ol>\r
+</p>\r
+\r
+<h3><a name="ps2" href="/cgi-bin/gp?pg=ijbfaq&pr=ps2"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What's a Proxy Server Server and how can I make money as one?\r
+</h3>\r
+<p>\r
+Other organizations with web presence and some bandwidth to spare\r
+can set up as\r
+<i><dfn>Proxy Server Servers</dfn></i>\r
+<!-- Aside: All this, and... -->\r
+(<small>PS<sup>2</sup></small>s).\r
+The idea here is to allow users to choose their proxy configuration,\r
+and provide it to them on a semi-permanent basis.\r
+Users would fill in a form specifying what options they want in\r
+their proxy,\r
+possibly even at a very high level, such as\r
+``no ads''\r
+or ``no nudity.''\r
+This information is sent to a\r
+<small>CGI</small>\r
+script that\r
+configures a proxy, starts it running, and returns its address and port number\r
+(possibly along with configuration instructions for the browser\r
+that the user specified.)\r
+<p>\r
+<a name="revenue">Users</a>\r
+could be charged\r
+a subscription fee,\r
+or the service could be thrown in free in the hope of\r
+improving customer retention for some existing business\r
+(which is what\r
+<small>ISP</small>s\r
+are doing).\r
+It might be possible to make money by\r
+inserting new ads in the holes left where others were blocked,\r
+but the original owners might object.\r
+<small>PS<sup>2</sup></small>s\r
+could differentiate themselves\r
+by providing frequently updated and comprehensive\r
+blocking of ads, or of offensive material based on their own grading system.\r
+Some content providers might do it for the chance to be the\r
+only company that the consumer permits to set cookies.\r
+(Identification could even be done via cookies,\r
+but this might not be popular with the kind of user who wants a proxy.)\r
+<small>PS<sup>2</sup></small>s\r
+might sell specific or aggregate information about their\r
+users' browsing habits,\r
+so the agreement with users on whether they are permitted to do this\r
+would be important to both sides.\r
+<p>\r
+<a name="publicize">If your organization</a>\r
+establishes a \r
+Proxy Server Service\r
+you would like publicized,\r
+please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=publicize">notify us.</a>\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="blocking"><font face="arial, helvetica">\r
+Blocking\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>\r
+<h3><a name="readymade" href="/cgi-bin/gp?pg=ijbfaq&pr=readymade"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Where can I get an example blockfile that stops most ads?\r
+</h3>\r
+<p>\r
+The sample blockfile we provide blocks almost nothing,\r
+and we do not publish blockfiles that stop almost all banner ads.\r
+But others have; you can find them by\r
+<a href="http://www.altavista.com/cgi-bin/query?pg=q&what=web&fmt=.&q=%2Bjunkbuster+%2Burl%3Ablocklist">asking Altavista.</a>\r
+You can add any part of the new file to your old one\r
+(probably called\r
+<big><kbd>sblock.ini</kbd></big>\r
+if you haven't changed the default name in the latest version)\r
+or your just replace it completely.\r
+You\r
+<a href="ijbfaq.html#cover">probably</a>\r
+don't need to restart the proxy.\r
+<p>\r
+<a name="pub">If you develop an interesting blocklist and publish it on the Web,</a>\r
+you might want to include the word ``junkbuster'' in it\r
+and use the word ``blocklist'' in the file name given in the\r
+<small>URL</small>\r
+so that others can find it with the query given in the previous sentence.\r
+</p>\r
+\r
+<h3><a name="zap" href="/cgi-bin/gp?pg=ijbfaq&pr=zap"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+If I see an ad I wish I hadn't, how do I stop it?\r
+</h3>\r
+<p>\r
+If your\r
+<small>ISP</small>\r
+is running the\r
+Internet Junkbuster,\r
+they should have a policy on whether they accept suggestions from\r
+their customers on what to block. Consult their web page.\r
+<p>\r
+<a name="cover">If you are running</a>\r
+the\r
+Internet Junkbuster\r
+yourself, you have complete control over what gets through.\r
+Just add a pattern to cover the offending \r
+<small>URL</small>\r
+to your blockfile.\r
+Version 1.3 and later automatically rereads the blockfile when it changes,\r
+but if you're running an earlier version you'll\r
+have to\r
+<a href="ijbfaq.html#shutdown">stop it</a>\r
+and restart it.\r
+<p>\r
+<a name="target">To choose a pattern you'll first need to find the</a>\r
+<small>URL</small>\r
+of the ad you want cover.\r
+<p>\r
+<a name="pinpoint">Some people use the</a>\r
+<a href="ijbman.html#debug">debug</a>\r
+<big><kbd>1</kbd></big>\r
+option to display each \r
+<small>URL</small>\r
+in a window as the request is sent to the server.\r
+It's then usually an easy task to pick the offending \r
+<small>URL</small>\r
+from the list of recent candidates.\r
+<p>\r
+<a name="source">Alternatively,</a>\r
+you can use\r
+<b><font face="arial, helvetica">\r
+View Document Info</font></b>\r
+(or\r
+<b><font face="arial, helvetica">\r
+View Document Source</font></b>\r
+if your browser doesn't have that).\r
+The\r
+<b><font face="arial, helvetica">\r
+Info</font></b>\r
+feature has the advantage of showing you the full\r
+<small>URL</small>\r
+including the host name,\r
+which may not be specified in the source:\r
+there you might see something like\r
+<big><kbd>SRC="/ads/click_here_or_die.gif"</kbd></big>\r
+indicating only the\r
+<i><dfn>path</dfn></i>.\r
+(The host name is assumed to be the same as the one the page came from.)\r
+<p>\r
+<a name="offsite">But ads often</a>\r
+come from a different site, in which case you\r
+might see something like\r
+<big><kbd>SRC="grabem.n.trackem.com/Ad/Infinitum/SpaceID=1666"</kbd></big>\r
+or longer.\r
+<a name="warehouse">If the company looks like a pure ad warehouse</a>\r
+(as in the last case),\r
+you may want to place just its domain name in the blockfile,\r
+which blocks all \r
+<small>URL</small>s\r
+from that site.\r
+<p>\r
+<a name="wanted">If the ad comes from a server</a>\r
+that you really want some content from,\r
+you can include enough of the path\r
+to avoid zapping stuff you might want.\r
+In the first example above,\r
+<big><kbd>/ads/</kbd></big>\r
+would seem to be enough.\r
+If you don't include the domain name,\r
+the pattern applies to all sites,\r
+so you don't want such patterns\r
+to be too general:\r
+for example\r
+<big><kbd>/ad</kbd></big>\r
+would block\r
+<big><kbd>/admin/salaries/</kbd></big>\r
+on your company's internal site.\r
+<p>\r
+<a name="image">To speed the blocking of images, some</a>\r
+<small>UNIX <a href="legal.html#not_our_trademark">&#174;</a></small>\r
+users create a\r
+shell script called\r
+<big><kbd>Image:</kbd></big>\r
+containing a line such as\r
+<big><kbd>echo $1 | sed s/http:..// &gt;&gt; $HOME/lib/blockfile</kbd></big>\r
+that adds its argument to the user's blockfile.\r
+Once an offending image has been be found using\r
+<b><font face="arial, helvetica">\r
+View Document Info</font></b>\r
+it's easy to cut-and-paste the line (or part of it) into a shell window.\r
+The same script can be linked to a file called\r
+<big><kbd>Frame:</kbd></big>\r
+to dealing with framed documents,\r
+and\r
+<big><kbd>junkbuster:</kbd></big>\r
+to accept the output of the\r
+<a href="ijbman.html#debug">debug</a>\r
+option.\r
+<p>\r
+<a name="partial">When compiled without the</a>\r
+<i><dfn>regular expressions</dfn></i>\r
+option, the\r
+Internet Junkbuster\r
+uses only very simple (and fast) matching methods.\r
+The pattern\r
+<big><kbd>/banners</kbd></big>\r
+will not stop\r
+<big><kbd>/images/banners/huge.gif</kbd></big>\r
+getting through: you would have to include the pattern\r
+<big><kbd>/images/banners</kbd></big>\r
+or something that matches in full from the left.\r
+<a name="regex">So you can get what you want here,</a>\r
+the matcher understands\r
+<small>POSIX</small>\r
+regular expressions:\r
+you can use\r
+<big><kbd>/*.*/banners</kbd></big>\r
+to block\r
+and any\r
+<small>URL</small>\r
+containing\r
+<big><kbd>/banners</kbd></big>\r
+(even in the middle of the path).\r
+<a name="posix">(In Versions 1.1 through 1.4</a>\r
+they were an option at compile time;\r
+from Version 2.0 they have become the default.)\r
+Regular expressions give you\r
+<a href="http://theory.uwinnipeg.ca/localfiles/infofiles/gcc/rx_toc.html">many more features</a>\r
+than this,\r
+but if you're not already familiar with them you probably won't \r
+need to know anything beyond the\r
+<big><kbd>/*.*/</kbd></big>\r
+idiom.\r
+If you do, a\r
+<big><kbd>man egrep</kbd></big>\r
+is probably a good starting point).\r
+<p>\r
+<a name="slash">Don't forget the</a>\r
+<big><kbd>/</kbd></big>\r
+(slash)\r
+at the beginning of the path.\r
+If you leave it out the line will be interpreted as a domain name,\r
+so\r
+<big><kbd>ad</kbd></big>\r
+would block all sites from Andorra\r
+(since\r
+<big><kbd>.ad</kbd></big>\r
+is the two-letter\r
+<a href="reference.html#country">country code</a>\r
+for that principality).\r
+<p>\r
+<a name="detail">For a detailed technical description</a>\r
+of how pattern matching is done,\r
+see the\r
+<a href="ijbman.html#o_b">manual.</a>\r
+</p>\r
+\r
+<h3><a name="despite" href="/cgi-bin/gp?pg=ijbfaq&pr=despite"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How come this ad is still getting through anyway?\r
+</h3>\r
+<p>\r
+If the ad had been displayed before you included its\r
+<small>URL</small>\r
+in the blockfile,\r
+it will probably be held in cache for some time,\r
+so it will be displayed without the need for any request to the server.\r
+Using the\r
+<a href="ijbman.html#debug">debug</a>\r
+<big><kbd>1</kbd></big>\r
+option to show each\r
+<small>URL</small>\r
+as it is fetched is a good way to see exactly what is happening.\r
+<p>\r
+<a name="otherwise">If new items seem to be getting through,</a>\r
+check that you are\r
+<a href="ijbfaq.html#show">really running</a>\r
+the proxy with the right blockfile in the options.\r
+Check the blockfile for\r
+<a href="ijbfaq.html#exceptions">exceptions.</a>\r
+<p>\r
+<a name="java">Some sites may have different ways of inserting ads,</a>\r
+such as via\r
+<a href="cookies.html#java">Java.</a>\r
+If you have ideas on how to block new kinds\r
+of junk not currently covered, please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=java">tell us.</a>\r
+</p>\r
+\r
+<h3><a name="exceptions" href="/cgi-bin/gp?pg=ijbfaq&pr=exceptions"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How do I stop it blocking a URL that I actually want?\r
+</h3>\r
+<p>\r
+You can change the patterns so they don't cover it,\r
+or use a simple feature in Version 1.1 and later: a line beginning with a\r
+<big><kbd>~</kbd></big>\r
+character means that a\r
+<small>URL</small>\r
+blocked by previous patterns that matches the rest of\r
+the line is let through.\r
+For example,\r
+the pattern\r
+<big><kbd>/ad</kbd></big>\r
+would block\r
+<big><kbd>/addasite.html</kbd></big>\r
+but not if followed by\r
+<big><kbd>~/addasite</kbd></big>\r
+in the blockfile.\r
+Or suppose you want to see everything that comes from\r
+a site you like, even if it looks like an ad: simply put\r
+<big><kbd>~aSiteYouLike.com</kbd></big>\r
+at the\r
+<em>end</em>\r
+of the blockfile.\r
+(Order is important, because the last matching line wins.)\r
+<p>\r
+<a name="agreed">As well as unblocking</a>\r
+pages that were unintentionally blocked,\r
+this feature is useful for unblocking ads from a specific source.\r
+This might be because you are interested in those particular ones,\r
+or if you have an explicit agreement to accept certain ads,\r
+such as those from a free web-based email provider.\r
+</p>\r
+\r
+<h3><a name="children" href="/cgi-bin/gp?pg=ijbfaq&pr=children"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can I block sites I don't want my children to see?\r
+</h3>\r
+<p>\r
+Yes, but remember that\r
+<a name="savvy">children who are technically sophisticated enough</a>\r
+to use the browsers' proxy configuration options\r
+could of course bypass any proxy.\r
+This kind of technology can be used as a gentle barrier to remind\r
+or guide the child,\r
+but nobody should expect it to replace the parent's role\r
+in setting and enforcing standards of online behavior for their children.\r
+<p>\r
+<a name="recommend">Some</a>\r
+<small>ISP</small>s\r
+are starting to provide specialized proxies to protect children.\r
+There are two basic approaches: the ``black list'' and the ``white list''\r
+approach.\r
+<a name="negative">The black list approach allows the child</a>\r
+to go anywhere not explicitly prohibited; the white list permits visits\r
+only to sites explicitly designated as acceptable.\r
+<p>\r
+<a name="positive">It's very easy for</a>\r
+anyone to\r
+compile a white list from a page of ``recommended\r
+kids sites'' and to configure an\r
+Internet Junkbuster\r
+to allow access to those sites only.\r
+If you compile with the\r
+<a href="ijbfaq.html#regex">regex</a>\r
+option,\r
+you can place a\r
+<big><kbd>*</kbd></big>\r
+(asterisk) as the first line of the blockfile (which blocks everything),\r
+and then list\r
+<a href="ijbfaq.html#exceptions">exceptions</a>\r
+after that.\r
+Be careful to make the exception sufficiently broad:\r
+for example, using\r
+<big><kbd>~www.uexpress.com/ups/comics/ch/</kbd></big>\r
+as the exception for\r
+<a href="http://www.uexpress.com/ups/comics/ch/"><cite>Calvin and Hobbes</cite></a>\r
+would block some of the graphic elements on the page;\r
+you would probably want a wider exception such as\r
+<big><kbd>~www.uexpress.com/ups/</kbd></big>\r
+to permit them.\r
+<p>\r
+<a name="trust">Version 2.0 has an experimental feature</a>\r
+to permit only sites mentioned in a nominated\r
+<a href="ijbman.html#trustfile">trusted site.</a>\r
+This allows organizations to build lists of sites for kids to browse,\r
+and the software automatically restricts access to those on the list.\r
+<p>\r
+<a name="scan">Many filtering</a>\r
+<a href="links.html#blocking">products</a>\r
+actually scan for keywords in\r
+the text of pages they retrieve\r
+before presenting it,\r
+but\r
+the\r
+Internet Junkbuster\r
+does not do this.\r
+Building a perfectly reliable black list system is hard,\r
+because it's very difficult to state\r
+in advance\r
+exactly\r
+what is obscene or unsuitable.\r
+For more info see our\r
+<a href="links.html#parents">links</a>\r
+page.\r
+</p>\r
+\r
+<h3><a name="message" href="/cgi-bin/gp?pg=ijbfaq&pr=message"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What do I see when a page or graphic is blocked by the proxy?\r
+</h3>\r
+<p>\r
+You usually see a broken image icon,\r
+but it depends on several factors beyond the proxy's control.\r
+If asked for a\r
+<small>URL</small>\r
+matching its blockfile, the proxy returns an\r
+<small>HTML</small>\r
+page containing a message identifying itself\r
+(currently the two words ``Internet Junkbuster'')\r
+with a status 202 (Accepted) instead of the usual 200 (OK).\r
+(Versions 1.X returned an error 404: Forbidden, which caused\r
+strange behavior in some cases.)\r
+Status 202 is described in the\r
+<small>HTTP</small>\r
+<a href="http://www.ics.uci.edu/pub/ietf/http/rfc1945.html#Code202">RFC</a>\r
+as indicating that the request has been accepted but not completed,\r
+and that it might complete successfully in the future\r
+(in our case, if the blockfile were changed).\r
+<p>\r
+<a name="depends">The broken image icon is most common</a>\r
+because the browser is usually expecting a graphic.\r
+But if it was expecting text, or if the page happens to be using certain\r
+<small>HTML</small>\r
+extensions\r
+such as\r
+<big><kbd>layer</kbd></big>\r
+and your browser is a late model from Microsoft,\r
+you may see the words ``Internet Junkbuster'' displayed as a hot link.\r
+<p>\r
+<a name="click">Clicking on the link takes you to an explanation of</a>\r
+the pattern in the blockfile that caused the block,\r
+so that you can edit the blockfile and go back and reload if you really\r
+want to see what was blocked. The explanatory link is generated by\r
+the proxy and is automatically intercepted based on its ending in\r
+<big><kbd>ij-blocked-url</kbd></big>;\r
+even though the site is specified as\r
+<big><kbd>http://internet.junkbuster.com</kbd></big>\r
+no request should actually made to that site.\r
+If one is, it means that the proxy was been removed after it\r
+generated the link.\r
+<p>\r
+<a name="layer">To summarize:</a>\r
+the identifying link to the blocking explanation\r
+is usually turned into a broken image icon,\r
+but it may be displayed on a page alone,\r
+or they may may be restricted to the particular frame, layer or graphic area\r
+specified in the page containing them.\r
+The proxy has no way of knowing the context in which a\r
+<small>URL</small>\r
+will be used and cannot control how the blocking message will be rendered.\r
+</p>\r
+\r
+<h3><a name="broken" href="/cgi-bin/gp?pg=ijbfaq&pr=broken"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Why not replace blocked banners with something invisible?\r
+</h3>\r
+<p>\r
+<a name="infringe">Many users have suggested to us</a>\r
+that blocked banners should be replaced by a something like a\r
+1x1 transparent\r
+<small>GIF</small>\r
+to make the page would look as if there was nothing ever there.\r
+Apart from making it harder to catch unintended blocking,\r
+this might also displease the owners of the page,\r
+who could argue that such a change constitutes a copyright infringement.\r
+We think that merely failing to allow an included graphic to be accessed\r
+would probably not be considered an infringement:\r
+after all this is what happens when a browser\r
+is configured not to load images automatically.\r
+However, we are\r
+<a href="over.html#notlaw">not</a>\r
+lawyers,\r
+so anyone in doubt should take appropriate advice.\r
+<p>\r
+<a name="done">In a context where the copyright issue is resolved</a>\r
+satisfactorily,\r
+a proxy could simply return a status 301 or 302 and\r
+specify a replacement\r
+<small>URL</small>\r
+in a\r
+<big><kbd>Location</kbd></big>\r
+and/or\r
+<big><kbd>URI</kbd></big>\r
+header.\r
+An alternative would be to use inline code to return a\r
+1 x 1 clear\r
+<small>GIF</small>.\r
+We do not publish sample code for this,\r
+and we have no way of stopping\r
+<a href="ijbdist.html#others">others</a>\r
+who have.\r
+</p>\r
+\r
+<h3><a name="size" href="/cgi-bin/gp?pg=ijbfaq&pr=size"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Why not block banners based on the dimensions of the image?\r
+</h3>\r
+<p>\r
+Many users have pointed out that most banner ads come in standard sizes,\r
+so why not block all\r
+<small>GIF</small>s\r
+of those sizes?\r
+This would theoretically be without fetching the object \r
+because the dimensions are usually given in the\r
+<big><kbd>IMG</kbd></big>\r
+tag,\r
+but it would require substantial changes in the code,\r
+and we doubt whether it would be much more effective than a good block list.\r
+</p>\r
+\r
+<h3><a name="embedded" href="/cgi-bin/gp?pg=ijbfaq&pr=embedded"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What about non-graphic advertising within the pages I want?\r
+</h3>\r
+<p>\r
+The\r
+Internet Junkbuster\r
+deliberately\r
+does not provide a way of automatically editing the contents of a page,\r
+to remove textual advertising or\r
+to repair the holes left by blocked banners.\r
+Other packages such as\r
+<a href="links.html#webfilter">WebFilter</a>\r
+do.\r
+<p>\r
+<a name="base">For the same reason,</a>\r
+it has no way of stopping a new browser\r
+window being created, because this is done through the\r
+<big><kbd>target</kbd></big>\r
+attribute in the\r
+<big><kbd>&lt;a&gt;</kbd></big>\r
+and\r
+<big><kbd>&lt;base&gt;</kbd></big>\r
+elements,\r
+not through headers.\r
+Nor do we plan to add a feature to\r
+<a href="http://simmons.starkville.ms.us/tips/081097/">paralyze animated</a>\r
+<small>GIF</small>s.\r
+</p>\r
+\r
+<h3><a name="push" href="/cgi-bin/gp?pg=ijbfaq&pr=push"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Does it block ads on the broadcasting ``push'' systems? How about pop-up ads?\r
+</h3>\r
+<p>\r
+We haven't tried it but we expect it would probably\r
+work on image ads on push channels.\r
+See also\r
+<a href="links.html#adchoice">adchoice</a>.\r
+<p>\r
+<a name="pop">Disabling</a>\r
+<a href="cookies.html#java">Javascript</a>\r
+stops some pop-up ads.\r
+One problem is that some advertisers throw open a new\r
+browser window to frame the ad. The ad is easily blocked,\r
+but the empty window remains. You can kill it easily, but this is a chore.\r
+We don't see how to stop them other than editing the\r
+<small>HTML</small>\r
+from the parent window, which we\r
+<a href="ijbfaq.html#broken">don't</a>\r
+like to do.\r
+<p>\r
+<a name="TBTD">The</a>\r
+<a href="http://www.tbtf.com/archive/10-06-97.html">TBTF</a>\r
+newsletter warned subscribers to push information that\r
+<a name="LOGTARGET">in IE4,</a>\r
+<a href="http://www.microsoft.com/standards/cdf.htm#Logging">LOGTARGET</a>\r
+allows\r
+servers to determine the\r
+<small>URL</small>s\r
+viewed at their site even if accessed from cache or through a proxy.\r
+If you use this browser see our instructions on\r
+<a href="cookies.html#counting">how to disable</a>\r
+this.\r
+<p>\r
+<a name="pushy">If you find you have experience using the proxy with push,</a>\r
+or have any other advice about it, please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=pushy">tell us.</a>\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="cookies"><font face="arial, helvetica">\r
+Cookies\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>For background information on cookies see our\r
+<a href="cookies.html">page describing their dangers.</a>\r
+\r
+<h3><a name="breakthrough" href="/cgi-bin/gp?pg=ijbfaq&pr=breakthrough"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Might some cookies still get through? How can I stop them?\r
+</h3>\r
+<p>\r
+Yes, you should expect the occasional cookie to make it through to your browser.\r
+We know of at least three ways this can happen;\r
+please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=breakthrough">tell us</a>\r
+if you find any others.\r
+One way is in secure documents, which are explained\r
+<a href="ijbfaq.html#secure">below.</a>\r
+<p>\r
+<a name="EQUIV">A</a>\r
+<a href="links.html#JavaScript">few</a>\r
+sites set cookies using a line such as\r
+<big><kbd>&lt;META HTTP-EQUIV="Set-Cookie" CONTENT="flavor=chocolate"&gt;</kbd></big>\r
+in the\r
+<big><kbd>HEAD</kbd></big>\r
+section of an\r
+<small>HTML</small>\r
+document.\r
+<a name="javascript">Cookies can also be</a>\r
+<!-- IEM: http://cgi.netscape.com/eng/mozilla/Gold/handbook/javascript/ref_a-c.html#cookie_property -->\r
+set and read\r
+in\r
+JavaScript.\r
+To see if this is happening in a document,\r
+view its source, look in the\r
+<big><kbd>head</kbd></big>\r
+for a section tagged\r
+<big><kbd>script language="JavaScript"</kbd></big>.\r
+If it contains a reference to\r
+<big><kbd>document.cookie</kbd></big>,\r
+the page can manipulate your cookie file without sending any cookie headers.\r
+The\r
+Internet Junkbuster\r
+does not tamper with these methods.\r
+Fortunately they are rarely used at the moment.\r
+If a cookie gets set, it should be stopped\r
+by the proxy on its way back to the server when a page is requested,\r
+but it can still be read in Javascript.\r
+bu\r
+<p>\r
+<a name="alert">To prevent cookies breaking through,</a>\r
+<strong>always</strong>\r
+keep\r
+<a href="cookies.html#disable">cookie alerts</a>\r
+turned on in your browser,\r
+and\r
+<a href="cookies.html#java">disable</a>\r
+Java and Javascript.\r
+Making the files\r
+<a href="cookies.html#only">hard to write</a>\r
+may also help.\r
+</p>\r
+\r
+<h3><a name="method" href="/cgi-bin/gp?pg=ijbfaq&pr=method"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Exactly how do cookies get created and stored anyway?\r
+</h3>\r
+<p>\r
+When a web site's server sends you a page it also sends\r
+certain ``header information'' which your browser records but does not display.\r
+One of these is a\r
+<big><kbd>Set-Cookie</kbd></big>\r
+header, which specifies the cookie information that the server wants your browser to record.\r
+Similarly, when your browser requests a page it also sends headers, specifying\r
+information such as the graphics formats it understands.\r
+If a cookie has previously been set by a site that matches the\r
+<small>URL</small>\r
+it is about to request,\r
+your browser adds a\r
+<big><kbd>Cookie</kbd></big>\r
+header quoting the previous information.\r
+<p>\r
+<a name="privacy">For more background information on how cookies</a>\r
+can damage your privacy, see our\r
+<a href="cookies.html">page on cookies.</a>\r
+For highly detailed technical information see the\r
+<a href="links.html#kristol">RFC.</a>\r
+The\r
+Internet Junkbuster\r
+will show you all headers you use the\r
+<a href="ijbman.html#debug">debug</a>\r
+<big><kbd>8</kbd></big>\r
+option,\r
+or you can get a sample from our\r
+<a href="ijbfaq.html#headers">demonstration page.</a>\r
+</p>\r
+\r
+<h3><a name="break" href="/cgi-bin/gp?pg=ijbfaq&pr=break"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+If cookies can't get through, will some things stop working for me?\r
+</h3>\r
+<p>\r
+Possibly.\r
+Some personalized services including certain\r
+<!-- IEM: http://my.yahoo.com -->\r
+chat\r
+rooms\r
+require cookies.\r
+<a name="registration">Newspapers that require</a>\r
+<!-- IEM: http://www.nytimes.com/subscribe/sub-bin/new_sub.cgi#agree -->\r
+registration\r
+or\r
+<!-- IEM: http://interactive5.wsj.com/regUser.html -->\r
+subscription\r
+will not automatically recognize you if you don't send them the cookie they\r
+assigned you. And there are a very small number of sites that do\r
+strange things with cookies; they don't work for anyone that blocks\r
+cookies by any means.\r
+Some sites such as\r
+<a href="links.html#withhold">Microsoft</a>\r
+explain that their content is so wonderfully compelling that\r
+they will withhold it from you unless you submit to their\r
+inserting cookies.\r
+<p>\r
+<a name="want">If you want such sites to be given your cookies,</a>\r
+you can use the\r
+<a href="ijbman.html#cookiefile">cookiefile</a>\r
+option provided you are running\r
+<a href="ijbfaq.html#crumble">Version 1.2 or later</a>\r
+yourself.\r
+Simply include the domain name of those sites in the\r
+<i>cookiefile</i>\r
+specified by this option.\r
+If it still doesn't work,\r
+the problem may be in\r
+<a href="ijbfaq.html#breakage">other headers.</a>\r
+<p>\r
+<a name="one">It's possible to let cookies out but not in,</a>\r
+which is enough to keep some sites happy, but not all of them:\r
+one newspaper site seems to go into an endless frenzy\r
+if deprived of fresh cookies.\r
+A cookiefile containing\r
+a single line consisting of the two characters\r
+<big><kbd>&gt;*</kbd></big>\r
+(greater-than and star) permits server-bound cookies only.\r
+The\r
+<big><kbd>*</kbd></big>\r
+is a\r
+<a href="ijbman.html#wildcard">wildcard</a>\r
+that matches all domains.\r
+<p>\r
+<a name="else">If someone else is running the</a>\r
+Internet Junkbuster\r
+for you and has a version\r
+that\r
+<!-- IAM: ijbfaq.html#registration -->\r
+passes server-bound cookies through,\r
+you can try editing your browser's cookie\r
+file to contain just the ones you want,\r
+and restart your browser.\r
+<a name="window">To subscribe to a new service like this</a>\r
+after you have started using the\r
+Internet Junkbuster,\r
+you can try the following:\r
+tell your browser to\r
+<a href="ijbfaq.html#discontinue">stop using</a>\r
+the\r
+Internet Junkbuster,\r
+fill out and submit your subscription details\r
+(allowing that web site to set a cookie),\r
+then\r
+reconfigure your browser to use the\r
+Internet Junkbuster\r
+again\r
+(and stop more cookies being sent).\r
+This also requires the\r
+<a href="ijbman.html#cookiefile">cookiefile</a>\r
+option,\r
+and its success depends on the Web site\r
+not wanting to change your cookies at every session.\r
+For this reason it does not work at some major newspaper sites, for example.\r
+<a name="buyers">But you may prefer to</a>\r
+look at whether other sites provide the same\r
+or better services without demanding the opportunity\r
+to track your behavior.\r
+The web is a buyer's market where most prices are zero:\r
+very few people pay\r
+for content with money, so why should you pay with your privacy?\r
+</p>\r
+\r
+<h3><a name="crumble" href="/cgi-bin/gp?pg=ijbfaq&pr=crumble"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can I control cookies on a per-site basis?\r
+</h3>\r
+<p>\r
+<a name="discard">Yes, since version 1.2 the</a>\r
+Internet Junkbuster\r
+has included advanced cookie management facilities.\r
+Unless you specify otherwise,\r
+cookies are discarded (``crumbled'') by the\r
+Internet Junkbuster\r
+whether they came from the server or the browser.\r
+In Version 1.2 and later you can\r
+use the\r
+<a href="ijbman.html#cookiefile">cookiefile</a>\r
+option\r
+to specify when cookies are to be passed through intact.\r
+It uses the same syntax and\r
+<a href="ijbman.html#o_b">matching</a>\r
+algorithm as the blockfile.\r
+<p>\r
+<a name="cook">If the</a>\r
+<small>URL</small>\r
+matches a pattern in the\r
+<i><dfn>cookiefile</dfn></i>\r
+then cookies are let through in both the browser's request for the\r
+<small>URL</small>\r
+and in the server's response.\r
+<a name="directional">One-way permissions can be</a>\r
+specified by starting the line with the\r
+<big><kbd>&gt;</kbd></big>\r
+or\r
+<big><kbd>&lt;</kbd></big>\r
+character.\r
+For example, a cookiefile consisting of the four lines\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>org</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>&gt;send-user-cookies.org</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>&lt;accept-server-cookies.org</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>~block-all-cookies.org</kbd></big>\r
+<br>\r
+allows cookies to and from\r
+<big><kbd>.org</kbd></big>\r
+domains only, with the following exceptions:\r
+<br><ol  type="1">\r
+<li>\r
+<a name="fed">Cookies sent from servers in the domain</a>\r
+<big><kbd>send-user-cookies.org</kbd></big>\r
+are blocked on their way to the client,\r
+but cookies sent by the browser to that domain are still be fed to them.\r
+<li>\r
+<a name="take">The cookies of</a>\r
+<big><kbd>accept-server-cookies.org</kbd></big>\r
+check in to the proxy and are passed through to the browser,\r
+but when they come back to the proxy they never check out.\r
+<li>\r
+<a name="deny">All cookies to and from</a>\r
+<big><kbd>block-all-cookies.org</kbd></big>\r
+are blocked.\r
+</ol>\r
+<p>\r
+<a name="paths">If</a>\r
+the\r
+<b><kbd>junkbuster</kbd></b>\r
+was compiled with the regular expressions option\r
+they may be used in paths.\r
+Any logging to a\r
+<a href="ijbfaq.html#jar">``cookie jar''</a>\r
+is separate and not affected.\r
+<p>\r
+<a name="breadth">It's important to give hosts you want to be able</a>\r
+to set cookies sufficient breadth. For example,\r
+instead of\r
+<big><kbd>www.yahoo.com</kbd></big>\r
+use\r
+<big><kbd>yahoo.com</kbd></big>\r
+because the company uses many different hosts ending in that domain.\r
+</p>\r
+\r
+<h3><a name="wafers" href="/cgi-bin/gp?pg=ijbfaq&pr=wafers"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can I make up my own fake cookies (wafers) to feed to servers?\r
+</h3>\r
+<p>\r
+Yes,\r
+using the\r
+<a href="ijbman.html#wafer">wafer</a>\r
+option.\r
+We coined the term\r
+<i><dfn>wafer</dfn></i>\r
+to describe cookies chosen by a user,\r
+not the Web server.\r
+Servers may not find wafers as tasty as the cookies\r
+they make themselves.\r
+But users may enjoy controlling servers' diets for various reasons,\r
+such as the following.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="retaliate">Users who consider cookies to</a>\r
+be an unwelcome intrusion and a waste\r
+of their disk space can respond in kind.\r
+By writing ``signature wafers'' they can\r
+express their feelings about cookies,\r
+in a place that the people\r
+in charge of them are most likely to notice.\r
+<li>\r
+<a name="notice">Sites running a proxy</a>\r
+that logs cookies to a file\r
+(such as the\r
+Internet Junkbuster\r
+does with the\r
+<a href="ijbman.html#jarfile">jarfile</a>\r
+option on)\r
+may want to notify\r
+servers that their cookies are being intercepted,\r
+deleted or copied.\r
+One possible reason for doing this is the uncertain copyright status\r
+of cookie strings.\r
+<a href="over.html#notlaw">Nothing</a>\r
+here should be taken as legal advice: we are simply raising a question\r
+for any interested parties to consider,\r
+and make no representation that such measures are necessary or sufficient.\r
+Concerned proxy sites might decide to send a wafer\r
+(named ``NOTICE'' for example)\r
+containing text along the lines of the following.\r
+<blockquote>\r
+<p>\r
+<a name="licenses_on_cookies_refused">TO WHOM IT MAY CONCERN</a>\r
+<i>\r
+<br>\r
+<br>\r
+Do not send me any copyrighted information other than the\r
+document that I am requesting or any of its necessary components.\r
+<br>\r
+<br>\r
+In particular do not send me any cookies that\r
+are subject to a claim of copyright by anybody.\r
+Take notice that I refuse to be bound by any license condition\r
+(copyright or otherwise) applying to any cookie.\r
+</i>\r
+</blockquote>\r
+Any company that tries to argue in court that the proxy site\r
+was breaching their copyright in the cookies would\r
+be met with the defense that the proxy site gave that company\r
+the opportunity to protect its copyright by simply\r
+not sending cookies after receiving the notice. \r
+<p>\r
+<a name="pointer">Cookies can be as long as four thousand characters,</a>\r
+so there's plenty of space for lawyerly verbosity,\r
+but white space, commas, and semi-colons are\r
+<a href="ijbman.html#o_w">prohibited.</a>\r
+Spaces can be turned into underscores.\r
+Alternatively,\r
+a\r
+<small>URL</small>\r
+could be sent as the cookie value,\r
+pointing to a document containing a notice,\r
+perhaps with a suggestive value such as\r
+<br>\r
+<big><kbd>http://www.junkbusters.com/ht/en/ijbfaq.html#licenses_on_cookies_refused</kbd></big>\r
+<br>\r
+But including the notice directly would probably be preferable\r
+because the addressee does not have to look it up.\r
+<p>\r
+<a name="vanilla">The</a>\r
+Internet Junkbuster 2.0\r
+currently sends a full notice as a\r
+``vanilla wafer''\r
+if cookies are being logged to a cookie jar\r
+and no other wafers have been specified.\r
+It can be suppressed with the\r
+<a href="ijbman.html#suppress-vanilla-wafer">suppress-vanilla-wafer</a>\r
+option,\r
+which might be used in situations where there is an established understanding\r
+between the proxy and all who serve it.\r
+</ul>\r
+<p>\r
+<a name="gimme">Junkbusters provides a</a>\r
+<small>CGI</small>\r
+script that lets you\r
+<a href="ijbfaq.html#headers">see</a>\r
+your wafers as they appear to servers.\r
+<p>\r
+<a name="malfunction">Wafers confuse a few fragile servers.</a>\r
+If this troubles you, don't use this option.\r
+<p>\r
+<a name="regardless">Any wafers specified are sent to</a>\r
+all sites regardless of the cookiefile.\r
+<a name="compliant">They are appended after any genuine cookies,</a>\r
+to maintain compliance with\r
+<a href="links.html#kristol">RFC 2109</a>\r
+in the event that a path was specified for a cookie.\r
+The\r
+<small>RFC</small>'s provisions regarding the\r
+<big><kbd>$</kbd></big>\r
+character\r
+(such as the\r
+<big><kbd>Version</kbd></big>\r
+attribute)\r
+are transparent\r
+to the proxy; it simply quotes what was recited by the browser.\r
+<p>\r
+<a name="personalize">If you want to send wafers only to specific sites,</a>\r
+you could try putting them your browser's cookie file in a format\r
+conforming to the Netscape\r
+<a href="links.html#netscape">specification</a>,\r
+and then specify in the proxy's cookiefile that cookies are to be\r
+<a href="ijbfaq.html#directional">sent to</a>\r
+but not accepted from those sites, so they can't overwrite the file.\r
+This may work with Netscape but not all other browsers.\r
+</p>\r
+\r
+<h3><a name="jar" href="/cgi-bin/gp?pg=ijbfaq&pr=jar"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Why would anyone want to save their cookies in a ``cookie jar?''\r
+</h3>\r
+<p>\r
+We provided this capability just in case anyone wants it.\r
+There are a few possible reasons.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="pay">It's conceivable that</a>\r
+marketing companies might one day\r
+<a href="new.html#hagel">buy</a>\r
+history files and cookie jars from consumers\r
+in the same way that they currently pay them to fill out survey forms.\r
+With this information they could\r
+gather psychographic information,\r
+see which competitors' sites the consumer has visited,\r
+and discover what advertising is being targeted at them.\r
+<li>\r
+<a name="choose">Some consumers might</a>\r
+employ semi-automated means of sorting through\r
+their cookie jars, selecting which ones to place in their cookies\r
+file for use by their browsers.\r
+Their decisions could be based on payments offered,\r
+privacy rating systems such as\r
+<a href="links.html#truste">TRUSTe</a>\r
+proposes,\r
+or their own opinion of the company.\r
+It could be done manually or with software.\r
+<li>\r
+<a name="share">Users may even start ``sharing'' cookies among themselves,</a>\r
+sending back cookies that servers generated for other visitors.\r
+Servers that aren't expecting this possibility\r
+will be misled about their visitors' identities.\r
+Cookies could be shared among users on a single machine,\r
+or across continents via\r
+<small>FTP</small>\r
+and anonymous remailers.\r
+<a name="disinformation">Privacy activists may promote</a>\r
+cookie disinformation campaigns\r
+as a way to defend the public against abuse.\r
+If a significant percentage of people send disinformative cookies,\r
+user tracking via cookies may become less reliable and less used.\r
+</ul>\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="anonymity"><font face="arial, helvetica">\r
+Anonymity\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>For details\r
+on how your identity can be revealed while you surf,\r
+see our page on\r
+<a href="http://www.junkbusters.com/cgi-bin/privacy">privacy.</a>\r
+Once you start using\r
+the\r
+Internet Junkbuster\r
+you should find that much of the information\r
+previously indicated on that page will no longer be provided.\r
+If the\r
+<big><kbd>REMOTE HOST</kbd></big>\r
+indicating your IP address is too close for comfort,\r
+see our suggestions\r
+<a href="ijbfaq.html#conceal">below</a>\r
+on how to\r
+conceal\r
+your IP address.\r
+We also recommend that you\r
+<a href="cookies.html">disable JavaScript</a>\r
+and\r
+<a href="links.html#java">Java.</a>\r
+\r
+<h3><a name="disclose" href="/cgi-bin/gp?pg=ijbfaq&pr=disclose"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+If I use the Internet Junkbuster, will my anonymity be guaranteed?\r
+</h3>\r
+<p>\r
+No. Your chances of remaining anonymous are improved,\r
+but unless you are an expert on Internet security\r
+it would be safest to assume that everything you do on the Web\r
+can be attributed to you personally.\r
+<p>\r
+<a name="happen">The</a>\r
+Internet Junkbuster\r
+removes various information about you,\r
+but it's still possible that web sites can find out who you are.\r
+Here's one way this can happen.\r
+<p>\r
+<a name="ftp">A few browsers</a>\r
+<a href="http://www.junkbusters.com/cgi-bin/privacy">disclose the user's email address</a>\r
+in certain situations, such as when transferring a file by\r
+<small>FTP</small>.\r
+The\r
+Internet Junkbuster 2.0\r
+does not filter the\r
+<small>FTP</small>\r
+stream.\r
+If you need this feature, or are concerned about the mail handler\r
+of your browser disclosing your email address,\r
+you might consider\r
+products such as\r
+<a href="links.html#nsclean">NSClean</a>.\r
+<p>\r
+<a name="binaries">Browsers downloaded as binaries</a>\r
+could use non-standard headers to give out any information\r
+they can have access to: see the manufacturer's license agreement.\r
+It's impossible to anticipate and prevent every breach of privacy that\r
+might occur.\r
+The professionally paranoid prefer browsers available as source code,\r
+because anticipating their behavior is easier.\r
+</p>\r
+\r
+<h3><a name="should" href="/cgi-bin/gp?pg=ijbfaq&pr=should"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Why should I trust my ISP or Junkbusters with my browsing data?\r
+</h3>\r
+<p>\r
+You shouldn't have to trust us, and you certainly don't have to.\r
+We do not run the proxy as a service,\r
+where we could observe your online behavior.\r
+We provide source code so that everyone can see that the proxy isn't\r
+doing anything sneaky.\r
+<p>\r
+<a name="awful">You are already trusting your</a>\r
+<small>ISP</small>\r
+not to look at an awful lot of information on what you do.\r
+They probably post a\r
+<a href="links.html#policy">privacy policy</a>\r
+on their site to reassure you.\r
+If they run a proxy for you, using it could actually\r
+make it slightly easier for them to monitor you,\r
+but we doubt that any sane\r
+<small>ISP</small>\r
+would try this,\r
+because if it were discovered customers would desert them.\r
+</p>\r
+\r
+<h3><a name="header" href="/cgi-bin/gp?pg=ijbfaq&pr=header"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What private information from server-bound headers is removed?\r
+</h3>\r
+<p>\r
+The\r
+Internet Junkbuster\r
+pounces on the following\r
+<small>HTTP</small>\r
+headers in requests to servers,\r
+unless instructed otherwise in the options.\r
+<br><ul  type="1">\r
+<li>\r
+<a name="from">The</a>\r
+<big><kbd>FROM</kbd></big>\r
+header,\r
+which a few browsers use to tell your email address to servers,\r
+is dropped\r
+unless the\r
+<a href="ijbman.html#from">from</a>\r
+option is set.\r
+<li>\r
+<a name="agent">The</a>\r
+<big><kbd>USER_AGENT</kbd></big>\r
+<a name="infer">header</a>\r
+is changed to indicate that the browser is\r
+currently Mozilla (Netscape) 3.01 Gold\r
+with an unremarkable Macintosh configuration.\r
+Misidentification helps resist certain\r
+<a href="ijbfaq.html#misidentify">attacks.</a>\r
+If your browser and hardware happen to be accurately identified,\r
+you might want to change the default.\r
+(Earlier versions of the\r
+Internet Junkbuster\r
+indicated different details;\r
+by altering them periodically we aim to hinder anyone trying to\r
+<a href="ijbfaq.html#detect">infer</a>\r
+whether our proxy is present.)\r
+<a name="lying">If you don't like the idea</a>\r
+of incorrectly identifying your computer as a Mac,\r
+set it accordingly.\r
+<!-- Aside: or read Kundera's Unbearable Lightness of Being, 5:5, ``It is a tragicomic fact..'' (p187?) -->\r
+<li>\r
+<a name="referer">The</a>\r
+<big><kbd>REFERER</kbd></big>\r
+header\r
+(which indicates where the\r
+<small>URL</small>\r
+currently being requested was found)\r
+is dropped.\r
+A single static referer to replace all\r
+real referers may be specified using the \r
+<a href="ijbman.html#referer">referer</a>\r
+option.\r
+Where no referer is provided by the browser, none is added;\r
+the\r
+<a href="ijbman.html#add-header">add-header</a>\r
+option with arguments such as\r
+<big><kbd>-x 'Referer: http://me.me.me'</kbd></big>\r
+can be used to send a bogus referer with every request.\r
+</ul>\r
+In \r
+Version <a href="ijbdist.html#c4">1.4</a>\r
+and later you can use the\r
+<a href="ijbman.html#o_r">-r @</a>\r
+option to selectively disclose\r
+<big><kbd>REFERER</kbd></big>\r
+and\r
+<big><kbd>USER_AGENT</kbd></big>\r
+to only those sites you nominate.\r
+<p>\r
+<a name="UA">Some browsers</a>\r
+send Referer and User-Agent information under different non-standard headers.\r
+The\r
+Internet Junkbuster 2.0\r
+stops\r
+<big><kbd>UA</kbd></big>\r
+headers,\r
+but others may get through.\r
+This information is also available via JavaScript,\r
+so\r
+<a href="cookies.html">disable disable</a>\r
+it.\r
+<a name="indexers">Some search engines</a>\r
+<a href="cookies.html#queries">encode the query you typed</a>\r
+in the\r
+<small>URL</small>\r
+that goes to advertisers to target a banner ad at you,\r
+so you will need to block the ad as well as the referer header,\r
+unless you want them (and anyone they might\r
+<a href="cookies.html#set">buy data</a>\r
+from)\r
+to know\r
+<a href="links.html#search">everything you ever search for.</a>\r
+<p>\r
+<a name="JavaScript">If you have JavaScript enabled (the default on</a>\r
+most browsers) servers can use it to obtain Referer and User Agent,\r
+as well as your plug-ins.\r
+We recommend\r
+<a href="cookies.html#java">disabling</a>\r
+JavaScript and Java.\r
+<p>\r
+<a name="response">Currently no</a>\r
+<small>HTTP</small>\r
+response headers (browser bound)\r
+are removed,\r
+not even the\r
+<big><kbd>Forwarded:</kbd></big>\r
+or\r
+<big><kbd>X-Forwarded-For:</kbd></big>\r
+headers.\r
+Nor are any added,\r
+<a href="ijbman.html#o_y">unless requested.</a>\r
+We are considering a more flexible header management system for\r
+a future version.\r
+</p>\r
+\r
+<h3><a name="breakage" href="/cgi-bin/gp?pg=ijbfaq&pr=breakage"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Might some things break because header information is changed?\r
+</h3>\r
+<p>\r
+Possibly.  If used with a browser less advanced than Netscape 3.0 or IE-3,\r
+indicating an advanced browser\r
+may encourage pages containing extensions that confuse your browser.\r
+If this becomes a problem\r
+upgrade your browser or\r
+use the\r
+<a href="ijbman.html#user-agent">user-agent</a>\r
+option to indicate an\r
+<a href="ijbfaq.html#low">older browser.</a>\r
+In \r
+Version <a href="ijbdist.html#c4">1.4</a>\r
+and later you can selectively reveal your real browser\r
+to only those sites you nominate.\r
+<p>\r
+<a name="Russian">Because different browsers</a>\r
+use different encodings of Russian characters,\r
+certain web servers convert pages on-the-fly according to the User Agent\r
+header. Giving a User Agent with the wrong operating system or\r
+browser manufacturer causes some Russian sites to be garbled;\r
+Russian surfers should\r
+<a href="ijbman.html#o_r">change it</a>\r
+to something closer.\r
+<p>\r
+<a name="counters">Some</a>\r
+<a href="http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Programming/Access_Counts/">page access counters</a>\r
+work by looking at the referer;\r
+they may fail or break when deprived.\r
+<p>\r
+<a name="wired">Some sites depend on getting a referer header,</a>\r
+such as\r
+<big><kbd>uclick.com</kbd></big>,\r
+which serves comic strips\r
+for many newspaper sites,\r
+including\r
+<a href="http://www.uclick.com/?feature=db"><cite>Doonsbury</cite></a>\r
+for the\r
+<a href="http://www.washingtonpost.com/wp-srv/style/longterm/comics/comics.htm"><cite>Washington Post.</cite></a>\r
+(If you click on that last link, you can then get to a page containing\r
+the strip via the\r
+same\r
+<small>URL</small>\r
+we've linked to under\r
+<cite>Doonsbury</cite>,\r
+but if you click on the\r
+<cite>Doonsbury</cite>\r
+link directly, it gives you an error message suggesting that you\r
+use a browser that supports referers.)\r
+In \r
+Version <a href="ijbdist.html#c4">1.4</a>\r
+and later you can use the\r
+<a href="ijbman.html#o_r">-r @</a>\r
+option\r
+and place a line like\r
+<big><kbd>&gt;uclick.com</kbd></big>\r
+in your cookiefile.\r
+<a href="http://www.wired.com/news/">Wired News</a>\r
+used to use referer to decide whether to add a navigation column to\r
+the page, but they have changed that.\r
+<p>\r
+<a name="Intellicast">The weather maps of</a>\r
+<a href="links.html#Intellicast">Intellicast</a>\r
+have been blocked by their server when no referer or cookie is provided.\r
+You can use the same countermeasure with a line such as\r
+<big><kbd>&gt;208.194.150.32</kbd></big>\r
+(or simply get your weather information\r
+<a href="ijbfaq.html#buyers">elsewhere</a>).\r
+<p>\r
+<a name="decide">Some software vendors, including</a>\r
+<a href="http://www.intuit.com/quicken_store/">Intuit</a>\r
+use\r
+<big><kbd>USER_AGENT</kbd></big>\r
+to decide which versions of their products to display to you.\r
+With the\r
+<a href="ijbfaq.html#agent">default</a>\r
+you get Mac versions.\r
+<p>\r
+<a name="resort">As a last resort if a site you need doesn't seem to be working,</a>\r
+the\r
+<a href="ijbfaq.html#set">proxy configuration</a>\r
+of many browsers allow you to specify\r
+<b><font face="arial, helvetica">\r
+No Proxy For</font></b>\r
+any hostname you want.\r
+<p>\r
+<a name="What">We had reports that on some versions of Netscape the</a>\r
+<a href="http://home.netscape.com/home/whats-new.html">What's New</a>\r
+feature did not work with the proxy,\r
+but we think we fixed this in Version 2.0.1.\r
+</p>\r
+\r
+<h3><a name="misidentify" href="/cgi-bin/gp?pg=ijbfaq&pr=misidentify"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How is misidentifying my browser good for security and privacy?\r
+</h3>\r
+<p>\r
+Almost\r
+<a href="new.html#Browser">every</a>\r
+major release of both leading browsers has contained\r
+bugs that allow malicious servers to compromise your privacy and security.\r
+Known bugs are quickly fixed, but millions of copies of the affected\r
+software remain out there, and yours is probably one of them.\r
+The\r
+<a href="ijbfaq.html#agent">header</a>\r
+that normally identifies your browser tells such servers exactly which attacks\r
+to use against you.\r
+By misidentifying your browser you reduce the likelihood that they\r
+will be able to mount a successful attack.\r
+</p>\r
+\r
+<h3><a name="conceal" href="/cgi-bin/gp?pg=ijbfaq&pr=conceal"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Does the Internet Junkbuster conceal my IP address?\r
+</h3>\r
+<p>\r
+Web sites get the IP address of any proxy or browser they serve pages to.\r
+If you run the proxy on your own computer the IP address disclosed\r
+is the same as your browser would, unless you use the\r
+<a href="ijbman.html#forwardfile">forwardfile</a>\r
+option is used to chain to another proxy,\r
+in which case servers only get the last IP address in the chain.\r
+Chaining slightly slows browsing of course, but it improves anonymity.\r
+<p>\r
+<a name="anonymizing">One public proxy that you can</a>\r
+forward to is\r
+<a href="new.html#LPWA">lpwa.com</a>\r
+port 8000.\r
+Read about its privacy-enhancing\r
+features and the authentication procedures first,\r
+and note that it blocks\r
+<a href="ijbfaq.html#wired">referer</a>\r
+in almost all cases,\r
+as well as some\r
+<a href="http://lpwa.com:8000/system.html#principles:header">other headers.</a>\r
+</p>\r
+\r
+<h3><a name="authorize" href="/cgi-bin/gp?pg=ijbfaq&pr=authorize"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+How can I set the proxy to remember my LPWA password?\r
+</h3>\r
+<p>\r
+After you log in to\r
+<a href="http://lpwa.com">LPWA</a>\r
+it tells your browser to send a\r
+<big><kbd>Proxy-authorization</kbd></big>\r
+header with each request.\r
+Whenever you shut down the browser and start again with a new browser,\r
+you need to log in again.\r
+If you are the only person using the\r
+Internet Junkbuster\r
+proxy, you can avoid repeated logins to\r
+<a href="http://lpwa.com">LPWA</a>\r
+by telling the\r
+Internet Junkbuster\r
+to send the information by placing a line such as\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>add-header Proxy-authorization: Basic ZHVtbXk=.</kbd></big>\r
+<br>\r
+in the configuration file.\r
+The exact example above\r
+<em>does not work</em>\r
+because the code\r
+<big><kbd>ZHVtbXk=.</kbd></big>\r
+is a bogus one that\r
+<a href="http://lpwa.com">LPWA</a>\r
+would never generate;\r
+follow the procedure below to generate a valid one.\r
+<br><ol  type="1">\r
+<li>\r
+<a name="eight">Restart your</a>\r
+Internet Junkbuster\r
+with\r
+<big><kbd>debug 8</kbd></big>\r
+so you can see the\r
+<a href="ijbman.html#o_d">headers.</a>\r
+<li>\r
+<a name="login">Log in to</a>\r
+<a href="http://lpwa.com">LPWA</a>\r
+and go to any other site.\r
+<li>\r
+<a name="observe">Find the</a>\r
+<big><kbd>Proxy-authorization</kbd></big>\r
+header from the debug output and paste it\r
+after the word\r
+<a href="ijbman.html#add-header">add-header</a>\r
+into the config file.\r
+Also change the debug value back again.\r
+<li>\r
+<a name="return">Shut down your browser, start it up again, and</a>\r
+restart the proxy. Test that it works.\r
+</ol>\r
+This trick is convenient for sole users, but is not suitable when\r
+more than one person uses the proxy, because they will all get the\r
+same\r
+<a href="http://lpwa.com">LPWA</a>\r
+identity.\r
+</p>\r
+\r
+<h3><a name="ident" href="/cgi-bin/gp?pg=ijbfaq&pr=ident"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Does the Internet Junkbuster thwart identification by identd?\r
+</h3>\r
+<p>\r
+We think so,\r
+provided you are not the user running the\r
+proxy.\r
+If your computer (or your\r
+<small>ISP</small>'s)\r
+is running the\r
+<a href="links.html#identd"><kbd>identd</kbd></a>\r
+demon,\r
+servers can ask it for the identity of the\r
+user making the request at time you request a page from them.\r
+But if you're going through a proxy,\r
+they will identify the user name associated with the proxy, not you.\r
+A visit to\r
+<a href="http://ident.junkbusters.com">http://ident.junkbusters.com</a>\r
+lets you see what's happening.\r
+This test is (quite rightly) blocked by many\r
+<a href="ijbfaq.html#firewall">firewalls;</a>\r
+just interrupt the transfer if you get an abnormal wait after clicking.\r
+Running other applications\r
+may also expose you via\r
+<a href="links.html#identd"><kbd>identd</kbd></a>;\r
+the proxy of course doesn't help then.\r
+</p>\r
+\r
+<h3><a name="detect" href="/cgi-bin/gp?pg=ijbfaq&pr=detect"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can web sites tell that I'm using the Internet Junkbuster?\r
+</h3>\r
+<p>\r
+With the default options the proxy doesn't announce itself.\r
+Obvious indications such as\r
+<a href="links.html#alive">Keep-Alive</a>\r
+headers are\r
+<a href="ijbman.html#o_x">deleted,</a>\r
+but sites might notice that you can cancel cookies faster than\r
+any human could possibly click on a mouse.\r
+(If you want to provide a\r
+plausible explanation for this,\r
+change the User Agent header to a\r
+<a href="ijbfaq.html#lynx">cookie-free</a>\r
+or\r
+<a href="cookies.html#communicator">cookie-crunching</a>\r
+browser).\r
+<p>\r
+<a name="figure">But when certain options</a>\r
+are used they could figure out something's going on,\r
+even if they're not pushing cookies.\r
+If you use blocking\r
+they can tell from their logs that the graphics in their pages\r
+are not being requested selectively.\r
+The\r
+<a href="ijbman.html#add-forwarded-header">add-forwarded-header</a>\r
+option explicitly announces to the server that a proxy is present,\r
+and\r
+sending them\r
+<a href="ijbfaq.html#wafers">wafers</a>\r
+is of course a dead giveaway.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<br>\r
+<center>\r
+<h2><a name="security"><font face="arial, helvetica">\r
+Security\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>\r
+<h3><a name="encrypt" href="/cgi-bin/gp?pg=ijbfaq&pr=encrypt"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+What happens with Secure Documents (SSL, https:)?\r
+</h3>\r
+<p>\r
+If you enter a\r
+``Secure Document Area,''\r
+cookies and other header information\r
+such as User Agent and Referer\r
+are sent encrypted,\r
+so they cannot be filtered.\r
+We recommend getting your browser to alert you when this happens.\r
+(On Netscape:\r
+<b><font face="arial, helvetica">\r
+Options</font></b>;\r
+<b><font face="arial, helvetica">\r
+Security</font></b>;\r
+<b><font face="arial, helvetica">\r
+General</font></b>;\r
+<b><font face="arial, helvetica">\r
+Show an alert before entering a secure document space</font></b>.) \r
+We also recommend adding the line\r
+<big><kbd>:443</kbd></big>\r
+to the blockfile to stop all but sites specified in an exception\r
+after that line from using SSL.\r
+<p>\r
+<a name="passage">It may be possible to filter encrypted cookies</a>\r
+by combining the blocking proxy with a cryptographic proxy along\r
+the lines of\r
+<a href="http://stronghold.ukweb.com/safepassage/">SafePassage</a>,\r
+but we have not tried this.\r
+</p>\r
+\r
+<h3><a name="ssl" href="/cgi-bin/gp?pg=ijbfaq&pr=ssl"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Will using this as my Security Proxy compromise security?\r
+</h3>\r
+<p>\r
+We're not security experts, but we don't think so.\r
+The whole point of\r
+<small>SSL</small>\r
+is that the\r
+contents of messages are\r
+<!-- IEM: http://addy.com/dc/html/what_is_ssl_.html -->\r
+encrypted\r
+by the time\r
+they leave the browser and the server.\r
+Eavesdroppers (including proxies) can see where your messages are going\r
+whether you are running a proxy or not,\r
+but they only get to see the contents after they have been encrypted.\r
+</p>\r
+\r
+<h3><a name="restrict" href="/cgi-bin/gp?pg=ijbfaq&pr=restrict"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Can I restrict use of the proxy to a set of nominated IP addresses?\r
+</h3>\r
+<p>\r
+Yes, we added an\r
+<a href="ijbman.html#aclfile">access control</a>\r
+file in Version 2.0.\r
+But before you use it please consider why you want to do it.\r
+If the reason is security,\r
+it probably means you need a firewall.\r
+<p>\r
+<a name="selective">The</a>\r
+<a href="ijbman.html#listen-address">listen-address</a>\r
+option provides a way of binding the proxy to a single IP address/port.\r
+The right way to do this is to choose a port inside your firewall, and\r
+deny access to it to those outside the firewall.\r
+The\r
+Internet Junkbuster\r
+is not a firewall proxy;\r
+it should not be expected to solve security problems.\r
+<p>\r
+<a name="firewall">For background information on firewalls,</a>\r
+see\r
+<a href="http://www.yahoo.com/Computers_and_Internet/Security_and_Encryption/Firewalls/">Yahoo</a>\r
+or a\r
+<a href="http://www.netscapeworld.com/ned-02-1998/ned-02-firewall.html">magazine article</a>\r
+or these well-known books:\r
+<a href="http://www.amazon.com/exec/obidos/ISBN=0201633574/junkbusterscomA/"><cite>Firewalls and Internet Security: Repelling the Wily Hacker</cite></a>\r
+by\r
+<person>William R. Cheswick</person>\r
+and\r
+<person>Steven M. Bellovin</person>\r
+or\r
+<a href="http://www.amazon.com/exec/obidos/ISBN=1565921240/junkbusterscomA/"><cite>Building Internet Firewalls</cite></a>\r
+by\r
+<person>D. Brent Chapman</person>\r
+and\r
+<person>Elizabeth D. Zwicky</person>.\r
+There's\r
+<!-- IEM: http://www.wmd.de/wmd/staff/pauck/misc/fwtk_on_linux.html -->\r
+free Linux software\r
+available,\r
+and a large number of\r
+<a href="http://www.yahoo.com/Business_and_Economy/Companies/Computers/Software/System_Utilities/Security/Firewalls/">commercial</a>\r
+products and services.\r
+For an excellent security overview, primer, and compendium reference, see\r
+<a href="http://www.amazon.com/exec/obidos/ISBN=1565921488/junkbusterscomA/"><cite>Practical Unix and Internet Security</cite></a>\r
+by\r
+<person>Simson Garfinkel</person>\r
+and\r
+<person>Gene Spafford</person>.\r
+</p>\r
+\r
+<h3><a name="others" href="/cgi-bin/gp?pg=ijbfaq&pr=others"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Are there any security risks for ISPs or others who offer the proxy?\r
+</h3>\r
+<p>\r
+Yes.\r
+As with any service offered over the Internet,\r
+hackers can try to misuse it.\r
+A well-run\r
+<small>ISP</small>\r
+will have professionals who are experienced at assessing and containing\r
+these risks.\r
+<p>\r
+<a name="outside">It's possible to set up your machine so</a>\r
+that other people can have access to your proxy,\r
+but if you lack expertise in computer security\r
+you probably shouldn't have your computer configured to offer\r
+this or any other service to the outside world.\r
+<p>\r
+<a name="attack">Hackers can attempt to gain access</a>\r
+to the machine by various attacks,\r
+which we have tried to guard against but don't guarantee to thwart.\r
+They can also use the ``anonymizing'' quality of proxies\r
+to try to cover their tracks while hacking other computers.\r
+For this reason we recommend preventing it being used\r
+as an anonymous\r
+<big><kbd>telnet</kbd></big>\r
+by putting the pattern\r
+<big><kbd>:23</kbd></big>\r
+in the blockfile (it's included as standard equipment).\r
+(Actually the current implementation incidentally blocks telnet due to the\r
+way headers are handled, but it's best not to rely on this.)\r
+If you wish to block all ports except the default\r
+<small>HTTP</small>\r
+port 80,\r
+you can put the lines\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>:</kbd></big>\r
+<br>\r
+&#160;&#160;&#160;<big><kbd>~:80</kbd></big>\r
+<br>\r
+at the beginning of the blockfile, but be aware that some servers\r
+run on non-default ports (e.g. 8080). You might also want to add the line\r
+<big><kbd>~:443</kbd></big>\r
+to allow\r
+<small>SSL</small>.\r
+<p>\r
+<a name="root">On</a>\r
+<small>UNIX <a href="legal.html#not_our_trademark">&#174;</a></small>\r
+systems it is neither necessary nor desirable for the proxy to run as root.\r
+<p>\r
+<a name="patched">Versions 2.0.1 and below may be vulnerable to remote</a>\r
+exploitation of a memory buffer bug; for security reasons all users\r
+are encouraged to\r
+<a href="ijbdist.html#upgrade">upgrade.</a>\r
+<p>\r
+<a name="holes">If you find any security holes in the code</a>\r
+please\r
+<a href="/cgi-bin/gp?pg=ijbfaq&pr=holes">tell us,</a>\r
+along with any suggestions you may have for fixing it.\r
+However, we do not claim that we will be able to do so.\r
+<p>\r
+<a name="useful">We distribute this code in the hope that people</a>\r
+will find it useful, but we provide\r
+<a href="ijbfaq.html#free">no warranty</a>\r
+for it,\r
+and we are not responsible for anyone's use or misuse of it.\r
+<p>\r
+<a name="updates">You may also want to check back periodically for updated versions of the code.</a>\r
+We do not\r
+maintain a mailing list.\r
+To get quick updates, bookmark our\r
+<a href="ijbdist.html#versions">Distribution Information</a>\r
+page.\r
+</p>\r
+<p align="center"><a href="#top_of_page"><img border=0 width=250 height=15 src="/images/top.gif" alt="--- Back to Top of Page ---"></a></p>\r
+<font face="arial, helvetica">\r
+<a rel="begin" href="index.html">Home</a> <font color="#ff0000">\r
+<b> &#183; </b></font>\r
+<a rel="next" href="ijbman.html">Next</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="lopt.html">Site Map</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="legal.html">Legal</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkdata.html">Privacy</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="cookies.html">Cookies</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijb.html">Banner Ads</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="telemarketing.html">Telemarketing</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkmail.html">Mail</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="junkemail.html">Spam</a>\r
+\r
+</font><form action="/cgi-bin/search" method="GET">\r
+<input type="text" name="q" size=60 maxlength=120 value="">\r
+<input type="submit" value="Search"></form>\r
+<small>\r
+<small>\r
+<p>\r
+<a href="legal.html#copy">Copyright</a> &#169; 1996-8 Junkbusters\r
+<a href="legal.html#marks">&#174;</a> Corporation.\r
+Copying and distribution permitted under\r
+the <a href="gpl.html"><small>GNU</small></a>\r
+General Public License.\r
+</small>\r
+<tt>\r
+1998/10/31\r
+http://www.junkbusters.com/ht/en/ijbfaq.html\r
+</tt>\r
+<address><kbd>webmaster&#64;junkbusters.com</kbd></address>\r
+</small>\r
+</body>\r
+</html>\r
diff --git a/doc/ijbman.html b/doc/ijbman.html
new file mode 100644 (file)
index 0000000..710cddb
--- /dev/null
@@ -0,0 +1,920 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\r
+<html>\r
+<head>\r
+<!-- Copyright 1996-8 Junkbusters Corporation -->\r
+<!-- This work comes with NO WARRANTY -->\r
+<!-- It may be redistributed and modified under the GNU GPL-->\r
+<!-- See the body of http://www.junkbusters.com/ht/en/gpl.html for details-->\r
+<!-- Junkbusters is a registered trade mark of Junkbusters Corporation -->\r
+<!-- Generated 1998/10/31 03:58:25 UTC -->\r
+<meta name="Generator" content="Junkbusters Ebira $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $">\r
+<!-- Document  ID: $Revision: 1.1 $ $Date: 2001/04/16 21:10:38 $ -->\r
+<title>\r
+Internet Junkbuster Technical Information\r
+</title>\r
+<base href="http://www.junkbusters.com/ht/en/ijbman.html">\r
+<meta name="description" content="The manual page for the Internet Junkbuster, free software to removes banner ads, cookies, and other stuff you don't want from your web browser.">\r
+<meta name="keywords" content="stop, junk, busters, junkbusters, junkbuster, mail, email, e-mail, direct, spam, spamoff, declare, telemarketing, telemarketers, privacy, sharing, names, renting, direct, marketing, database, databases, junk mail, lists, environment, conservation, recycling, catalogs, consumer, sending, opt out ">\r
+<link rel="next" href="cookies.html">\r
+<link rel="previous" href="ijbfaq.html">\r
+<link rel="contents" href="toc.html">\r
+</head>\r
+<body bgcolor="#f8f8f0" link="#000078" alink="#ff0022" vlink="#787878">\r
+<center>\r
+<h1><a name="top_of_page">Internet J<small>UNK<i><font color=red>BUSTER</font></i></small> Technical Information\r
+</a></h1>\r
+</center>\r
+<font face="arial, helvetica">\r
+<p align="center">\r
+<a href="#description">Options</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#show">Checking Options</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#install">Installation</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="#copyright">Copyright</a>\r
+<font color="#ff0000">\r
+<b> &#183; </b></font><a href="ijbfaq.html#top_of_page">(FAQ)</a>\r
+</p>\r
+</font><br>\r
+<center>\r
+<h2><a name="man"><font face="arial, helvetica">\r
+Manual Page\r
+</font></a>\r
+</h2>\r
+</center>\r
+<br>A copy of this page\r
+in standard\r
+<big><kbd>man</kbd></big>\r
+macro format\r
+is included in the\r
+<a href="ijbfaq.html#tar">tar archive</a>.\r
+\r
+<h3><a name="name" href="/cgi-bin/gp?pg=ijbman&pr=name"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Name\r
+</h3>\r
+<p>\r
+<b><kbd>junkbuster</kbd></b>\r
+- The\r
+Internet Junkbuster\r
+Proxy\r
+<a href="legal.html#marks"><small><sup>TM</sup></small></a>\r
+</p>\r
+\r
+<h3><a name="synopsis" href="/cgi-bin/gp?pg=ijbman&pr=synopsis"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Synopsis\r
+</h3>\r
+<p>\r
+<b><kbd>junkbuster</kbd></b>\r
+<i>configfile</i>\r
+(Version 2.0 onwards)\r
+<br>\r
+<b><kbd>junkbstr.exe</kbd></b>\r
+<i>configfile</i>\r
+(Windows)\r
+<br>\r
+<b><kbd>junkbuster</kbd></b>\r
+<a href="#o_a">[-a]</a>\r
+<a href="#o_y">[-y]</a>\r
+<a href="#o_s">[-s]</a>\r
+<a href="#o_c">[-c]</a>\r
+<a href="#o_v">[-v]</a>\r
+<br>\r
+<a href="#o_u">[-u user_agent]</a>\r
+<a href="#o_r">[-r referer]</a>\r
+<a href="#o_t">[-t from]</a>\r
+<br>\r
+<a href="#o_b">[-b blockfile]</a>\r
+<a href="#o_j">[-j jarfile]</a>\r
+<a href="#o_l">[-l logfile]</a>\r
+<br>\r
+<a href="#o_w">[-w NAME=VALUE]</a>\r
+<a href="#o_x">[-x Header_text]</a>\r
+<br>\r
+<a href="#o_h">[-h [bind_host_address][:bind_port]]</a>\r
+<br>\r
+<a href="#o_f">[-f forward_host[:port]]</a>\r
+<a href="#o_d">[-d N]</a>\r
+<br>\r
+<a href="#o_g">[-g gw_protocol[:[gw_host][:gw_port]]]</a>\r
+<br>\r
+(Version 1.4 and earlier)\r
+</p>\r
+\r
+<h3><a name="description" href="/cgi-bin/gp?pg=ijbman&pr=description"><img border=0 width=14 height=14 src="/images/fb.gif" alt="&lt;Feedback&gt"></a>&#160;\r
+Description\r
+</h3>\r
+<p>\r
+<b><kbd>junkbuster</kbd></b>\r
+is an instrumentable proxy that filters the \r
+<small>HTTP</small>\r
+stream between\r
+web servers and browsers.\r
+Its main purpose is to enhance privacy.\r
+<p>\r
+<a name="dual">Versions before 2.0 used command-line options;</a>\r
+Versions from 2.0 onward use a configuration file.\r
+The following descriptions of the options first give the older\r
+command-line usage, then the new configfile line.\r
+<p>\r
+<a name="won">In Versions 2.0.1 upwards on Windows,</a>\r
+a start-up message is printed and the configuration is read from the file\r
+<big><kbd>junkbstr.ini</kbd></big>\r
+if it exists and no argument was given.\r
+<p>\r
+<a name="reread">All files except the configfile</a>\r