Compare commits
No commits in common. "master" and "0.2.3.17-beta-1.0.9-RC2" have entirely different histories.
master
...
0.2.3.17-b
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||
<classpathentry kind="lib" path="libs/jtorctl.jar"/>
|
||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
|
@ -1,68 +0,0 @@
|
|||
# auto-generated files from Android builds
|
||||
build.xml
|
||||
ant.properties
|
||||
default.properties
|
||||
proguard.cfg
|
||||
proguard-project.txt
|
||||
#
|
||||
releases
|
||||
docs
|
||||
doc
|
||||
.directory
|
||||
|
||||
#built application files
|
||||
*.apk
|
||||
*.ap_
|
||||
|
||||
# files for the dex VM
|
||||
*.dex
|
||||
|
||||
# Java class files
|
||||
*.class
|
||||
|
||||
# subdirs for generated files
|
||||
bin/
|
||||
gen/
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
|
||||
# Windows thumbnail db
|
||||
Thumbs.db
|
||||
|
||||
# OSX files
|
||||
.DS_Store
|
||||
|
||||
# Android Studio
|
||||
*.iml
|
||||
.idea/
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
#tfx
|
||||
.transifexrc
|
||||
|
||||
/external/appcompat/bin/
|
||||
/external/appcompat/gen/
|
||||
/external/bin/
|
||||
/external/include/
|
||||
/external/*-build-stamp
|
||||
/external/lib/
|
||||
/external/privoxy/
|
||||
/external/test.c
|
||||
/external/test.h.gch
|
||||
/external/translation/
|
||||
bin
|
||||
gen
|
||||
native
|
||||
libs/jtorctl.jar
|
||||
local.properties
|
||||
builds
|
||||
external/patches/*
|
||||
obj
|
||||
|
||||
|
||||
app/src/main/jniLibs/
|
||||
app/src/main/libs/
|
||||
orbotservice/src/main/libs/
|
||||
orbotservice/src/main/jniLibs/
|
|
@ -1,20 +1,18 @@
|
|||
[submodule "external/openssl-static"]
|
||||
path = external/openssl-static
|
||||
url = git://github.com/guardianproject/android-external-openssl-ndk-static.git
|
||||
[submodule "external/tor"]
|
||||
path = external/tor
|
||||
url = https://git.torproject.org/git/tor.git
|
||||
ignore = dirty
|
||||
url = git://git.torproject.org/git/tor.git
|
||||
[submodule "external/libevent"]
|
||||
path = external/libevent
|
||||
url = https://github.com/libevent/libevent.git
|
||||
ignore = dirty
|
||||
[submodule "external/openssl"]
|
||||
path = external/openssl
|
||||
url = https://github.com/openssl/openssl.git
|
||||
ignore = dirty
|
||||
[submodule "external/zstd"]
|
||||
path = external/zstd
|
||||
url = https://github.com/facebook/zstd.git
|
||||
ignore = dirty
|
||||
[submodule "external/xz"]
|
||||
path = external/xz
|
||||
url = https://git.tukaani.org/xz.git
|
||||
ignore = dirty
|
||||
url = git://github.com/libevent/libevent.git
|
||||
[submodule "external/jtorctrl"]
|
||||
path = external/jtorctrl
|
||||
url = git://git.torproject.org/git/jtorctl
|
||||
[submodule "external/jtorctl"]
|
||||
path = external/jtorctl
|
||||
url = git://git.torproject.org/git/jtorctl
|
||||
[submodule "external/obfsproxy"]
|
||||
path = external/obfsproxy
|
||||
url = git://git.torproject.org/obfsproxy.git
|
||||
|
|
40
.project
40
.project
|
@ -5,16 +5,6 @@
|
|||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
<dictionary>
|
||||
<key>LaunchConfigHandle</key>
|
||||
<value><project>/.externalToolBuilders/org.eclipse.cdt.managedbuilder.core.genmakebuilder.launch</value>
|
||||
</dictionary>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||
<arguments>
|
||||
|
@ -40,40 +30,10 @@
|
|||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1451443416388</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-external</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1451443416398</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-jni</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||
<attributes>
|
||||
<attribute name="hide" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||
<classpathentry kind="output" path=""/>
|
||||
</classpath>
|
|
@ -0,0 +1 @@
|
|||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -0,0 +1 @@
|
|||
Window
|
6
AUTHORS
6
AUTHORS
|
@ -35,10 +35,4 @@ __sporkbomb <manuel@acanthephyra.net> implemented an updated set of logic
|
|||
in TorTransProxy for handling the "transproxy all" mode of operation. Before
|
||||
certain system processes were leaking traffic, and this was also detected
|
||||
by his excellent auditing.
|
||||
|
||||
Amogh Pradeep <amoghbl1@gmail.com> submitted a patch to address an issue
|
||||
with the ongoing data transfer notification dying now and then, and is
|
||||
working on improving the notification display in general
|
||||
|
||||
We found a nice new power button vector set here under the CC license:
|
||||
http://vector4free.com/vector/free-vector-power-buttons/
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.torproject.android"
|
||||
android:versionName="0.2.3.17-beta-1.0.9-RC1"
|
||||
android:versionCode="39"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
|
||||
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15"/>
|
||||
<application android:name=".OrbotApp" android:icon="@drawable/icon"
|
||||
android:label="@string/app_name"
|
||||
android:configChanges="locale|orientation">
|
||||
|
||||
<activity android:name=".Orbot">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="bridge" />
|
||||
<data android:scheme="bridge+obfs" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<action android:name="org.torproject.android.REQUEST_HS_PORT" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<action android:name="org.torproject.android.START_TOR" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".wizard.LotsaText"/>
|
||||
<activity android:name=".wizard.Permissions"/>
|
||||
<activity android:name=".wizard.TipsAndTricks"/>
|
||||
<activity android:name=".wizard.ConfigureTransProxy"/>
|
||||
<activity android:name=".wizard.ChooseLocaleWizardActivity"/>
|
||||
|
||||
<activity android:name=".settings.SettingsPreferences" android:label="@string/app_name"/>
|
||||
<activity android:name=".settings.AppManager" android:label="@string/app_name"/>
|
||||
|
||||
<service android:enabled="true"
|
||||
android:name=".service.TorService"
|
||||
android:exported="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="org.torproject.android.service.ITorService" />
|
||||
<action android:name="org.torproject.android.service.TOR_SERVICE" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
|
||||
<receiver android:name=".OnBootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
<category android:name="android.intent.category.HOME" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
|
||||
|
||||
</manifest>
|
70
BUILD
70
BUILD
|
@ -1,6 +1,5 @@
|
|||
|
||||
This document explains how to properly build an Android package of Orbot from
|
||||
source.
|
||||
This document explains how to properly build an Android package of Orbot from source.
|
||||
|
||||
Orbot includes, in the external directory, git repo submodules of:
|
||||
- Tor
|
||||
|
@ -8,38 +7,71 @@ Orbot includes, in the external directory, git repo submodules of:
|
|||
- LibEvent
|
||||
- JTorControl: The Tor Control Library for Java
|
||||
|
||||
The Orbot repo also includes the Privoxy source code of a recent stable release.
|
||||
|
||||
Please install the following prerequisites (instructions for each follows):
|
||||
ant: http://ant.apache.org/
|
||||
Android Native Dev Kit or NDK (for C/C++ code):
|
||||
http://developer.android.com/sdk/ndk/index.html
|
||||
Android Software Dev Kit or SDK (for Java code):
|
||||
http://developer.android.com/sdk/index.html
|
||||
AutoMake and AutoConf tool
|
||||
sudo apt-get install autotools-dev
|
||||
sudo apt-get install automake
|
||||
sudo apt-get install autogen autoconf libtool gettext-base autopoint
|
||||
Android Native Dev Kit or NDK (for C/C++ code): http://developer.android.com/sdk/ndk/index.html
|
||||
Android Software Dev Kit or SDK (for Java code): http://developer.android.com/sdk/index.html
|
||||
|
||||
You will need to run the 'android' command in the SDK to install the necessary
|
||||
Android platform supports (ICS 4.x or android-15)
|
||||
You will need to run the 'android' command in the SDK to install the necessary Android platform supports (ICS 4.x or android-15)
|
||||
|
||||
Be sure that you have all of the git submodules up-to-date:
|
||||
To begin building, from the Orbot root directory, you first need to build all external C/native dependencies:
|
||||
|
||||
./tor-droid-make.sh fetch
|
||||
export NDK_BASE={PATH TO YOUR NDK INSTALL}
|
||||
make -C external
|
||||
|
||||
To begin building, from the Orbot root directory, it builds all submodules and
|
||||
the project.
|
||||
At this point, you'll have Tor and Privoxy binaries that can be run on an Android handset.
|
||||
You can verify the ARM binary was properly built using the following command:
|
||||
|
||||
./tor-droid-make.sh build
|
||||
file res/raw/tor
|
||||
file res/raw/privoxy
|
||||
|
||||
You should see something like:
|
||||
src/or/tor: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
|
||||
|
||||
This isn't enough though and we'll now sew up the binary into a small package
|
||||
that will handle basic Tor controlling features.
|
||||
|
||||
android update project --name Orbot --target android-15 --path .
|
||||
|
||||
#Now you need to split and copy the tor binary into res/raw. We split it into < 1M chunks
|
||||
#because some Android devices don't like resources larger than 1M.
|
||||
#split --bytes=1m $DROID_ROOT/external/tor/tor/src/or/tor res/raw/tor
|
||||
|
||||
Now build the Android app
|
||||
|
||||
(gradle / android studio instructions here)
|
||||
ant release
|
||||
|
||||
This will produce an unsigned Tor package APK.
|
||||
This will produce an unsigned Tor package in ./bin/Orbot-unsigned.apk!
|
||||
|
||||
To produce a usable package, you'll need to sign the .apk. The basics on
|
||||
signing can be found on the Android developer site:
|
||||
|
||||
http://developer.android.com/guide/publishing/app-signing.html
|
||||
|
||||
The three steps are quite simple. First, you'll generate a key. Secondly,
|
||||
you'll sign the application. Thirdly, you'll verify the the apk.
|
||||
|
||||
Generating a signing key:
|
||||
|
||||
keytool -genkey -v -keystore my-release-key.keystore \
|
||||
-alias orbots_key -keyalg RSA -validity 10000
|
||||
|
||||
Sign the apk:
|
||||
|
||||
jarsigner -verbose -keystore my-release-key.keystore \
|
||||
bin/Orbot-unsigned.apk orbots_key
|
||||
|
||||
Verify the signature for the apk:
|
||||
|
||||
jarsigner -verify bin/Orbot-unsigned.apk
|
||||
mv bin/Orbot-unsigned.apk bin/Orbot-signed-alpha.apk
|
||||
|
||||
You can also GPG sign the apk and generate an .asc:
|
||||
|
||||
gpg -ab Orbot-signed-alpha.apk
|
||||
|
||||
Now you should have a fully signed and production ready alpha release of Orbot!
|
||||
Give bin/Orbot-signed-alpha.apk an install and send us bug reports!
|
||||
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
NOTE: Specific #s below correspond to Trac tickets logged and maintained at https://trac.torproject.org/projects/tor/
|
||||
|
||||
1.0.8 (includes 1.0.7.3 and 1.0.7.2)
|
||||
- new external/Makefile and git submodules
|
||||
- fixed tor control port cookie file path lookup related to #5305
|
||||
- updated strings
|
||||
- adding in manual locale selection
|
||||
- added obfsproxy binary to res/raw and binary installation process
|
||||
- added new preferences to support obfsproxy bridge configuration
|
||||
- upgraded tor binary to 0.2.3.11-alpha
|
||||
|
||||
1.0.7
|
||||
- reduced data folder size by making geoip file only installed on demand
|
||||
- added options for turning of persistent notification
|
||||
- enabled access to localhost ports for SOCKS, HTTP, etc even when transproxy is on
|
||||
- improved handling of tor and privoxy binary upgrades
|
||||
- updated openssl to 1.0.0f to address recent SSLv3 threat
|
||||
- check for root mode uses "which su" command and does not look for Superuser.apk
|
||||
- changed tor binary res/raw storage mechanism to use the "mp3" file ext trick
|
||||
|
||||
1.0.6.1
|
||||
- small fixes to wizard UI
|
||||
- fixed "exit" problem, after running wizard
|
||||
|
||||
1.0.6
|
||||
- updated tablet layout graphic sizing
|
||||
- stopped Orweb from being transparent proxied (not needed)
|
||||
- updated to Tor 0.2.3.7-alpha binary
|
||||
- geoip database now included for exit/entrace node control
|
||||
- stopped iptables rule purging if transproxy is not enabled (conflicted with DroidWall and others)
|
||||
|
||||
1.0.5.3
|
||||
- added auto-tor of wireless and usb tethering
|
||||
- integrated new setup wizard
|
||||
- moved large tor binary into split multiple 1M segments to fix for devices with 1M resource limit
|
||||
|
||||
1.0.5.1/.2
|
||||
- small updates to layout of main screen to fit smaller screens
|
||||
- fixed preference setting of EntryNode torrc value
|
||||
|
||||
1.0.5
|
||||
- added exit node and "StrictExitNode" preference
|
||||
- fixed tor binary installation issue related to max resource size and compression
|
||||
- updated "start on boot" code to test for proper launch event
|
||||
- updated to Tor 0.2.2.25-alpha binary
|
||||
- moved back to single notification bar id to avoid double entries
|
||||
- cleaned up progress dialog and alert handling to avoid leaky windows
|
||||
- Merged __sporkbomb's patch for how transproxy all works; now does "everything but Tor"
|
||||
- Added new toolbar notifications and alerts for displaying notifications and Tor messages
|
||||
- Removed unused Socks client code from android.net package
|
||||
- Updated wizard to show link to Gibberbot (formerly OTRchat) chat app
|
||||
- Bundled iptables 1.4.7 for ARM instead of relying on installed version
|
||||
- Fixed various issues related to iptables, transproxying for CyanogenMod7/Android 2.3.*
|
||||
- Changed how settings changed are processed through the control port (batched instead of one by one)
|
||||
- Stopped app by app flushing of iptables rules, in favor of complete flush of 'nat' and 'filter' type
|
||||
- removed useless log screen (logs can be viewed/retrieved using 'alogcat' 3rd party app)
|
||||
|
||||
1.0.4
|
||||
- Added Russian, Persian, Arabic and other .po translations (see res/values-* folders)
|
||||
- Fixed incorrect try to clear iptables rules for non-root devices
|
||||
- Fixed bug that stopped wizard helper from showing first time
|
||||
- Added new green notification icon when Tor is connected
|
||||
- Fixed app selector layout in settings
|
||||
- Moved minSDK to 4 (Android 1.6); discontinued 1.5 support
|
||||
- Fixed log screen touch disable tor bug
|
||||
- Debugged issues around network status change causing FC/crash
|
||||
- Added "Start on Boot" option
|
||||
|
||||
1.0.3
|
||||
- Fixed spanish language issues with settings screen
|
||||
- Cleaned up logging, and moved most of it to debug output only
|
||||
- Small changes to iptables, transproxy settings to handle iptables 1.3 and 1.4 variations
|
||||
- Added compile time variable/flag for turning on/off detailed control port output to Android stdout
|
||||
- Hidden services now support through option in settings
|
||||
- removed double apostrophes from value/strings.xml files
|
||||
|
||||
1.0.2
|
||||
- Added "check" yes/no dialog prompt
|
||||
- Debugged iptables/transprox settings on Android 1.6 and 2.2
|
||||
- Added proxy settings help screen and fixed processSettings() NPE
|
||||
|
||||
1.0.1
|
||||
- Found and fixed major bug in per-app trans proxying; list of apps was being cached and iptables rules were not properly updated as the user changed the selection in the list
|
||||
|
||||
1.0.0 - 2010-08-10
|
||||
- Added "Proxy Settings" help screen
|
||||
- Handle potential null pointers on process settings where service not yet active
|
||||
|
||||
0.0.9x - 2010-08-03
|
||||
- Revised Orbot install wizard
|
||||
- Integrated Tor 0.2.2.14 and iptables 4.x binary
|
||||
- Fixed "got root" detection method
|
||||
- Fixed Per App Torification handling so it updates on exit from Settings screen
|
||||
|
||||
0.0.8x - 2010-07-15
|
||||
- Updated Settings & App configuration screens
|
||||
- Changed progress dialog display
|
||||
- Significant application re-arch
|
||||
- Fixed force stop crash on install
|
||||
- Integrated Tor 0.2.2.13-alpha-dev binary
|
||||
- Fixed su shell cmd error handling & root perms issue
|
||||
- #1570: Added new setup wizard on install to clarify root / non-root capabilities
|
||||
- #1716: Per-app traffic routing prefs not persisted
|
||||
- #1509: Help window is too big for the screen on android 1.6
|
||||
- #1513: Orbot can't be told to exit <-- added 'Exit' menu option
|
||||
- #1530: Capture sh cmd stout for debugging errors <-- updated debug log screen
|
||||
- #1531: Don't loop ad infinitum in Orbot fails <-- only retries 3 times now
|
||||
- #1272: Orbot should store Tor files in the cache
|
||||
- #1273: Info should mention anonymity problems with ProxySurf
|
||||
|
||||
0.0.5x
|
||||
- #1388: Error parsing PID from output of "ps"
|
||||
- #1277, #1278: Enabling bridges issues
|
||||
- #1279: Misleading message when initialization is finished
|
||||
- #1292: Tor version in About screen is wrong
|
||||
|
||||
0.0.3x - 2010-03-15
|
||||
- Added Start/Stop menu item for non-touch activation
|
||||
- Improved parsing and validation of settings screen
|
||||
- UI now compatible with landscape mode (#1276)
|
||||
- Added relay support for static/publicly accessible IP devices
|
||||
|
||||
0.0.3a - 2010-02-07
|
||||
- Integrated iptables support for transparent proxying of outbound port
|
||||
80 and DNS
|
||||
- Privoxy is now used as HTTP Proxy server (cross-compiled to ARM)
|
||||
- New UI layout and graphics
|
||||
- Android settings screen for generated torrc file
|
||||
- Improved performance and error handling
|
||||
|
||||
0.0.2a - 2009-11-30
|
||||
- Update user interface layout and graphics
|
||||
- Modified service launch, shutdown and handling
|
||||
- Improved event handler on Tor Control port callbacks
|
||||
- Added Help page
|
||||
|
||||
0.0.2 - 2009-11-27
|
||||
- Major improvement to the user interface including relative layout for
|
||||
different screens
|
||||
- New graphics resources
|
||||
- Implemented Tor Control Port using official Java library
|
||||
- Added 'clear' button to the log screen
|
||||
- Added 'save' and editable textbox for the settings screen
|
||||
- Moved screen navigation to a pop-up menu
|
||||
|
||||
0.0.1-alpha - 2009-10-21
|
||||
- First code release
|
||||
- Major Features: Tor binary application is fully operational, UI:
|
||||
Start/Stop Tor, View Message Log, View Settings (torrc)
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
Orbot: Android Onion Routing Robot
|
||||
***********************************************
|
||||
Android is a freely licensed open-source application developed for the
|
||||
Android platform. It acts as a front-end to the Tor binary application,
|
||||
and also provides an HTTP Proxy for connecting web browsers and other
|
||||
HTTP client applications into the Tor SOCKS interface.
|
||||
|
||||
*** PreReqs ***
|
||||
You need the Android Developer SDK to compile and build the APK file:
|
||||
http://developer.android.com/
|
||||
The project files including in this distribution are meant to be used
|
||||
with Eclipse: http://eclipse.org/
|
||||
|
||||
*** How to use ***
|
||||
Currently, Orbot will work with any application that supports using
|
||||
an HTTP or SOCKS Proxy. Once you start Tor using Orbot, you can then
|
||||
point your application to HTTP port 8118 or SOCKS port 9050 on localhost
|
||||
IP 127.0.0.1.
|
||||
|
||||
If you have root access, and a version of Android with iptables that
|
||||
supports the netfilter owner module, then Orbot can setup transparent
|
||||
proxying for any application.
|
||||
|
||||
Finally, Firefox on Android is available, and we have released an
|
||||
add-on named ProxyMob for configuring SOCKS proxy settings for use
|
||||
with the local Tor socks proxy.
|
||||
|
||||
** A Few Notes **
|
||||
|
||||
To ensure you are connected to the Tor network, you should browse to
|
||||
https://check.torproject.org/
|
||||
|
||||
The first time you activate Orbot, it may take a while to connect to
|
||||
Tor. Check the message log to ensure you are "100% Bootstrapped".
|
||||
|
||||
***********************************************
|
||||
|
||||
/* Copyright (c) 2009,2010,2011, Nathan Freitas, The Guardian Project
|
||||
* http://guardianproject.info/ */
|
64
LICENSE
64
LICENSE
|
@ -41,41 +41,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*****
|
||||
|
||||
===============================================================================
|
||||
Orbot includes the Obfs4 pluggable transport:
|
||||
https://gitweb.torproject.org/pluggable-transports/obfs4.git
|
||||
|
||||
Copyright (c) 2014, Yawning Angel <yawning at torproject dot org>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
===============================================================================
|
||||
|
||||
|
||||
*****
|
||||
|
||||
*****
|
||||
Orbot contains a binary distribution of Privoxy (http://www.privoxy.org/)
|
||||
Copyright © 2001-2010 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
||||
|
@ -193,32 +158,3 @@ is explicitely stated in the header of every file.
|
|||
The GPL also contains some obligations. If you distribute netfilter/iptables code
|
||||
in binary form, you have to offer the source code, too.
|
||||
===============================================================================
|
||||
|
||||
===============================================================================
|
||||
Orbot also includes BadVPN tun2socks: https://github.com/ambrop72/badvpn
|
||||
|
||||
Copyright (c) 2009, Ambroz Bizjak <ambrop7@gmail.com>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
===============================================================================
|
||||
|
|
33
README
33
README
|
@ -1,28 +1,15 @@
|
|||
|
||||
Tor Android
|
||||
Orbot: Android Onion Routing Robot
|
||||
***********************************************
|
||||
This is a project forked from Orbot for building the tor binary for Android
|
||||
Orbot is a freely licensed open-source application developed for the
|
||||
Android platform. It acts as a front-end to the Tor binary application,
|
||||
and also provides an HTTP Proxy for connecting web browsers and other
|
||||
HTTP client applications into the Tor SOCKS interface.
|
||||
|
||||
How to Build
|
||||
***********************************************
|
||||
Please see: https://raw.githubusercontent.com/n8fr8/tor-android/master/BUILD
|
||||
|
||||
How to Use via Gradle
|
||||
***********************************************
|
||||
|
||||
Add the repository your list as shown:
|
||||
|
||||
repositories {
|
||||
maven { url "https://raw.githubusercontent.com/guardianproject/gpmaven/master" }
|
||||
}
|
||||
|
||||
and then add the dependency, setting it to the latest version (or any version) we have made available, as a release:
|
||||
|
||||
dependencies {
|
||||
compile 'org.torproject:tor-android-binary:0.3.1.9'
|
||||
}
|
||||
|
||||
|
||||
Orbot is a component of the Guardian Project, an effort to develop
|
||||
a secure, anonymous smartphone for use by human rights activists, journalists
|
||||
and others around the world. Learn more: https://guardianproject.info/
|
||||
|
||||
***********************************************
|
||||
Tor protects your privacy on the internet by hiding the connection
|
||||
|
@ -34,3 +21,7 @@ Tor Frequently Asked Questions:
|
|||
https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ
|
||||
https://www.torproject.org/faq.html.en
|
||||
|
||||
***********************************************
|
||||
|
||||
/* Copyright (c) 2009-2012, Nathan Freitas, The Guardian Project
|
||||
* https://guardianproject.info/ */
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<!-- Proguard Properties -->
|
||||
<property name="obfuscate.dir" value="obf" />
|
||||
<property name="obfuscate.absolute.dir" location="${obfuscate.dir}" />
|
||||
<property name="android-jar-preobfuscate" value="${obfuscate.absolute.dir}/original.jar" />
|
||||
<property name="android-jar-postobfuscate" value="${obfuscate.absolute.dir}/postobf.jar" />
|
||||
<property name="out.dex.input.absolute.dir" value="${android-jar-postobfuscate}" />
|
||||
|
||||
<!-- replaces the post-compile step from ant_rules_r3 -->
|
||||
<target name="-post-compile" depends="-dex-obfuscate,-dex-no-obfuscate">
|
||||
</target>
|
||||
|
||||
<target name="-dex-no-obfuscate" unless="build.mode.release">
|
||||
<mkdir dir="${obfuscate.absolute.dir}" />
|
||||
<jar basedir="${out.dir}/classes" destfile="${android-jar-postobfuscate}" />
|
||||
</target>
|
||||
|
||||
<!-- Converts this project's .class files into .dex files -->
|
||||
<target name="-dex-obfuscate" if="build.mode.release">
|
||||
<property name="proguard-jar" value="${proguard.dir}/proguard.jar" />
|
||||
<property name="proguard-conf.dir" value="" />
|
||||
<property name="proguard-conf.absolute.dir" location="${proguard-conf.dir}" />
|
||||
<property name="proguard-conf" value="${proguard-conf.absolute.dir}/procfg.txt" />
|
||||
<path id="fullclasspath">
|
||||
<path refid="android.target.classpath"/>
|
||||
<pathelement path="${external.libs.dir}"/>
|
||||
</path>
|
||||
<property name="libraryjarpath" refid="fullclasspath"/>
|
||||
<!-- Add Proguard Task -->
|
||||
<taskdef resource="proguard/ant/task.properties" classpath="${proguard-jar}" />
|
||||
|
||||
<mkdir dir="${obfuscate.absolute.dir}" />
|
||||
<delete file="${android-jar-preobfuscate}"/>
|
||||
<delete file="${android-jar-postobfuscate}"/>
|
||||
<jar basedir="${out.classes.dir}" destfile="${android-jar-preobfuscate}" />
|
||||
<proguard>
|
||||
@${proguard-conf}
|
||||
-injars ${android-jar-preobfuscate}
|
||||
-outjars ${android-jar-postobfuscate}
|
||||
-libraryjars ${libraryjarpath}
|
||||
-dump ${obfuscate.absolute.dir}/dump.txt
|
||||
-printseeds ${obfuscate.absolute.dir}/seeds.txt
|
||||
-printusage ${obfuscate.absolute.dir}/usage.txt
|
||||
-printmapping ${obfuscate.absolute.dir}/mapping.txt
|
||||
</proguard>
|
||||
</target>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Manifest-Version: 1.0
|
||||
Sealed: true
|
||||
|
17
build.gradle
17
build.gradle
|
@ -1,17 +0,0 @@
|
|||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.0'
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="Orbot" default="help">
|
||||
|
||||
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||
It contains the path to the SDK. It should *NOT* be checked into
|
||||
Version Control Systems. -->
|
||||
<property file="local.properties" />
|
||||
|
||||
<!-- The ant.properties file can be created by you. It is only edited by the
|
||||
'android' tool to add properties to it.
|
||||
This is the place to change some Ant specific build properties.
|
||||
Here are some properties you may want to change/update:
|
||||
|
||||
source.dir
|
||||
The name of the source directory. Default is 'src'.
|
||||
out.dir
|
||||
The name of the output directory. Default is 'bin'.
|
||||
|
||||
For other overridable properties, look at the beginning of the rules
|
||||
files in the SDK, at tools/ant/build.xml
|
||||
|
||||
Properties related to the SDK location or the project target should
|
||||
be updated using the 'android' tool with the 'update' action.
|
||||
|
||||
This file is an integral part of the build system for your
|
||||
application and should be checked into Version Control Systems.
|
||||
|
||||
-->
|
||||
<property file="ant.properties" />
|
||||
|
||||
<!-- The project.properties file is created and updated by the 'android'
|
||||
tool, as well as ADT.
|
||||
|
||||
This contains project specific properties such as project target, and library
|
||||
dependencies. Lower level build properties are stored in ant.properties
|
||||
(or in .classpath for Eclipse projects).
|
||||
|
||||
This file is an integral part of the build system for your
|
||||
application and should be checked into Version Control Systems. -->
|
||||
<loadproperties srcFile="project.properties" />
|
||||
|
||||
<!-- quick check on sdk.dir -->
|
||||
<fail
|
||||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
|
||||
unless="sdk.dir"
|
||||
/>
|
||||
|
||||
<!--
|
||||
Import per project custom build rules if present at the root of the project.
|
||||
This is the place to put custom intermediary targets such as:
|
||||
-pre-build
|
||||
-pre-compile
|
||||
-post-compile (This is typically used for code obfuscation.
|
||||
Compiled code location: ${out.classes.absolute.dir}
|
||||
If this is not done in place, override ${out.dex.input.absolute.dir})
|
||||
-post-package
|
||||
-post-build
|
||||
-pre-clean
|
||||
-->
|
||||
<import file="custom_rules.xml" optional="true" />
|
||||
|
||||
<!-- Import the actual build file.
|
||||
|
||||
To customize existing targets, there are two options:
|
||||
- Customize only one target:
|
||||
- copy/paste the target into this file, *before* the
|
||||
<import> task.
|
||||
- customize it to your needs.
|
||||
- Customize the whole content of build.xml
|
||||
- copy/paste the content of the rules files (minus the top node)
|
||||
into this file, replacing the <import> task.
|
||||
- customize to your needs.
|
||||
|
||||
***********************
|
||||
****** IMPORTANT ******
|
||||
***********************
|
||||
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
|
||||
in order to avoid having your file be overridden by tools such as "android update project"
|
||||
-->
|
||||
<!-- version-tag: 1 -->
|
||||
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||
|
||||
</project>
|
|
@ -0,0 +1,45 @@
|
|||
GSoC Plan
|
||||
=========
|
||||
|
||||
A tl;dr version
|
||||
---------------
|
||||
I will be improving the Orbot UI/UX, and adding several features such as data statistics and also
|
||||
implementing the TorCheck API. I plan on extending the ORLib library and also creating an ORLib enabled
|
||||
app as a sort of primer for other third party apps to follow
|
||||
|
||||
The full version
|
||||
----------------
|
||||
|
||||
Orbot UI/UX
|
||||
===========
|
||||
At the moment, the Orbot UI/UX is clustered and not very intuitive. I plan on improving the existing
|
||||
elements of the UI and also add a variety of new features such as
|
||||
|
||||
* A new Set – up Wizard ( which checks for iptables )
|
||||
* Changes to the preferences ( should be made to follow the Android guidelines)
|
||||
|
||||
Orbot Core app work
|
||||
===================
|
||||
At the moment, Orbot displays a successful connection without actually checking the connection. This is a
|
||||
pressing issue, because the user is not notified if the set-up has failed, unless he/she manually checks
|
||||
the torcheck web service. This should be made automatic by making using of the TorCheck API. Also, Orbot
|
||||
should be configured to show more information about the data being transmitted such as -
|
||||
|
||||
* Amount of data transferred
|
||||
* Quality of the connection
|
||||
* Number of circuits connected
|
||||
|
||||
ORLib
|
||||
=====
|
||||
Currently, ORLib is very minimal at the moment, both in term of features and support/documentation. ORLib
|
||||
is very critical to the use of Orbot as it provides transparent proxying on non-rooted devices ( A major
|
||||
chunk of android phones are un-rooted). I intend to -
|
||||
|
||||
* Improve the existing library by adding additional features
|
||||
* Check for existing of Orbot
|
||||
* Check status of connection to Tor
|
||||
* Provide option to start Orbot via intent
|
||||
* Request hidden service by port, and get return hidden service .onion address
|
||||
* Create an ORLib enabled “Twitter, Status.net or other micro blogging Client” – A sort of primer for
|
||||
third-party apps
|
||||
* Improve the documentation
|
|
@ -0,0 +1,90 @@
|
|||
|
||||
.
|
||||
└── org
|
||||
└── torproject
|
||||
└── android
|
||||
├── AppManager.java
|
||||
//this is what helps us track the app-by-app torification
|
||||
//and gets the app name, icon, etc for display - we have some problems here
|
||||
//in normalizing the icon on the list label
|
||||
//some of this code came originally from DroidWall project (yay open source)
|
||||
|
||||
├── boot
|
||||
│ └── OnbootBroadcastReceiver.java
|
||||
//i think this is a dup now and should be removed
|
||||
|
||||
├── HiddenServiceManager.java
|
||||
//empty! but at some point i thought it would be good to aggregate HS functions here
|
||||
|
||||
├── OnBootReceiver.java
|
||||
//this is the class registered in AndroidManifest.xml to handle Onboot events
|
||||
//to start Orbot/Tor when the device boots if the user has elected to do so - what kind of permissions does this require?
|
||||
// <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
// BTW, this shows up as a fairly unintrusive type perm request now in Android / in older versions (1.6 and earlier)
|
||||
// it was reported "as read / monitor phone state" and paranoid Tor-types didn't like the idea of it
|
||||
// in 1.6+ it has a much better UX in terms of having a more granular permisions around boot since it is a very
|
||||
// common request - ah , that's awesome, i think i remember seeing sth of this sorts when i was going through the guardianproject mailing list. iirc this is something ioerror wanted
|
||||
|
||||
|
||||
├── Orbot.java
|
||||
//our wonderful main activity!
|
||||
|
||||
├── ProcessSettingsAsyncTask.java
|
||||
//this was just added in 1.0.5.x, but it was meant to help stop the UI blocking while processing settings and prefs
|
||||
//it uses the AsyncTask feature of Android, which seems to work pretty well
|
||||
//for this type of non-time critical function you just want to happen in the background at some point soon-ish
|
||||
|
||||
├── SettingsPreferences.java
|
||||
// Settings activity that loads the res/xml/preferences.xml resource up
|
||||
// has some custom event handlng, onActivityResult callback result code's as well
|
||||
// basically meant to tell Orbot activity if critical settings have been modified and whether
|
||||
// those new settings should be applied (like iptables/transproxy changes)
|
||||
|
||||
├── TorConstants.java
|
||||
// globals! well, constants! but yeah, just a place to put values we use a lot
|
||||
|
||||
├── TorifiedApp.java
|
||||
// object to store a single app's metadata for display in UI and for transproxy process
|
||||
|
||||
├── Utils.java
|
||||
// random methods that can be useful, a.k.a. another place to put stuff
|
||||
|
||||
├── WizardActivity.java
|
||||
// our original attempt at wizard activity that didn't get far
|
||||
|
||||
└── WizardHelper.java
|
||||
// the helper class that manages the dialog based wizard
|
||||
|
||||
├── service //okay the Service subpackage!
|
||||
|
||||
│ ├── Api.java
|
||||
//this is more code taken from DroidWall, that needs to be cleaned up and paired down to just what we need it for
|
||||
//this is related to 1.0.5.x changes with how we bundle and install our C binaries (tor, privoxy and iptables)
|
||||
|
||||
│ ├── ITorService.aidl
|
||||
// the android remote interface definition file;
|
||||
// this is the remote interface which the Orbot activity gets a reference to
|
||||
// and that in the TorService is instantiated as the "binder"
|
||||
|
||||
│ ├── ITorServiceCallback.aidl
|
||||
// this is the callback interface that the Orbot activity instantiates, and passes
|
||||
// to the ITorService; reverse of ITorService in a sense
|
||||
|
||||
│ ├── TorBinaryInstaller.java
|
||||
// this handles installation of binaries; uses Api.java; // tied into Wizard as well
|
||||
|
||||
│ ├── TorServiceConstants.java
|
||||
// reusable constants for just the Service package
|
||||
|
||||
│ ├── TorService.java
|
||||
// the main might powerful service class; Orbot and TorService are the front and backends of this whole app
|
||||
// should run as a remote service, but the manifest doesn't seem to indicate that at the moment
|
||||
|
||||
│ ├── TorServiceUtils.java
|
||||
//utility methods for the service; specificaly check for root and tools for finding processID of background binaries
|
||||
|
||||
│ └── TorTransProxy.java
|
||||
// all the code for iptables transproxying management
|
||||
|
||||
|
||||
|
|
@ -5,245 +5,116 @@
|
|||
# on Debian or Ubuntu
|
||||
|
||||
### these modify the calling shell
|
||||
# point pkg-config to the .pc files generated from these builds
|
||||
export PKG_CONFIG_PATH=$(LOCAL)/lib/pkgconfig
|
||||
# workaround for cross-compiling bug in autoconf
|
||||
export ac_cv_func_malloc_0_nonnull=yes
|
||||
export ac_cv_func_setpgrp_void=yes
|
||||
|
||||
EXTERNAL_ROOT := $(shell pwd)
|
||||
CWD = $(shell pwd)
|
||||
PROJECT_ROOT = $(CWD)/..
|
||||
EXTERNAL_ROOT = $(CWD)
|
||||
|
||||
DEBUG ?= 0
|
||||
# Android NDK setup:
|
||||
NDK_BASE ?= /usr/local/android-ndk
|
||||
NDK_PLATFORM_LEVEL ?= 8
|
||||
NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-arm
|
||||
NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'`
|
||||
NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86
|
||||
|
||||
# No-op command.
|
||||
NOOP = true
|
||||
# to use the real HOST tag, you need the latest libtool files:
|
||||
# http://stackoverflow.com/questions/4594736/configure-does-not-recognize-androideabi
|
||||
#HOST := arm-none-linux-gnueabi
|
||||
HOST := arm-linux-androideabi
|
||||
|
||||
# Android now has 64-bit and 32-bit versions of the NDK for GNU/Linux. We
|
||||
# assume that the build platform uses the appropriate version, otherwise the
|
||||
# user building this will have to manually set NDK_PROCESSOR or NDK_TOOLCHAIN.
|
||||
CPU := $(shell uname -m)
|
||||
ifeq ($(CPU),x86_64)
|
||||
NDK_PROCESSOR=x86_64
|
||||
else
|
||||
NDK_PROCESSOR=x86
|
||||
endif
|
||||
# install root for built files
|
||||
DESTDIR = $(EXTERNAL_ROOT)
|
||||
# TODO try adding the Android-style /data/app.name here
|
||||
prefix =
|
||||
LOCAL := $(DESTDIR)$(prefix)
|
||||
|
||||
# Android NDK setup
|
||||
ANDROID_NDK_HOME ?= /opt/android-ndk
|
||||
ANDROID_NDK ?= $(ANDROID_NDK_HOME)
|
||||
NDK_PLATFORM_LEVEL ?= 16
|
||||
NDK_TOOLCHAIN_VERSION=4.9
|
||||
APP_ABI ?= armeabi
|
||||
NDK_ABI ?= $(APP_ABI)
|
||||
export PATH := ${PATH}:$(NDK_TOOLCHAIN)/bin:$(LOCAL)/bin
|
||||
|
||||
# PIEFLAGS for SDK 16/Android L must be set to -fPIE -pie, but can override for earlier targets
|
||||
PIEFLAGS ?= -fPIE -pie
|
||||
CC := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT)
|
||||
CXX := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-g++
|
||||
CPP := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-cpp
|
||||
LD := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ld
|
||||
AR := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ar
|
||||
RANLIB := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-ranlib
|
||||
STRIP := $(NDK_TOOLCHAIN)/bin/arm-linux-androideabi-strip \
|
||||
--strip-unneeded -R .note -R .comment
|
||||
|
||||
ifneq ($(filter arm%, $(APP_ABI)),)
|
||||
NDK_ABI := arm
|
||||
endif
|
||||
ifneq ($(filter arm64%, $(APP_ABI)),)
|
||||
NDK_ABI := arm64
|
||||
endif
|
||||
CFLAGS = -DANDROID -I$(LOCAL)/include -I$(NDK_SYSROOT)/usr/include
|
||||
LDFLAGS = -L$(LOCAL)/lib -L$(NDK_SYSROOT)/usr/lib
|
||||
|
||||
NDK_SYSROOT=$(ANDROID_NDK_HOME)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-$(NDK_ABI)
|
||||
NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]')
|
||||
ifneq ($(filter mips%, $(NDK_ABI)),)
|
||||
HOST := $(NDK_ABI)el-linux-android
|
||||
endif
|
||||
ifneq ($(filter arm64, $(NDK_ABI)),)
|
||||
HOST := aarch64-linux-android
|
||||
endif
|
||||
ifneq ($(filter arm, $(NDK_ABI)),)
|
||||
HOST := arm-linux-androideabi
|
||||
endif
|
||||
ifneq ($(filter x86, $(NDK_ABI)),)
|
||||
HOST := i686-linux-android
|
||||
endif
|
||||
ifneq ($(filter x86_64, $(NDK_ABI)),)
|
||||
HOST := x86_64-linux-android
|
||||
endif
|
||||
|
||||
NDK_TOOLCHAIN := $(HOST)-$(NDK_TOOLCHAIN_VERSION)
|
||||
ifneq ($(filter x86%, $(NDK_ABI)),)
|
||||
NDK_TOOLCHAIN := $(NDK_ABI)-$(NDK_TOOLCHAIN_VERSION)
|
||||
endif
|
||||
NDK_TOOLCHAIN_BASE=$(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/prebuilt/$(NDK_UNAME)-$(NDK_PROCESSOR)
|
||||
|
||||
# include Android's build flags
|
||||
TARGET_ARCH_ABI = $(APP_ABI)
|
||||
#include $(ANDROID_NDK_HOME)/toolchains/$(NDK_TOOLCHAIN)/setup.mk
|
||||
|
||||
CC := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-gcc --sysroot=$(NDK_SYSROOT)
|
||||
CXX := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-g++ --sysroot=$(NDK_SYSROOT)
|
||||
CPP := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-cpp --sysroot=$(NDK_SYSROOT)
|
||||
LD := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ld
|
||||
AR := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ar
|
||||
RANLIB := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-ranlib
|
||||
|
||||
ifeq ($(DEBUG), 1)
|
||||
STRIP := $(NOOP)
|
||||
else
|
||||
STRIP := $(NDK_TOOLCHAIN_BASE)/bin/$(HOST)-strip --strip-unneeded -R .note -R .comment --strip-debug
|
||||
endif
|
||||
|
||||
|
||||
CFLAGS = -DANDROID $(TARGET_CFLAGS) $(PIEFLAGS)
|
||||
LDFLAGS = -llog $(TARGET_LDFLAGS) $(PIEFLAGS)
|
||||
|
||||
# change 'release' to 'debug' for unoptimized debug builds
|
||||
ifeq ($(APP_ABI),armeabi-v7a)
|
||||
CFLAGS += $(TARGET_arm_release_CFLAGS)
|
||||
endif
|
||||
ifeq ($(APP_ABI),armeabi)
|
||||
CFLAGS += $(TARGET_thumb_release_CFLAGS)
|
||||
endif
|
||||
|
||||
|
||||
|
||||
.PHONY = clean showsetup \
|
||||
assets assets-clean \
|
||||
openssl-static openssl-static-clean \
|
||||
libevent libevent-clean \
|
||||
lzma lzma-clean \
|
||||
zstd zstd-clean \
|
||||
tor tor-clean
|
||||
# build as small as possible, mostly useful for static binaries
|
||||
CFLAGS += -fdata-sections -ffunction-sections -Os
|
||||
LDFLAGS += -Wl,--gc-sections
|
||||
|
||||
all: assets
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# openssl
|
||||
# openssl-static
|
||||
|
||||
# Disable rc4 cipher for 64-bit archs, to avoid this link error for tor:
|
||||
# external/lib/libcrypto.a(e_rc4_hmac_md5.o):e_rc4_hmac_md5.c:function rc4_hmac_md5_cipher: error: undefined reference to 'rc4_md5_enc'
|
||||
OPENSSL_CONF_FLAG=
|
||||
ifneq ($(findstring 64, $(NDK_ABI)),)
|
||||
OPENSSL_CONF_FLAG+=no-rc4
|
||||
endif
|
||||
openssl-static/obj/local/armeabi/libcrypto.a:
|
||||
cd openssl-static && \
|
||||
ndk-build
|
||||
|
||||
# OpenSSL's 'make depend' fails if _MIPS_SZLONG is not set:
|
||||
ifneq ($(filter mips%, $(NDK_ABI)),)
|
||||
ifneq ($(findstring 64, $(NDK_ABI)),)
|
||||
OPENSSL_CONF_FLAG+=-D_MIPS_SZLONG=64
|
||||
else
|
||||
OPENSSL_CONF_FLAG+=-D_MIPS_SZLONG=32 -D__MIPSEL__
|
||||
endif
|
||||
endif
|
||||
lib/libcrypto.a:
|
||||
cd openssl && \
|
||||
./Configure android -D__ANDROID_API__=$(NDK_PLATFORM_LEVEL) -DL_ENDIAN $(OPENSSL_CONF_FLAG) && \
|
||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr depend && \
|
||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr build_libs
|
||||
openssl-static/obj/local/armeabi/libssl.a:
|
||||
cp config.sub openssl-static
|
||||
cp config.guess openssl-static
|
||||
cd openssl-static && \
|
||||
ndk-build
|
||||
|
||||
lib/libssl.a:
|
||||
cp config.sub openssl
|
||||
cp config.guess openssl
|
||||
cd openssl && \
|
||||
./Configure android -D__ANDROID_API__=$(NDK_PLATFORM_LEVEL) -DL_ENDIAN $(OPENSSL_CONF_FLAG) && \
|
||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr depend && \
|
||||
make CC="$(CC)" ANDROID_DEV=$(NDK_SYSROOT)/usr build_libs
|
||||
openssl-static-build-stamp: openssl-static/obj/local/armeabi/libcrypto.a openssl-static/obj/local/armeabi/libssl.a
|
||||
touch openssl-static-build-stamp
|
||||
|
||||
openssl-build-stamp: lib/libcrypto.a lib/libssl.a
|
||||
touch openssl-build-stamp
|
||||
|
||||
openssl: openssl-build-stamp
|
||||
openssl-static: openssl-static-build-stamp
|
||||
test -d lib || mkdir lib
|
||||
test -d include || mkdir include
|
||||
test -d include/openssl || mkdir include/openssl
|
||||
cp openssl/libcrypto.a lib/libcrypto.a
|
||||
cp openssl/libssl.a lib/libssl.a
|
||||
cp openssl/include/openssl/* include/openssl
|
||||
cp openssl-static/obj/local/armeabi/libcrypto.a lib
|
||||
cp openssl-static/obj/local/armeabi/libssl.a lib
|
||||
cp -R openssl-static/include/openssl include
|
||||
|
||||
openssl-clean:
|
||||
-rm openssl-build-stamp
|
||||
openssl-static-clean:
|
||||
-cd openssl-static && \
|
||||
ndk-build clean
|
||||
-rm openssl-static-build-stamp
|
||||
-rm lib/libcrypto.a
|
||||
-rm lib/libssl.a
|
||||
-cd openssl && \
|
||||
-cd openssl-static && \
|
||||
git clean -fdx
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# libevent
|
||||
|
||||
libevent/Makefile:
|
||||
sed -i 's@\(SUBDIRS = . include\) sample test@\1@' libevent/Makefile.am
|
||||
cp libevent-patch-1 libevent
|
||||
-cd libevent && \
|
||||
patch -N -p1 --reject-file=- < libevent-patch-1
|
||||
##sed -i 's@\(AC_OUTPUT(Makefile include/Makefile\) test/Makefile sample/Makefile)@\1)@' libevent/configure.in
|
||||
cd libevent && ./autogen.sh
|
||||
cp config.sub libevent
|
||||
cp config.guess libevent
|
||||
cd libevent && \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) -I$(EXTERNAL_ROOT)/include" LDFLAGS="$(LDFLAGS)" \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) -I$(EXTERNAL_ROOT)/include" LDFLAGS="$(LDFLAGS)" \
|
||||
./configure \
|
||||
--host=$(HOST) \
|
||||
--disable-shared
|
||||
|
||||
libevent-build-stamp: libevent/Makefile
|
||||
$(MAKE) -C libevent ./include/event2/event-config.h all-am
|
||||
$(MAKE) -C libevent
|
||||
touch libevent-build-stamp
|
||||
|
||||
libevent: openssl libevent-build-stamp
|
||||
libevent: openssl-static libevent-build-stamp
|
||||
test -d lib || mkdir lib
|
||||
test -d include || mkdir include
|
||||
cp libevent/.libs/libevent.a lib
|
||||
cp -R libevent/include/event2 include
|
||||
cp -R libevent/include/* include
|
||||
|
||||
libevent-clean:
|
||||
-rm -f include/event2
|
||||
-rm -f include/*.h
|
||||
-rm -f lib/libevent.a
|
||||
-rm -f libevent-build-stamp
|
||||
-cd libevent && \
|
||||
git clean -fdx
|
||||
#------------------------------------------------------------------------------#
|
||||
# lzma
|
||||
|
||||
xz/Makefile:
|
||||
cd xz && ./autogen.sh
|
||||
cp config.sub xz
|
||||
cp config.guess xz
|
||||
cd xz && \
|
||||
CC="$(CC)" CXX="$(CXX)" PKG_CONFIG_PATH="$(EXTERNAL_ROOT)/lib/pkgconfig" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS) -std=c99" LDFLAGS="$(LDFLAGS)" \
|
||||
./configure --host=$(HOST) --disable-shared --enable-static --disable-doc --disable-xz --disable-xzdec --disable-lzmadec --disable-lzmainfo --disable-lzma-links --disable-scripts --prefix=$(EXTERNAL_ROOT)
|
||||
|
||||
lzma: lzma-build-stamp
|
||||
$(MAKE) -C xz install
|
||||
|
||||
lzma-build-stamp: xz/Makefile
|
||||
touch lzma-build-stamp
|
||||
|
||||
lzma-clean:
|
||||
-rm -rf include/lzma
|
||||
-rm -f include/lzma.h
|
||||
-rm -f lib/liblzma.a
|
||||
-rm -f lib/liblzma.la
|
||||
-rm -f lzma-build-stamp
|
||||
-cd xz && \
|
||||
git clean -fdx
|
||||
#------------------------------------------------------------------------------#
|
||||
# zstd
|
||||
|
||||
zstd: zstd-build-stamp
|
||||
$(MAKE) -C zstd/lib CC="$(CC)" CXX="$(CXX)" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" PREFIX="$(EXTERNAL_ROOT)" libzstd.a-mt
|
||||
$(MAKE) -C zstd/lib CC="$(CC)" CXX="$(CXX)" AR="$(AR)" RANLIB="$(RANLIB)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" PREFIX="$(EXTERNAL_ROOT)" libzstd.pc
|
||||
test -d lib || mkdir lib
|
||||
test -d lib/pkgconfig || mkdir lib/pkgconfig
|
||||
test -d include || mkdir include
|
||||
cp zstd/lib/libzstd.a lib
|
||||
cp zstd/lib/libzstd.pc lib/pkgconfig
|
||||
cp zstd/lib/zstd.h include
|
||||
cp zstd/lib/common/zstd_errors.h include
|
||||
cp zstd/lib/deprecated/zbuff.h include
|
||||
cp zstd/lib/dictBuilder/zdict.h include
|
||||
|
||||
zstd-build-stamp:
|
||||
touch zstd-build-stamp
|
||||
|
||||
zstd-clean:
|
||||
-rm -f include/zstd.h include/zstd_errors.h include/zbuff.h include/zdict.h
|
||||
-rm -f lib/libzstd.a
|
||||
-rm -f lib/pkgconfig/libzstd.pc
|
||||
-rm -f zstd-build-stamp
|
||||
-cd zstd && \
|
||||
git clean -fdx
|
||||
#------------------------------------------------------------------------------#
|
||||
# tor
|
||||
|
||||
|
@ -255,20 +126,23 @@ tor/Makefile: tor/configure
|
|||
cp config.sub tor
|
||||
cp config.guess tor
|
||||
cd tor && \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) PKG_CONFIG_PATH="$(EXTERNAL_ROOT)/lib/pkgconfig" CFLAGS="$(CFLAGS) -D_FORTIFY_SOURCE=2 -fwrapv -fno-strict-aliasing -fno-strict-overflow" LDFLAGS="$(LDFLAGS)" \
|
||||
LIBS="-L$(EXTERNAL_ROOT)/lib" CFLAGS="-I$(EXTERNAL_ROOT)/include -I$(EXTERNAL_ROOT)/include/event2" \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
||||
./configure \
|
||||
--host=$(HOST) \
|
||||
--prefix=$(NDK_TOOLCHAIN) \
|
||||
--disable-asciidoc \
|
||||
--enable-static-libevent --with-libevent-dir=$(EXTERNAL_ROOT) \
|
||||
--enable-static-openssl --with-openssl-dir=$(EXTERNAL_ROOT) \
|
||||
--disable-linker-hardening --disable-gcc-hardening --disable-tool-name-check --disable-systemd --disable-module-dirauth
|
||||
--with-libevent-dir=$(EXTERNAL_ROOT) --enable-static-libevent \
|
||||
--with-openssl-dir=$(EXTERNAL_ROOT) --enable-static-openssl \
|
||||
--disable-gcc-hardening
|
||||
|
||||
## --disable-linker-hardening --disable-gcc-hardening
|
||||
|
||||
|
||||
tor-build-stamp: tor/Makefile
|
||||
$(MAKE) -C tor all-am
|
||||
$(MAKE) -C tor
|
||||
touch tor-build-stamp
|
||||
|
||||
tor: lzma zstd libevent openssl tor-build-stamp
|
||||
tor: libevent openssl-static tor-build-stamp
|
||||
test -d bin || mkdir bin
|
||||
cp tor/src/or/tor bin
|
||||
|
||||
|
@ -277,38 +151,119 @@ tor-clean:
|
|||
-rm -f tor-build-stamp
|
||||
-cd tor && \
|
||||
git clean -fdx
|
||||
-cd tor && \
|
||||
git reset HEAD --hard
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
#create and clean assets: FYI - tor is stored as a ZIP file with an so extension
|
||||
#in the libs directly, so it is handled like a shared library for local installation
|
||||
# obfsproxy
|
||||
|
||||
assets: tor
|
||||
install -d ../tor-android-binary/src/main/libs/$(APP_ABI)
|
||||
-$(STRIP) bin/tor
|
||||
-zip ../tor-android-binary/src/main/libs/$(APP_ABI)/tor.so bin/tor
|
||||
|
||||
obfsproxy/Makefile:
|
||||
cp obfsproxy_android_no_hardening.patch obfsproxy
|
||||
cd obfsproxy && \
|
||||
patch -N -p1 --reject-file=- < obfsproxy_android_no_hardening.patch
|
||||
cd obfsproxy && \
|
||||
./autogen.sh
|
||||
cp config.sub obfsproxy
|
||||
cp config.guess obfsproxy
|
||||
cd obfsproxy && \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) -D_FORTIFY_SOURCE=2 -fPIE -fwrapv -fno-strict-aliasing -fno-strict-overflow" LDFLAGS="$(LDFLAGS)" \
|
||||
libevent_LIBS="-L$(EXTERNAL_ROOT)/lib -levent" libevent_CFLAGS="-I$(EXTERNAL_ROOT)/include" \
|
||||
libcrypto_LIBS="-L$(EXTERNAL_ROOT)/lib -lcrypto" libcrypto_CFLAGS="-I$(EXTERNAL_ROOT)/include" \
|
||||
./configure \
|
||||
--host=$(HOST) \
|
||||
--prefix=$(NDK_TOOLCHAIN) \
|
||||
|
||||
obfsproxy-build-stamp: obfsproxy/Makefile
|
||||
$(MAKE) -C obfsproxy
|
||||
touch obfsproxy-build-stamp
|
||||
|
||||
obfsproxy: openssl-static libevent obfsproxy-build-stamp
|
||||
test -d bin || mkdir bin
|
||||
cp obfsproxy/obfsproxy bin
|
||||
|
||||
obfsproxy-clean:
|
||||
-rm -f bin/obfsproxy
|
||||
-rm -f obfsproxy-build-stamp
|
||||
-cd obfsproxy && \
|
||||
git clean -fdx
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# privoxy
|
||||
|
||||
|
||||
privoxy/config.log:
|
||||
cd privoxy && \
|
||||
autoheader
|
||||
cd privoxy && \
|
||||
autoconf
|
||||
cp config.sub privoxy
|
||||
cp config.guess privoxy
|
||||
cd privoxy && \
|
||||
CC="$(CC)" AR="$(AR)" RANLIB=$(RANLIB) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
||||
./configure \
|
||||
--host=arm-linux-eabi --enable-pthread
|
||||
## --disable-pthread
|
||||
|
||||
privoxy-build-stamp: privoxy/config.log
|
||||
$(MAKE) -C privoxy
|
||||
touch privoxy-build-stamp
|
||||
|
||||
privoxy: privoxy-build-stamp
|
||||
test -d bin || mkdir bin
|
||||
cp privoxy/privoxy bin
|
||||
|
||||
privoxy-clean:
|
||||
$(MAKE) -C privoxy clean
|
||||
-rm -f bin/privoxy
|
||||
-rm -f privoxy-build-stamp
|
||||
-rm -f privoxy/config.status
|
||||
-rm -f privoxy/config.log
|
||||
-rm -f privoxy/Makefile
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# JTorControl library
|
||||
|
||||
jtorctl/bin/jtorctl.jar:
|
||||
test -d jtorctl/bin || mkdir jtorctl/bin
|
||||
cd jtorctl && \
|
||||
javac -source 1.6 -target 1.6 net/freehaven/tor/control/TorControlConnection.java -d bin
|
||||
cd jtorctl/bin && \
|
||||
jar cvf jtorctl.jar *
|
||||
|
||||
jtorctl-build-stamp: jtorctl/bin/jtorctl.jar
|
||||
touch jtorctl-build-stamp
|
||||
|
||||
jtorctl: jtorctl-build-stamp
|
||||
test -d bin || mkdir bin
|
||||
cp jtorctl/bin/jtorctl.jar bin
|
||||
|
||||
jtorctl-clean:
|
||||
-rm -rf jtorctl/bin
|
||||
-rm jtorctl-build-stamp
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
#create and clean assets: FYI - tor is stored as a ZIP file with an mp3 extension
|
||||
#in order to stop Android OS (older devices) from trying to compress/decompress it
|
||||
#this is related to a bug in compression of assets and resources > 1MB
|
||||
|
||||
assets: tor privoxy jtorctl obfsproxy
|
||||
install -d ../res/raw
|
||||
install -d ../libs
|
||||
install bin/privoxy ../res/raw
|
||||
install bin/obfsproxy ../res/raw
|
||||
install bin/jtorctl.jar ../libs
|
||||
cd bin && \
|
||||
zip ../../res/raw/tor.mp3 tor
|
||||
|
||||
assets-clean:
|
||||
-rm ../tor-android-binary/src/main/libs/$(APP_ABI)/tor.so
|
||||
-rm ../res/raw/tor
|
||||
-rm ../res/raw/tor.mp3
|
||||
-rm ../res/raw/privoxy
|
||||
-rm ../libs/*
|
||||
-rm ../res/raw/obfsproxy
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# cleanup, cleanup, put the toys away
|
||||
|
||||
##clean: openssl-clean libevent-clean tor-clean polipo-clean assets-clean
|
||||
clean: openssl-clean libevent-clean lzma-clean zstd-clean tor-clean
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# debugging stuff
|
||||
|
||||
showsetup:
|
||||
@echo "NDK_TOOLCHAIN_VERSION: $(NDK_TOOLCHAIN_VERSION)"
|
||||
@echo "NDK_TOOLCHAIN: $(NDK_TOOLCHAIN)"
|
||||
@echo "NDK_PLATFORM_LEVEL: $(NDK_PLATFORM_LEVEL)"
|
||||
@echo "NDK_SYSROOT: $(NDK_SYSROOT)"
|
||||
@echo "APP_ABI: $(APP_ABI)"
|
||||
@echo "HOST: $(HOST)"
|
||||
@echo "CC: $(CC)"
|
||||
@echo "LD: $(LD)"
|
||||
@echo "CFLAGS: $(CFLAGS)"
|
||||
@echo "LDFLAGS: $(LDFLAGS)"
|
||||
clean: openssl-static-clean libevent-clean tor-clean privoxy-clean jtorctl-clean assets-clean
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit d818f4381e164273aadfcbff131da8e1a2cbc1f8
|
|
@ -1 +1 @@
|
|||
Subproject commit 90ae4c5013032158bafad41279823d90eec4d206
|
||||
Subproject commit 6f2337dd0e3ec6aec54a4694f1b59e0262623d8e
|
|
@ -1,29 +0,0 @@
|
|||
For some reason arc4random_addrandom isn't present in 64-bit android archs. !
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d42edd8..c511be7 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -290,7 +290,7 @@ AC_HEADER_TIME
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_CHECK_FUNCS([gettimeofday vasprintf fcntl clock_gettime strtok_r strsep])
|
||||
-AC_CHECK_FUNCS([getnameinfo strlcpy inet_ntop inet_pton signal sigaction strtoll inet_aton pipe eventfd sendfile mmap splice arc4random arc4random_buf issetugid geteuid getegid getprotobynumber setenv unsetenv putenv sysctl])
|
||||
+AC_CHECK_FUNCS([getnameinfo strlcpy inet_ntop inet_pton signal sigaction strtoll inet_aton pipe eventfd sendfile mmap splice arc4random arc4random_buf arc4random_addrandom issetugid geteuid getegid getprotobynumber setenv unsetenv putenv sysctl])
|
||||
AC_CHECK_FUNCS([umask])
|
||||
|
||||
AC_CACHE_CHECK(
|
||||
diff --git a/evutil_rand.c b/evutil_rand.c
|
||||
index 284341c..97161e4 100644
|
||||
--- a/evutil_rand.c
|
||||
+++ b/evutil_rand.c
|
||||
@@ -174,7 +174,9 @@ evutil_secure_rng_get_bytes(void *buf, size_t n)
|
||||
void
|
||||
evutil_secure_rng_add_bytes(const char *buf, size_t n)
|
||||
{
|
||||
+#ifdef _EVENT_HAVE_ARC4RANDOM_ADDRANDOM
|
||||
arc4random_addrandom((unsigned char*)buf,
|
||||
n>(size_t)INT_MAX ? INT_MAX : (int)n);
|
||||
+#endif
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 94ebc4c3edf1e3e5f313444e59981ac557578df5
|
|
@ -0,0 +1,19 @@
|
|||
commit d42eec7683ce9d47fc846e511e815ec1b2950c27
|
||||
Author: n8fr8 <nathan@freitas.net>
|
||||
Date: Fri May 4 17:32:51 2012 -0400
|
||||
|
||||
remove hardening for android
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index facd3c6..ad405ea 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -24,7 +24,7 @@ AC_CHECK_HEADERS([sys/types.h])
|
||||
AC_CHECK_HEADERS([netinet/in.h])
|
||||
|
||||
### Compiler Hardening ###
|
||||
-AX_ENABLE_HARDENING
|
||||
+##AX_ENABLE_HARDENING
|
||||
|
||||
### Libraries ###
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit e71ebf275da66dfd601c92e0e80a35114c32f6f8
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 85061d07ccc04ee40f9cc66cbac86d53196d1f3f
|
|
@ -0,0 +1,116 @@
|
|||
Authors of Privoxy v2.9.x and 3.x
|
||||
===========================================================================
|
||||
|
||||
Current Privoxy Team:
|
||||
|
||||
Fabian Keil, lead developer
|
||||
David Schmidt, developer
|
||||
|
||||
Hal Burgiss
|
||||
Mark Miller
|
||||
Gerry Murphy
|
||||
Lee Rian
|
||||
Roland Rosenfeld
|
||||
Jörg Strohmayer
|
||||
|
||||
Former Privoxy Team Members:
|
||||
|
||||
Johny Agotnes
|
||||
Rodrigo Barbosa
|
||||
Moritz Barsnick
|
||||
Ian Cummings
|
||||
Brian Dessent
|
||||
Jon Foster
|
||||
Karsten Hopp
|
||||
Alexander Lazic
|
||||
Daniel Leite
|
||||
Gábor Lipták
|
||||
Adam Lock
|
||||
Guy Laroche
|
||||
Justin McMurtry
|
||||
Andreas Oesterhelt
|
||||
Haroon Rafique
|
||||
Georg Sauthoff
|
||||
Thomas Steudten
|
||||
Rodney Stromlund
|
||||
Sviatoslav Sviridov
|
||||
Sarantis Paskalis
|
||||
Stefan Waldherr
|
||||
|
||||
Thanks to the many people who have tested Privoxy, reported bugs, provided
|
||||
patches, made suggestions or contributed in some way. These include (in
|
||||
alphabetical order):
|
||||
|
||||
Ken Arromdee
|
||||
Devin Bayer
|
||||
Gergely Bor
|
||||
Reiner Buehl
|
||||
Andrew J. Caines
|
||||
Clifford Caoile
|
||||
Frédéric Crozat
|
||||
Michael T. Davis
|
||||
Mattes Dolak
|
||||
Matthias Drochner
|
||||
Peter E.
|
||||
Florian Effenberger
|
||||
Markus Elfring
|
||||
Dean Gaudet
|
||||
Stephen Gildea
|
||||
Daniel Griscom
|
||||
Felix Gröbert
|
||||
Aaron Hamid
|
||||
Darel Henman
|
||||
Magnus Holmgren
|
||||
Eric M. Hopper
|
||||
Ralf Horstmann
|
||||
Stefan Huehner
|
||||
Peter Hyman
|
||||
Derek Jennings
|
||||
Petr Kadlec
|
||||
David Laight
|
||||
Bert van Leeuwen
|
||||
Don Libes
|
||||
Paul Lieverse
|
||||
Toby Lyward
|
||||
Wil Mahan
|
||||
Jindrich Makovicka
|
||||
David Mediavilla
|
||||
Raphael Moll
|
||||
Amuro Namie
|
||||
Adam Piggott
|
||||
Dan Price
|
||||
Roberto Ragusa
|
||||
Félix Rauch
|
||||
Maynard Riley
|
||||
Chung-chieh Shan
|
||||
Spinor S.
|
||||
Bart Schelstraete
|
||||
Oliver Stoeneberg
|
||||
Peter Thoenen
|
||||
Martin Thomas
|
||||
Bobby G. Vinyard
|
||||
Jochen Voss
|
||||
Glenn Washburn
|
||||
Song Weijia
|
||||
Jörg Weinmann
|
||||
Darren Wiebe
|
||||
Anduin Withers
|
||||
Oliver Yeoh
|
||||
Jamie Zawinski
|
||||
|
||||
Privoxy is based in part on code originally developed by Junkbusters Corp. and
|
||||
Anonymous Coders.
|
||||
|
||||
Privoxy heavily relies on Philip Hazel's PCRE.
|
||||
|
||||
The code to filter compressed content makes use of zlib which is written by
|
||||
Jean-loup Gailly and Mark Adler.
|
||||
|
||||
On systems that lack snprintf(), Privoxy is using a version written by Mark
|
||||
Martinec. On systems that lack strptime(), Privoxy is using the one from the
|
||||
GNU C Library written by Ulrich Drepper.
|
||||
|
||||
If we've missed you off this list, please let us know!
|
||||
|
||||
Privoxy team. http://www.privoxy.org/
|
||||
<ijbswa-developers@lists.sourceforge.net>
|
|
@ -0,0 +1,717 @@
|
|||
--------------------------------------------------------------------
|
||||
ChangeLog for Privoxy
|
||||
--------------------------------------------------------------------
|
||||
*** Version 3.0.12 (UNRELEASED) ***
|
||||
|
||||
- The socket-timeout option now also works on platforms whose
|
||||
select() implementation modifies the timeout structure.
|
||||
Previously the timeout was triggered even if the connection
|
||||
didn't stall. Reported by cyberpatrol.
|
||||
- The Connection: keep-alive code properly deals with files
|
||||
larger than 2GB. Previously the connection was closed too
|
||||
early.
|
||||
- The content length for files above 2GB is logged correctly.
|
||||
- The user-manual directive on the show-status page links to
|
||||
the documentation location specified with the directive,
|
||||
not to the Privoxy website.
|
||||
- When running in daemon mode, Privoxy doesn't log anything
|
||||
to the console unless there are errors before the logfile
|
||||
has been opened.
|
||||
- The show-status page prints warnings about invalid directives
|
||||
on the same line as the directives themselves.
|
||||
- Fixed several justified (but harmless) compiler warnings,
|
||||
mostly on 64 bit platforms.
|
||||
- The mingw32 version explicitly requests the default charset
|
||||
to prevent display problems with some fonts available on more
|
||||
recent Windows versions. Patch by Burberry.
|
||||
- The mingw32 version uses the Privoxy icon in the alt-tab
|
||||
windows. Patch by Burberry.
|
||||
- The timestamp and the thread id is omitted in the "Fatal error"
|
||||
message box on mingw32.
|
||||
- Fixed two related mingw32-only buffer overflows. Triggering
|
||||
them required control over the configuration file, therefore
|
||||
this isn't seen as a security issue.
|
||||
- In verbose mode, or if the new option --show-skipped-tests
|
||||
is used, Privoxy-Regression-Test logs skipped tests and the
|
||||
skip reason.
|
||||
|
||||
*** Version 3.0.11 ***
|
||||
|
||||
- On most platforms, outgoing connections can be kept alive and
|
||||
reused if the server supports it. Whether or not this improves
|
||||
things depends on the connection.
|
||||
- When dropping privileges, membership in supplementary groups
|
||||
is given up as well. Not doing that can lead to Privoxy running
|
||||
with more rights than necessary and violates the principle of
|
||||
least privilege. Users of the --user option are advised to update.
|
||||
Thanks to Matthias Drochner for reporting the problem,
|
||||
providing the initial patch and testing the final version.
|
||||
- Passing invalid users or groups with the --user option
|
||||
didn't lead to program exit. Regression introduced in 3.0.7.
|
||||
- The match all section has been moved from default.action
|
||||
to a new file called match-all.action. As a result the
|
||||
default.action no longer needs to be touched by the user
|
||||
and can be safely overwritten by updates.
|
||||
- The standard.action file has been removed. Its content
|
||||
is now part of the default.action file.
|
||||
- In some situations the logged content length was slightly too low.
|
||||
- Crunched requests are logged with their own log level.
|
||||
If you used "debug 1" in the past, you'll probably want
|
||||
to additionally enable "debug 1024", otherwise only passed
|
||||
requests will be logged. If you only care about crunched
|
||||
requests, simply replace "debug 1" with "debug 1024".
|
||||
- The crunch reason has been moved to the beginning of the
|
||||
crunch message. For HTTP URLs, the protocol is logged as well.
|
||||
- Log messages are shortened by printing the thread id on its
|
||||
own (as opposed to putting it inside the string "Privoxy()").
|
||||
- The config option socket-timeout has been added to control
|
||||
the time Privoxy waits for data to arrive on a socket.
|
||||
- Support for remote toggling is controlled by the configure
|
||||
option --disable-toggle only. In previous versions it also
|
||||
depended on the action editor and thus configuring with the
|
||||
--disable-editor option would disable remote toggling support
|
||||
as well.
|
||||
- Requests with invalid HTTP versions are rejected.
|
||||
- The template symbol @date@ can be used to include a date(1)-like
|
||||
time string. Initial patch submitted by Endre Szabo.
|
||||
- Responses from shoutcast servers are accepted again.
|
||||
Problem reported and fix suggested by Stefan.
|
||||
- The hide-forwarded-for-headers action has been replaced with
|
||||
the change-x-forwarded-for{} action which can also be used to
|
||||
add X-Forwarded-For headers. The latter functionality already
|
||||
existed in Privoxy versions prior to 3.0.7 but has been removed
|
||||
as it was often used unintentionally (by not using the
|
||||
hide-forwarded-for-headers action).
|
||||
- A "clear log" view option was added to the mingw32 version
|
||||
to clear out all of the lines in the Privoxy log window.
|
||||
Based on a patch submitted by T Ford.
|
||||
- The mingw32 version uses "critical sections" now, which prevents
|
||||
log message corruption under load. As a side effect, the
|
||||
"no thread-safe PRNG" warning could be removed as well.
|
||||
- The mingw32 version's task bar icon is crossed out and
|
||||
the color changed to gray if Privoxy is toggled off.
|
||||
|
||||
*** Version 3.0.10 ***
|
||||
|
||||
- Ordinary configuration file changes no longer cause program
|
||||
termination on OS/2 if the name of the logfile hasn't been
|
||||
changed as well. This regression probably crept in with the
|
||||
logging improvements in 3.0.7. Reported by Maynard.
|
||||
- The img-reorder filter is less likely to mess up JavaScript code in
|
||||
img tags. Problem and solution reported by Glenn Washburn in #2014552.
|
||||
- The source tar ball now includes Privoxy-Log-Parser,
|
||||
a syntax-highlighter for Privoxy logs. For fancy screenshots see:
|
||||
http://www.fabiankeil.de/sourcecode/privoxy-log-parser/
|
||||
Documentation is available through perldoc(1).
|
||||
|
||||
*** Version 3.0.9 Beta ***
|
||||
|
||||
- Added SOCKS5 support (with address resolution done by
|
||||
the SOCKS5 server). Patch provided by Eric M. Hopper.
|
||||
- The "blocked" CGI pages include a block reason that was
|
||||
provided as argument to the last-applying block action.
|
||||
- If enable-edit-actions is disabled (the default since 3.0.7 beta)
|
||||
the show-status page hides the edit buttons and explains why.
|
||||
Previously the user would get the "this feature has been disabled"
|
||||
message after using the edit button.
|
||||
- Forbidden CONNECT requests are treated like blocks by default.
|
||||
The now-pointless treat-forbidden-connects-like-blocks action
|
||||
has been removed.
|
||||
- Not enabling limit-connect now allows CONNECT requests to all ports.
|
||||
In previous versions it would only allow CONNECT requests to port 443.
|
||||
Use +limit-connect{443} if you think you need the old default behaviour.
|
||||
- The CGI editor gets turned off after three edit requests with invalid
|
||||
file modification timestamps. This makes life harder for attackers
|
||||
who can leverage browser bugs to send fake Referers and intend to
|
||||
brute-force edit URLs.
|
||||
- Action settings for multiple patterns in the same section are
|
||||
shared in memory. As a result these sections take up less space
|
||||
(and are loaded slightly faster). Problem reported by Franz Schwartau.
|
||||
- Linear white space in HTTP headers will be normalized to single
|
||||
spaces before parsing the header's content, headers split across
|
||||
multiple lines get merged first. This should prevent problems like:
|
||||
* letting the session-cookies-only action slip
|
||||
some Cookies through unmodified,
|
||||
* only suppressing the first line of a header,
|
||||
thus creating an invalid one, and
|
||||
* to incorrectly block headers with valid timestamps
|
||||
that weren't properly recognized.
|
||||
Headers that could trigger these problems are unlikely to appear
|
||||
in "normal" web traffic, but could be intentionally generated to
|
||||
fool some of Privoxy's header parsers.
|
||||
- Host information is gathered outside the main thread so it's less
|
||||
likely to delay other incoming connections if the host is misconfigured.
|
||||
- New config option "hostname" to use a hostname other than
|
||||
the one returned by the operating system. Useful to speed-up responses
|
||||
for CGI requests on misconfigured systems. Requested by Max Khon.
|
||||
- The CGI editor supports the "disable all filters of this type"
|
||||
directives "-client-header-filter", "-server-header-filter",
|
||||
"-client-header-tagger" and "-server-header-tagger".
|
||||
- Fixed false-positives with the link-by-url filter and URLs that
|
||||
contain the pattern "/jump/".
|
||||
- The less-download-windows filter no longer messes
|
||||
"Content-Type: application/x-shockwave-flash" headers up.
|
||||
- In the show-url-info page's "Final results" section active and
|
||||
inactive actions are listed separately. Patch provided by Lee.
|
||||
- The GNUmakefile supports the DESTDIR variable. Patch for
|
||||
the install target submitted by Radoslaw Zielinski.
|
||||
- Embedding the content of configuration files in the show-status
|
||||
page is significantly faster now. For a largish action file (1 MB)
|
||||
a speedup of about 2450 times has been measured. This is mostly
|
||||
interesting if you are using large action files or regularly use
|
||||
Privoxy-Regression-Test while running Privoxy through Valgrind,
|
||||
for stock configuration files it doesn't really matter.
|
||||
- If zlib support is unavailable and there are content
|
||||
filters active but the prevent-compression action is disabled,
|
||||
the show-url-info page includes a warning that compression
|
||||
might prevent filtering.
|
||||
- The show-url-info page provides an OpenSearch Description that
|
||||
allows to access the page through browser search plugins.
|
||||
- Custom client-header filters that rewrite the request line
|
||||
incorrectly no longer cause Privoxy to crash. Reported by din_a4.
|
||||
- The obsolete kill-popups action has been removed as the
|
||||
PCRS-based popup filters can do the same and are slightly
|
||||
less unreliable.
|
||||
- The inspect-jpegs action has been removed.
|
||||
- The send-wafer and send-vanilla-wafer actions have been removed.
|
||||
They weren't particular useful and their behaviour could be emulated
|
||||
with add-header anyway.
|
||||
- Privoxy-Regression-Test has been significantly improved.
|
||||
- Most sections in the default.action file contain tests for
|
||||
Privoxy-Regression-Test to verify that they are working as intended.
|
||||
- Parts of Privoxy have been refactored to increase maintainability.
|
||||
- Building with zlib (if available) is done by default.
|
||||
|
||||
*** Version 3.0.8 ***
|
||||
|
||||
- Fixed a small memory leak when listen-address only specifies the port.
|
||||
- The source tar balls now include Privoxy-Regression-Test which
|
||||
(upon other things) can be used to automatically detect some
|
||||
packaging problems. Packagers are welcome to give it a try.
|
||||
- Reverted a change in 3.0.7 that caused path patterns to be checked
|
||||
even if the host pattern match already failed. While this doesn't
|
||||
noticeable affect the performance, it makes it less likely to run
|
||||
out of stack space with overly-complex path patterns the user might
|
||||
have added.
|
||||
- Updated the msn, yahoo and google filters to work as advertised again.
|
||||
- The warning message shown by the show-status CGI page is easier to
|
||||
understand. Previously it wasn't clear that the error message
|
||||
is shown below the invalid directive. (Reported by Lee)
|
||||
- When regenerating Content-Disposition headers the more common
|
||||
spelling is used for the name. Previously it was written without caps.
|
||||
- Less confusing log message if the content type isn't overwritten
|
||||
because force-text-type wasn't used but the old type doesn't look
|
||||
like content that would be filtered normally.
|
||||
- Better log messages if the user tries to execute filters that
|
||||
don't exist.
|
||||
- Treat the non-standard Request-Range headers like standard range
|
||||
headers and suppress them if content filtering is enabled.
|
||||
- Prevent the log messages for CONNECT requests to unacceptable
|
||||
ports from printing the limit-connect argument as [null] if
|
||||
limit-connect hasn't been explicitly enabled.
|
||||
- Don't disable the mingw32 log window if the logfile directive
|
||||
isn't used. While it was an intentional change in 3.0.7 at least
|
||||
one user perceived it as a regression and the same effect can
|
||||
be achieved by disabling all debug directives.
|
||||
- Fixed two minor problems related to the win32 build process: a css
|
||||
file was not being in the installer and the trustfile comment in the
|
||||
config.txt referenced a nonexisting file
|
||||
- Minor documentation fixes.
|
||||
|
||||
*** Version 3.0.7 Beta ***
|
||||
|
||||
- Added zlib support to filter content with gzip and deflate
|
||||
encoding. (Patch provided by Wil Mahan)
|
||||
- Dedicated filters and actions are used for header filtering.
|
||||
"filter-client-headers" and "filter-client-headers" are no longer
|
||||
supported, use server-header-filter{} and client-header-filter{}
|
||||
instead.
|
||||
- Tags can be used to change actions based on HTTP headers.
|
||||
- New server-header filter: less-download-windows.
|
||||
- New client-header taggers: css-requests, image-requests,
|
||||
client-ip-address, http-method, allow-post, complete-url,
|
||||
user-agent and privoxy-control.
|
||||
- New server-header taggers: content-type and privoxy-control.
|
||||
- The forward-override{} action allows to change the forwarding
|
||||
settings through the action files, for example based on client
|
||||
headers like the User-Agent, or the request origin.
|
||||
- Socks errors are no longer handled by the CGI page for
|
||||
DNS resolution failures.
|
||||
- CGI pages use favicons to signal whether they are error
|
||||
or control pages. This is useful if you rely heavily on
|
||||
browser tabs.
|
||||
- The show-url-info CGI page shows the forwarding settings.
|
||||
- "Crunch!" log messages (used when Privoxy answers requests
|
||||
by itself) now also contain the reason.
|
||||
- Allow to rewrite the request destination behind the client's back.
|
||||
- Fix socks requests on big-endian platforms. Patch provided by Song Weijia.
|
||||
- Fixes possible deadlocks and crashes on OpenBSD.
|
||||
Patch provided by Ralf Horstmann.
|
||||
- The CGI action editor allows to edit actionfiles with previously
|
||||
forbidden characters like dots.
|
||||
- New trust entries are saved with a comment that contains the
|
||||
trusted referring URL (Suggested by Daniel Griscom).
|
||||
- Filter descriptions are HTML encoded automatically.
|
||||
- New config option "split-large-forms" to work
|
||||
around a browser bug that caused IE6 and IE7 to ignore
|
||||
the Submit button on the edit-actions-for-url CGI page.
|
||||
- New config option "allow-cgi-request-crunching" to allow
|
||||
requests for Privoxy's CGI pages to be blocked, redirected
|
||||
or (un)trusted like ordinary requests.
|
||||
- Empty filter files no longer interrupt the filtering process
|
||||
prematurely and are correctly listed on the show-status CGI page.
|
||||
- New config option "accept-intercepted-requests" to combine
|
||||
Privoxy with any packet filter to build an intercepting proxy
|
||||
for HTTP/1.1 requests (and for HTTP/1.0 requests with Host header set).
|
||||
- fast-redirects{} catch redirects to https URLs as well.
|
||||
- redirect{s@foo@bar@} can be used to redirect to a rewritten
|
||||
version of the original URL.
|
||||
- Trap unsupported gopher proxy requests.
|
||||
- Fixed a bug in the User Manual delivery on Windows
|
||||
(mingw32 only). Images now show up correctly and HTML
|
||||
pages are no longer padded with garbage data.
|
||||
- Fixed several minor memory leaks, most of them discovered with Valgrind.
|
||||
- Only unlink the pidfile if it's actually used.
|
||||
- Retries after connection problems with forced requests
|
||||
aren't blocked again.
|
||||
- On Unix SIGABRT causes a core dump as expected and is no
|
||||
longer treated as normal shutdown signal.
|
||||
- The "access denied" CGI page is more descriptive and
|
||||
allows retries to circumvent the referrer check.
|
||||
- Updated PCRS to handle unexpected PCRE errors properly.
|
||||
Fixed crashes that could occur if Privoxy was build
|
||||
with external PCRE versions newer than Privoxy's internal
|
||||
one. (Reported by Chung-chieh Shan)
|
||||
- Fixed crashes with null bytes in PCRS replacement strings
|
||||
(Patch provided by Felix Gröbert).
|
||||
- Fixed crashes with header time randomization on mingw32.
|
||||
- The CGI style sheet is no longer delivered if the referring
|
||||
page isn't a Privoxy CGI page. This prevents a JavaScript-based
|
||||
Privoxy detection "attack". Note that detecting Privoxy is
|
||||
still possible through other ways and Privoxy was never intended
|
||||
to be invisible anyway.
|
||||
- Added support for AmigaOS 4, fixed build for AmigaOS 3.x.
|
||||
- The show-url-info CGI page displays a warning if Privoxy
|
||||
is currently toggled off.
|
||||
- The show-status CGI page suppresses the edit button
|
||||
for action files if Privoxy has no write access.
|
||||
- Most CGI error pages react properly to HEAD requests.
|
||||
- Requests with RFC 3253 HTTP methods (used by Subversion)
|
||||
are accepted. (Patch provided by Petr Kadlec)
|
||||
- New config option "templdir" to change the location
|
||||
of the CGI templates to make sure customized templates
|
||||
aren't "updated".
|
||||
- Better handling of "HTTP/1.1 100 Continue" responses.
|
||||
- The background of the PNG pattern is transparent.
|
||||
- Fixed XML syntax errors caused by banners-by-size and banners-by-url.
|
||||
- Fixed crashes and possible action file corruptions
|
||||
when lines containing hashes are written through the CGI editor.
|
||||
- Supports dynamic filters which can contain variables.
|
||||
- Supports tags to change the actions based on client or server headers.
|
||||
- Incorrect actions are logged before program termination.
|
||||
- The "actionsfile" syntax in the configuration file is consistent
|
||||
with the rest of the configuration options and requires the
|
||||
whole file name. This is an incompatible change, if you use
|
||||
an old configuration file you might have to append ".action"
|
||||
to your "actionsfile" directives.
|
||||
- With the configuration file option "enforce-blocks" the
|
||||
"go there anyway" mechanism can be disabled without recompiling
|
||||
Privoxy.
|
||||
- More precise error messages in case of incorrect acl syntax.
|
||||
- Logs a warning if filtering is enabled but impossible due
|
||||
to lack of zlib support or use of the prevent-compression action.
|
||||
- Less noisy handling of Cookie:" and "Connection:" headers.
|
||||
- Improved error messages in case of connection problems.
|
||||
- Fix a command-line-parsing bug that was introduced before 3.0.5
|
||||
beta and caused Privoxy to treat the last argument as configuration
|
||||
file if no configuration file was specified.
|
||||
- Treat unknown command line options as fatal errors instead
|
||||
of silently ignoring them.
|
||||
- Use string functions with length checks more often.
|
||||
- Don't log CONNECT requests twice.
|
||||
- Allow to log the source address for ACL-related connection drops.
|
||||
- Don't ignore applying filters if the server didn't
|
||||
specify a Content-Type. Bug reported by Amuro Namie.
|
||||
- Rejected CONNECT requests are logged with log level info
|
||||
(enabled by default) and the reason for the block.
|
||||
- New command line option "--pre-chroot-nslookup hostname" to
|
||||
intialize the resolver library before chroot'ing. On some systems this
|
||||
reduces the number of files that must be copied into the chroot tree.
|
||||
(Patch provided by Stephen Gildea)
|
||||
- Fix a long-standing memory corruption bug that could cause
|
||||
Privoxy to overwrite a single byte in memory it didn't explicitly
|
||||
allocate (but that probably was allocated anyway due to bucket size).
|
||||
- Send template-based CGI pages as HTTP/1.1 unless the client
|
||||
asked for HTTP/1.0.
|
||||
- Let the first line in connection established responses
|
||||
end in \r\n as required by RFC1945. Reported by Bert van Leeuwen.
|
||||
- If no log file has been specified, disable logging instead of logging
|
||||
to stderr.
|
||||
- Don't block stderr when in daemon mode.
|
||||
- Ignore missing zero-chunks when filtering chunk-encoded content.
|
||||
Earlier Privoxy versions would buffer and then forward the content
|
||||
unmodified which caused some browsers to simply show empty pages.
|
||||
- Fix double free in cgi_edit_actions_list(). Reported by Venustech AD-LAB.
|
||||
- The code to add X-Forwarded-For headers when the hide-forwarded-for-headers
|
||||
action isn't being used has been removed.
|
||||
- Fixed trustfile feature which previously didn't work without FEATURE_TOGGLE.
|
||||
Reported by Lee.
|
||||
- Minor code clean-ups, filter and action file updates.
|
||||
(Some of them reported by Davide Alberani, Markus Elfring,
|
||||
Stefan Huehner and Adam Piggott)
|
||||
|
||||
*** Version 3.0.6 ***
|
||||
|
||||
- New content filters: no-ping, google, msn, yahoo and blogspot.
|
||||
- New header filters: x-httpd-php-to-html, html-to-xml, xml-to-html
|
||||
and hide-tor-exit-notation.
|
||||
- The special header "X-Filter: No" now disables header filtering as well.
|
||||
- Improved the filters img-reorder, js-annoyances, webbugs,
|
||||
banners-by-size, banners-by-link and ie-exploits to make them
|
||||
less likely to break anything.
|
||||
- Removed outdated URL patterns in default.action and added new ones.
|
||||
- Added redirection from http://p.p/user-manual to http://p.p/user-manual/
|
||||
- Changed webinterface default values for hide-user-agent, hide-referrer
|
||||
and set-image-blocker.
|
||||
|
||||
*** Version 3.0.5 Beta ***
|
||||
|
||||
- Windows version can be installed/started as a service.
|
||||
- Windows icon stays blue when Privoxy is idle, green when busy.
|
||||
- Integrated Fabian Keil's extensive patch. See:
|
||||
http://www.fabiankeil.de/sourcecode/privoxy/. Includes the
|
||||
following new or significantly improved actions (among many
|
||||
other improvements):
|
||||
|
||||
content-type-overwrite{}
|
||||
crunch-client-header{string}
|
||||
crunch-if-none-match
|
||||
crunch-server-header{string}
|
||||
fast-redirects{check-decoded-url}
|
||||
filter-client-headers
|
||||
filter-server-headers
|
||||
force-text-mode
|
||||
handle-as-empty-document
|
||||
hide-accept-language{}
|
||||
hide-content-disposition{}
|
||||
hide-if-modified-since
|
||||
hide-referrer{conditional-block}
|
||||
overwrite-last-modified{}
|
||||
redirect{URL}
|
||||
treat-forbidden-connects-like-blocks
|
||||
|
||||
- Standard-compliant clients are prevented from displaying cached
|
||||
copies of Privoxy's error messages after the cause of the problem
|
||||
has gone.
|
||||
- Improved DNS error handling.
|
||||
- Multiple filter files can now be specified in config.
|
||||
- Added jpeg filtering to defend against MS jpeg vulnerability MS04-028
|
||||
with the new inspect-jpegs action.
|
||||
- Removed the "arbitrary" 1000 filter limit - addresses tracker #911950
|
||||
- Thanks to Jindrich Makovicka for a race condition fix for the log
|
||||
file. The race condition remains for non-pthread implementations.
|
||||
Reference patch #1175720. Various other logging enhancements.
|
||||
- A pile of assorted bug fixes, memory leaks, enhancements, etc.
|
||||
- Moved Actions file reporting mechanism to SF tracker.
|
||||
- Two new options for config: enable-remote-http-toggle and
|
||||
forwarded-connect-retries.
|
||||
- Trap unsupported FTP requests.
|
||||
- Let text/xml be filtered.
|
||||
- Numerous updates to default.action
|
||||
- Increase the compiled in limit of trusted referrers from 64 to 512
|
||||
(for trustfile users).
|
||||
|
||||
*** Version 3.0.3 ***
|
||||
|
||||
- Fixed yet another two memory leaks. Process growth seems stopped now.
|
||||
- Further tightened security against malicious toggle-off links.
|
||||
- Excluded text/plain MIME types from filtering. This fixes a
|
||||
couple of client-crashing, download corruption and
|
||||
Privoxy performance issues, whose root cause lies in
|
||||
web servers labelling content of unknown type as text/plain.
|
||||
- Assorted fixes for POSIX compliance, signal handling, graceful
|
||||
termination, compiler warnings, OSX support, Win32 systray,
|
||||
error logging, hostname wildcards, correct detection of NetBSD.
|
||||
- Workarounds for client (iTunes etc) and server (PHP < 4.2.3) bugs
|
||||
including the notorious "blank page" problem.
|
||||
- Various filter improvements; most notably the unsolicited-popups
|
||||
filter became less destructive
|
||||
- Major revamp of the actions file
|
||||
|
||||
*** Version 3.0.2 ***
|
||||
|
||||
- Fixed two memory leaks, one serious
|
||||
- Fixed bug in pcrs which could cause crashes with user-defined filters
|
||||
- Fixed bug in domain name matching
|
||||
- Assorted small fixes (Win32 menu, CGI URL editor, ..)
|
||||
- Added basic support for the OPTIONS and TRACE http methods
|
||||
- Added workaround for Bug in Mac OSX that made Privoxy crash occasionally
|
||||
- Refined the default action file through >400 items of user feedback
|
||||
- Filter changes:
|
||||
- Assorted refinements, optimizations and fixes in the js-annoyances,
|
||||
img-reorder, banners-by-size, banners-by-link, webbugs, refresh-tags,
|
||||
html-annoyances, content-cookies and fun filters
|
||||
- Replaced filter "popups" by choice between two modes:
|
||||
- "unsolicited-popups" tries to catch only the unsolicited ones
|
||||
- "all-popups" tries to kill them all (as before)
|
||||
- New filter "tiny-textforms" Help those tiny or hard-wrap textareas.
|
||||
- New filter "jumping-windows" that prevents windows from resizing
|
||||
and moving themselves
|
||||
- New filter "demoronizer" which fixes MS's abuse of std charsets
|
||||
(common cases anyway).
|
||||
- Replaced "nimda" with more general "ie-exploits" filter in which
|
||||
all filters for exploits shall be collected
|
||||
- Improved cookie logging
|
||||
- Rewrote make install target. Added uninstall and install-strip
|
||||
targets.
|
||||
- Fixed a potential (application-level, NOT OS-level!) security
|
||||
problem involving remote toggling and action file manipulation
|
||||
by mailicious websites.
|
||||
- Added ability to chroot (thanks to Sviatoslav Sviridov)
|
||||
- Added more action aliases for prehistoric action names
|
||||
- Add Slackware support to Makefile.
|
||||
|
||||
*** Version 3.0 ***
|
||||
|
||||
- Fixed Windows startmenu items, log window and tray icon menus.
|
||||
- Added warning for bogus install target
|
||||
- Added quicktime-kioskmode filter and improved frameset-borders
|
||||
- Updated default.action based on latest feedback
|
||||
- New PDF doc build process
|
||||
- Add a user contrib module to cvs:
|
||||
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/
|
||||
|
||||
*** Version 2.9.18 ***
|
||||
|
||||
- Added workaround for IE bug that broke CGI interface
|
||||
- Bugfix: String actions now reliably editable through CGI interface
|
||||
- Three filters fixed (again!)
|
||||
- Assorted small fixes and doc enhancements
|
||||
|
||||
*** Version 2.9.16 ***
|
||||
|
||||
- Major revamp of default.action to get rid of years of cruft.
|
||||
- Same for default.filter
|
||||
- Re-design and major improvements to the CGI editor interface.
|
||||
- Address spurious 'out of memory' error due to incorrect file permissions.
|
||||
- Impose buffer limits while reading client and server headers.
|
||||
- Better memory and CPU optimization.
|
||||
- Add Conectiva Linux package.
|
||||
- user-manual directive added to config for help links from within CGI
|
||||
editor.
|
||||
- Multiple actions files can now be specified in config.
|
||||
- Actions files are changed to: default.action, standard.action, and
|
||||
user.action. user.action is for personal/local configuration.
|
||||
- The usual many small and miscellaneous bug and security fixes.
|
||||
|
||||
*** Version 2.9.14 Beta ***
|
||||
|
||||
- Fix Solaris compile problem (gateway.h and filters.h)
|
||||
- Makefile fixes for Solaris, FreeBSD (?)
|
||||
- Fix build failure where certain features were disabled.
|
||||
- 'blocked-compact' template is removed. Various CGI improvements,
|
||||
including an adaptive 'blocked' template.
|
||||
- Various tweaks for actions file to get ready for stable 3.0
|
||||
- Included a 'Bookmarklet' and PHP scripts for reporting actions file
|
||||
problems via web interface at privoxy.org. Accessed via internal CGIs.
|
||||
- Include cgi-style.css for templates.
|
||||
- #include mechansim for common text in templates
|
||||
- Various other minor fixes.
|
||||
|
||||
*** Version 2.9.13 Beta ***
|
||||
|
||||
- *NEWS*: The project has been renamed to Privoxy! The new name is
|
||||
reflected throughout (file locations, etc).
|
||||
- ijb.action is now default.action. re_filterfile is now
|
||||
default.filter.
|
||||
- http://i.j.b/ is now http://p.p/
|
||||
- The 'logo' option for replacing ad iamges is removed now. 'Pattern'
|
||||
(checkerboard) is now the default.
|
||||
- RPM spec file make over.
|
||||
|
||||
|
||||
*** Version 2.9.12 Beta ***
|
||||
|
||||
- **READ**: The default listening PORT is NOW 8118!!! Changed from
|
||||
8000 due to conflict with NAS (Network Audio Server, whatever that
|
||||
is.)
|
||||
- More CGI actions editor fixes and improvements.
|
||||
- Win32 command line fix ups.
|
||||
- re_filterfile now has modular sections that can be activated on a
|
||||
per site basis. Some new goodies there too.
|
||||
- +filter now takes arguments to match FILTER sections in re_filterfile
|
||||
for even more flexibility.
|
||||
- Added a new image blocker option: +image-blocker{pattern}, which
|
||||
displays a checkerboard patthern and scales better than the logo.
|
||||
- PNG images will be used in place of GIF for JB built-in images
|
||||
if configured with --enable-no-gif.
|
||||
- Clean up compiler warnings (mostly).
|
||||
- Improved handling of failed DNS lookups & diagnostics for failed bind
|
||||
to listen socket
|
||||
- Made --no-daemon mode log to tty instead of logfile.
|
||||
- Various spec file and init script cleanups and improvements (Redhat and
|
||||
SuSE).
|
||||
- CGI Editor works on OS/2 now.
|
||||
- Fix restart failure where sockets were in TIME_WAIT.
|
||||
- Fixes for actions cgi editor, make sure we have right file.
|
||||
- A --pidfile command line option now, in addition to --help,
|
||||
--version, --no-daemon, --user and configfile. --no-daemon replaces
|
||||
the former -d option and _DEBUG define. --user will drop privileges
|
||||
to the specified user.
|
||||
- Signal handling cleanups (*nix).
|
||||
- CGI actions editor improvements and fixes.
|
||||
- Error handling improvements, especially out of memory.
|
||||
- Default re_filterfile fix that caused spurious IJB logos
|
||||
(instead of 'blank').
|
||||
- configure.in threading fixes for Solaris.
|
||||
- Various other minor fixes.
|
||||
|
||||
|
||||
*** Version 2.9.11 Beta Changes ***
|
||||
|
||||
- Add "session" cookie concept where cookies exist for the life
|
||||
of that browser session only (ie never goes to disk).
|
||||
- Checks for correct header length.
|
||||
- Fix user:pass@host.domain.com auth bug.
|
||||
- Better signal handling on *nix.
|
||||
- Fix CFLAGS hard-coded in configure.in
|
||||
- Fix threading bug re: gethostbyname() that caused random
|
||||
URLs to fail in some cases.
|
||||
|
||||
|
||||
*** Version 2.9.11 Alpha Changes ***
|
||||
|
||||
- A web-based editor for the actions file is included (go to http://i.j.b/).
|
||||
- Web-based toggle IJB on/off support.
|
||||
- Cookie handling has changed - the new +no-cookies-keep feature is now the
|
||||
default.
|
||||
- actionsfile is renamed to ijb.action.
|
||||
- junkbstr.txt is now config.txt on Win32.
|
||||
- Support for running IJB as a UNIX daemon process has improved.
|
||||
- Unix daemon now returns error code on failed start.
|
||||
- Timestamps in logfile and jarfile now.
|
||||
- Fix for the Netscape bug reintroduced in 2.9.9.
|
||||
- make should now abort if gmake (GNU make) not present.
|
||||
- Many other minor bugfixes
|
||||
- Start a ChangeLog :)
|
||||
|
||||
|
||||
|
||||
*** Version 2.9.3 pre-Alpha Changes ***
|
||||
|
||||
- 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.
|
||||
- Temporary hack to get FORCE_LOAD to work with IE. I just lowercased the
|
||||
FORCE_LOAD_PREFIX. Needs fixing properly.
|
||||
- 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.
|
||||
- PCRE or GNU Regex is now a #define option.
|
||||
|
||||
|
||||
*** Version 2.9.2 pre-Alpha Changes ***
|
||||
|
||||
- Andreas applied the latest version of the FORCE patch.
|
||||
|
||||
|
||||
*** Version 2.9.1 pre-Alpha Changes ***
|
||||
|
||||
- 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
|
||||
|
||||
|
||||
*** Version 2.9.0 pre-Alpha Changes ***
|
||||
|
||||
- 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.
|
||||
- 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).
|
||||
- Error logging code replaced with new module errlog.c, based on the
|
||||
one from JunkbusterMT (but with the threading code removed).
|
||||
- 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.
|
||||
- ACL, Jar and trust files conditionally compiled.
|
||||
- New source file headers.
|
||||
- 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!)
|
||||
- RCS tags on .h files.
|
||||
- RCS tags are const char[] rather than const char *. (Saves 4 bytes
|
||||
per tag ;-)
|
||||
- VC++ project files renamed to vc_junkbuster.*.
|
||||
- show-proxy-args now shows status of all conditionals, not just REGEX
|
||||
- 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!)
|
||||
- Loaders now use a common function to read a line and skip comments,
|
||||
and this function also stores the proxy_args.
|
||||
- Added ./junkbuster --help (Not for Win32 GUI)
|
||||
- Added ./junkbuster --version (Not for Win32 GUI)
|
||||
- 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".
|
||||
- Version number changes to 2.9.0
|
||||
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||
Privoxy team. http://www.privoxy.org/
|
||||
|
||||
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.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,173 @@
|
|||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/INSTALL,v $
|
||||
*
|
||||
* Purpose : INSTALL file to help with installing from source.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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/licenses/old-licenses/gpl-2.0.html
|
||||
* or write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
To build Privoxy from source, autoconf, GNU make (gmake), and, of course, a C
|
||||
compiler like gcc are required.
|
||||
|
||||
When building from a source tarball, first unpack the source:
|
||||
|
||||
tar xzvf privoxy-3.0.12-stable-src.tar.gz
|
||||
cd privoxy-3.0.12-stable
|
||||
|
||||
|
||||
For retrieving the current CVS sources, you'll need a CVS client installed.
|
||||
Note that sources from CVS are typically development quality, and may not be
|
||||
stable, or well tested. To download CVS source, check the Sourceforge
|
||||
documentation, which might give commands like:
|
||||
|
||||
cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
|
||||
cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
|
||||
cd current
|
||||
|
||||
|
||||
This will create a directory named current/, which will contain the source
|
||||
tree.
|
||||
|
||||
You can also check out any Privoxy "branch", just exchange the current name
|
||||
with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs tree).
|
||||
|
||||
It is also strongly recommended to not run Privoxy as root. You should
|
||||
configure/install/run Privoxy as an unprivileged user, preferably by creating a
|
||||
"privoxy" user and group just for this purpose. See your local documentation
|
||||
for the correct command line to do add new users and groups (something like
|
||||
adduser, but the command syntax may vary from platform to platform).
|
||||
|
||||
/etc/passwd might then look like:
|
||||
|
||||
privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell
|
||||
|
||||
|
||||
And then /etc/group, like:
|
||||
|
||||
privoxy:*:7777:
|
||||
|
||||
|
||||
Some binary packages may do this for you.
|
||||
|
||||
Then, to build from either unpacked tarball or CVS source:
|
||||
|
||||
autoheader
|
||||
autoconf
|
||||
./configure # (--help to see options)
|
||||
make # (the make from GNU, sometimes called gmake)
|
||||
su # Possibly required
|
||||
make -n install # (to see where all the files will go)
|
||||
make -s install # (to really install, -s to silence output)
|
||||
|
||||
|
||||
Using GNU make, you can have the first four steps automatically done for you by
|
||||
just typing:
|
||||
|
||||
make
|
||||
|
||||
|
||||
in the freshly downloaded or unpacked source directory.
|
||||
|
||||
To build an executable with security enhanced features so that users cannot
|
||||
easily bypass the proxy (e.g. "Go There Anyway"), or alter their own
|
||||
configurations, configure like this:
|
||||
|
||||
./configure --disable-toggle --disable-editor --disable-force
|
||||
|
||||
|
||||
Then build as above. In Privoxy 3.0.7 and later, all of these options can also
|
||||
be disabled through the configuration file.
|
||||
|
||||
WARNING: If installing as root, the install will fail unless a non-root user or
|
||||
group is specified, or a privoxy user and group already exist on the system. If
|
||||
a non-root user is specified, and no group, then the installation will try to
|
||||
also use a group of the same name as "user". If a group is specified (and no
|
||||
user), then the support files will be installed as writable by that group, and
|
||||
owned by the user running the installation.
|
||||
|
||||
configure accepts --with-user and --with-group options for setting user and
|
||||
group ownership of the configuration files (which need to be writable by the
|
||||
daemon). The specified user must already exist. When starting Privoxy, it must
|
||||
be run as this same user to insure write access to configuration and log files!
|
||||
|
||||
Alternately, you can specify user and group on the make command line, but be
|
||||
sure both already exist:
|
||||
|
||||
make -s install USER=privoxy GROUP=privoxy
|
||||
|
||||
|
||||
The default installation path for make install is /usr/local. This may of
|
||||
course be customized with the various ./configure path options. If you are
|
||||
doing an install to anywhere besides /usr/local, be sure to set the appropriate
|
||||
paths with the correct configure options (./configure --help). Non-privileged
|
||||
users must of course have write access permissions to wherever the target
|
||||
installation is going.
|
||||
|
||||
If you do install to /usr/local, the install will use sysconfdir=$prefix/etc/
|
||||
privoxy by default. All other destinations, and the direct usage of
|
||||
--sysconfdir flag behave like normal, i.e. will not add the extra privoxy
|
||||
directory. This is for a safer install, as there may already exist another
|
||||
program that uses a file with the "config" name, and thus makes /usr/local/etc
|
||||
cleaner.
|
||||
|
||||
If installing to /usr/local, the documentation will go by default to $prefix/
|
||||
share/doc. But if this directory doesn't exist, it will then try $prefix/doc
|
||||
and install there before creating a new $prefix/share/doc just for Privoxy.
|
||||
|
||||
Again, if the installs goes to /usr/local, the localstatedir (ie: var/) will
|
||||
default to /var instead of $prefix/var so the logs will go to /var/log/privoxy
|
||||
/, and the pid file will be created in /var/run/privoxy.pid.
|
||||
|
||||
make install will attempt to set the correct values in config (main
|
||||
configuration file). You should check this to make sure all values are correct.
|
||||
If appropriate, an init script will be installed, but it is up to the user to
|
||||
determine how and where to start Privoxy. The init script should be checked for
|
||||
correct paths and values, if anything other than a default install is done.
|
||||
|
||||
If install finds previous versions of local configuration files, most of these
|
||||
will not be overwritten, and the new ones will be installed with a "new"
|
||||
extension. default.action and default.filter will be overwritten. You will then
|
||||
need to manually update the other installed configuration files as needed. The
|
||||
default template files will be overwritten. If you have customized, local
|
||||
templates, these should be stored safely in a separate directory and defined in
|
||||
config by the "templdir" directive. It is of course wise to always back-up any
|
||||
important configuration files "just in case". If a previous version of Privoxy
|
||||
is already running, you will have to restart it manually.
|
||||
|
||||
For more detailed instructions on how to build Redhat RPMs, Windows
|
||||
self-extracting installers, building on platforms with special requirements
|
||||
etc, please consult the developer manual.
|
||||
|
||||
The simplest command line to start Privoxy is $path/privoxy --user=privoxy
|
||||
$path/etc/privoxy/config. See privoxy --usage, or the man page, for other
|
||||
options, and configuration.
|
||||
|
|
@ -0,0 +1,339 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,280 @@
|
|||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/README,v $
|
||||
*
|
||||
* Purpose : README file to give a short intro.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
This README is included with Privoxy 3.0.12. See http://www.privoxy.org/ for
|
||||
more information. The current code maturity level is "stable".
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Privoxy is a non-caching web proxy with advanced filtering capabilities for
|
||||
enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||
flexible configuration and can be customized to suit individual needs and
|
||||
tastes. It has application for both stand-alone systems and multi-user
|
||||
networks.
|
||||
|
||||
Privoxy is Free Software and licensed under the GPL2.
|
||||
|
||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||
Donations are welcome.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
1. IMPORTANT CHANGES
|
||||
|
||||
March 2009, Privoxy 3.0.12 is released.
|
||||
|
||||
This is primarily a bug fix release. See the "ChangeLog", and the "What's New"
|
||||
section and the "Upgrader's Notes" in the User Manual for details.
|
||||
|
||||
February 2009, Privoxy 3.0.11 is released.
|
||||
|
||||
As usual there are changes that effect the configuration. See the "ChangeLog",
|
||||
and the "What's New" section and the "Upgrader's Notes" in the User Manual for
|
||||
details and specifics.
|
||||
|
||||
This is a stable release, and marks a departure for Privoxy development.
|
||||
|
||||
Previously, odd numbered releases were considered beta versions and were only
|
||||
released at the end of the development cycle when the code was already believed
|
||||
to be stable. Usually it was, so the stable release contained pretty much the
|
||||
same code, but got a higher version number. In the future we intend to release
|
||||
several snapshots between stable releases. There will probably still be about
|
||||
two stable releases per year, but hopefully about six snapshots instead of the
|
||||
two betas we have now. The intentions is to make testing without CVS access
|
||||
easier.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
2. INSTALL
|
||||
|
||||
See the INSTALL file in this directory, for installing from raw source, and the
|
||||
User Manual, for all other installation types.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
3. RUN
|
||||
|
||||
privoxy [--help] [--version] [--no-daemon] [--pidfile PIDFILE] [--user USER
|
||||
[.GROUP]] [--chroot] [--pre-chroot-nslookup HOSTNAME ][config_file]
|
||||
|
||||
See the man page or User Manual for an explanation of each option, and other
|
||||
configuration and usage issues.
|
||||
|
||||
If no config_file is specified on the command line, Privoxy will look for a
|
||||
file named 'config' in the current directory (except Win32 which will look for
|
||||
'config.txt'). If no config_file is found, Privoxy will fail to start.
|
||||
|
||||
Or for Red Hat and Fedora based distributions: /etc/rc.d/init.d/privoxy start
|
||||
|
||||
Or Debian and Ubuntu: /etc/init.d/privoxy start
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
4. CONFIGURATION
|
||||
|
||||
See: 'config', 'default.action', 'user.action', 'default.filter', and
|
||||
'user.filter'. 'user.action' and 'user.filter' are for personal and local
|
||||
configuration preferences. These are all well commented. Most of the magic is
|
||||
in '*.action' files. 'user.action' should be used for any actions
|
||||
customizations. On Unix-like systems, these files are typically installed in /
|
||||
etc/privoxy. On Windows, then wherever the executable itself is installed.
|
||||
There are many significant changes and advances from earlier versions. The User
|
||||
Manual has an explanation of all configuration options, and examples: http://
|
||||
www.privoxy.org/user-manual/.
|
||||
|
||||
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or whatever
|
||||
you specify in the config file under 'listen-address'. DEFAULT is
|
||||
localhost:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not
|
||||
try it with FTP or other protocols for the simple reason it does not work.
|
||||
|
||||
The actions list can be configured via the web interface accessed via http://
|
||||
p.p/, as well other options.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
5. DOCUMENTATION
|
||||
|
||||
There should be documentation in the 'doc' subdirectory. In particular, see the
|
||||
User Manual there, the FAQ, and those interested in Privoxy development, should
|
||||
look at developer-manual.
|
||||
|
||||
The source and configuration files are all well commented. The main
|
||||
configuration files are: 'config', 'default.action', and 'default.filter'.
|
||||
|
||||
Included documentation may vary according to platform and packager. All
|
||||
documentation is posted on http://www.privoxy.org, in case you don't have it,
|
||||
or can't find it.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6. CONTACTING THE DEVELOPERS, BUG REPORTING AND FEATURE REQUESTS
|
||||
|
||||
We value your feedback. In fact, we rely on it to improve Privoxy and its
|
||||
configuration. However, please note the following hints, so we can provide you
|
||||
with the best support:
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.1. Get Support
|
||||
|
||||
For casual users, our support forum at SourceForge is probably best suited:
|
||||
http://sourceforge.net/tracker/?group_id=11118&atid=211118
|
||||
|
||||
All users are of course welcome to discuss their issues on the users mailing
|
||||
list, where the developers also hang around.
|
||||
|
||||
Please don't sent private support requests to individual Privoxy developers,
|
||||
either use the mailing lists or the support trackers.
|
||||
|
||||
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||
addresses have to be accepted manually by a moderator. This may cause a delay
|
||||
of several days and if you use a subject that doesn't clearly mention Privoxy
|
||||
or one of its features, your message may be accidentally discarded as spam.
|
||||
|
||||
If you aren't subscribed, you should therefore spend a few seconds to come up
|
||||
with a proper subject. Additionally you should make it clear that you want to
|
||||
get CC'd. Otherwise some responses will be directed to the mailing list only,
|
||||
and you won't see them.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.2. Reporting Problems
|
||||
|
||||
"Problems" for our purposes, come in two forms:
|
||||
|
||||
* Configuration issues, such as ads that slip through, or sites that don't
|
||||
function properly due to one Privoxy "action" or another being turned "on".
|
||||
|
||||
* "Bugs" in the programming code that makes up Privoxy, such as that might
|
||||
cause a crash.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.2.1. Reporting Ads or Other Configuration Problems
|
||||
|
||||
Please send feedback on ads that slipped through, innocent images that were
|
||||
blocked, sites that don't work properly, and other configuration related
|
||||
problem of default.action file, to http://sourceforge.net/tracker/?group_id=
|
||||
11118&atid=460288, the Actions File Tracker.
|
||||
|
||||
New, improved default.action files may occasionally be made available based on
|
||||
your feedback. These will be announced on the ijbswa-announce list and
|
||||
available from our the files section of our project page.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.2.2. Reporting Bugs
|
||||
|
||||
Please report all bugs through our bug tracker: http://sourceforge.net/tracker
|
||||
/?group_id=11118&atid=111118.
|
||||
|
||||
Before doing so, please make sure that the bug has not already been submitted
|
||||
and observe the additional hints at the top of the submit form. If already
|
||||
submitted, please feel free to add any info to the original report that might
|
||||
help to solve the issue.
|
||||
|
||||
Please try to verify that it is a Privoxy bug, and not a browser or site bug or
|
||||
documented behaviour that just happens to be different than what you expected.
|
||||
If unsure, try toggling off Privoxy, and see if the problem persists.
|
||||
|
||||
If you are using your own custom configuration, please try the stock configs to
|
||||
see if the problem is configuration related. If you're having problems with a
|
||||
feature that is disabled by default, please ask around on the mailing list if
|
||||
others can reproduce the problem.
|
||||
|
||||
If you aren't using the latest Privoxy version, the bug may have been found and
|
||||
fixed in the meantime. We would appreciate if you could take the time to
|
||||
upgrade to the latest version (or even the latest CVS snapshot) and verify that
|
||||
your bug still exists.
|
||||
|
||||
Please be sure to provide the following information:
|
||||
|
||||
* The exact Privoxy version you are using (if you got the source from CVS,
|
||||
please also provide the source code revisions as shown in http://
|
||||
config.privoxy.org/show-version).
|
||||
|
||||
* The operating system and versions you run Privoxy on, (e.g. Windows XP
|
||||
SP2), if you are using a Unix flavor, sending the output of "uname -a"
|
||||
should do, in case of GNU/Linux, please also name the distribution.
|
||||
|
||||
* The name, platform, and version of the browser you were using (e.g.
|
||||
Internet Explorer v5.5 for Mac).
|
||||
|
||||
* The URL where the problem occurred, or some way for us to duplicate the
|
||||
problem (e.g. http://somesite.example.com/?somethingelse=123).
|
||||
|
||||
* Whether your version of Privoxy is one supplied by the Privoxy developers
|
||||
via SourceForge, or if you got your copy somewhere else.
|
||||
|
||||
* Whether you are using Privoxy in tandem with another proxy such as Tor. If
|
||||
so, please temporary disable the other proxy to see if the symptoms change.
|
||||
|
||||
* Whether you are using a personal firewall product. If so, does Privoxy work
|
||||
without it?
|
||||
|
||||
* Any other pertinent information to help identify the problem such as config
|
||||
or log file excerpts (yes, you should have log file entries for each action
|
||||
taken).
|
||||
|
||||
You don't have to tell us your actual name when filing a problem report, but
|
||||
please use a nickname so we can differentiate between your messages and the
|
||||
ones entered by other "anonymous" users that may respond to your request if
|
||||
they have the same problem or already found a solution.
|
||||
|
||||
Please also check the status of your request a few days after submitting it, as
|
||||
we may request additional information. If you use a SF id, you should
|
||||
automatically get a mail when someone responds to your request.
|
||||
|
||||
The appendix of the Privoxy User Manual also has helpful information on
|
||||
understanding actions, and action debugging.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.3. Request New Features
|
||||
|
||||
You are welcome to submit ideas on new features or other proposals for
|
||||
improvement through our feature request tracker at http://sourceforge.net/
|
||||
tracker/?atid=361118&group_id=11118.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
6.4. Other
|
||||
|
||||
For any other issues, feel free to use the mailing lists. Technically
|
||||
interested users and people who wish to contribute to the project are also
|
||||
welcome on the developers list! You can find an overview of all Privoxy-related
|
||||
mailing lists, including list archives, at: http://sourceforge.net/mail/?
|
||||
group_id=11118.
|
||||
|
|
@ -0,0 +1,495 @@
|
|||
#ifndef CONFIG_H_INCLUDED
|
||||
#define CONFIG_H_INCLUDED
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/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
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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 $
|
||||
* Revision 1.36 2008/10/18 11:17:52 fabiankeil
|
||||
* Connection keep-alive support is ready for testing,
|
||||
* allow enabling it through the configure script.
|
||||
*
|
||||
* Revision 1.35 2008/04/06 15:18:33 fabiankeil
|
||||
* Oh well, rename the --enable-pcre-host-patterns option to
|
||||
* --enable-extended-host-patterns as it's not really PCRE syntax.
|
||||
*
|
||||
* Revision 1.34 2008/04/06 14:54:26 fabiankeil
|
||||
* Use PCRE syntax in host patterns when configured
|
||||
* with --enable-pcre-host-patterns.
|
||||
*
|
||||
* Revision 1.33 2006/12/17 19:15:26 fabiankeil
|
||||
* Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
|
||||
*
|
||||
* Revision 1.32 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.27.2.4 2003/12/17 16:34:40 oes
|
||||
* Cosmetics
|
||||
*
|
||||
* Revision 1.27.2.3 2003/03/27 16:03:19 oes
|
||||
* Another shot at Bug #707467
|
||||
*
|
||||
* Revision 1.27.2.2 2003/03/21 14:39:12 oes
|
||||
* Presumably fixed Bug #707467 by defining unix ifdef __unix__
|
||||
*
|
||||
* Revision 1.27.2.1 2002/08/10 11:22:31 oes
|
||||
* - Add two AC_DEFINEs that indicate if the pcre*.h headers
|
||||
* are located in a pcre/ subdir to the include path.
|
||||
*
|
||||
* Revision 1.27 2002/04/25 19:13:57 morcego
|
||||
* Removed RPM release number declaration on configure.in
|
||||
* Changed makefile to use given value for RPM_PACKAGEV when on uploading
|
||||
* targets (will produce an error, explaining who to do it, if no value
|
||||
* if provided).
|
||||
*
|
||||
* Revision 1.26 2002/04/11 11:00:21 oes
|
||||
* Applied Moritz' fix for socklen_t on Solaris
|
||||
*
|
||||
* Revision 1.25 2002/04/06 20:38:01 jongfoster
|
||||
* Renaming VC++ versions of config.h
|
||||
*
|
||||
* Revision 1.24 2002/04/04 00:36:36 gliptak
|
||||
* always use pcre for matching
|
||||
*
|
||||
* Revision 1.23 2002/04/03 22:28:03 gliptak
|
||||
* Removed references to gnu_regex
|
||||
*
|
||||
* Revision 1.22 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.21 2002/03/24 14:31:08 swa
|
||||
* remove more crappy files. set RPM
|
||||
* release version correctly.
|
||||
*
|
||||
* Revision 1.20 2002/03/24 13:46:44 swa
|
||||
* name change related issue.
|
||||
*
|
||||
* Revision 1.19 2002/03/24 13:25:42 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.18 2002/03/08 16:40:28 oes
|
||||
* Added FEATURE_NO_GIFS
|
||||
*
|
||||
* Revision 1.17 2002/03/04 17:52:44 oes
|
||||
* Deleted PID_FILE_PATH
|
||||
*
|
||||
* Revision 1.16 2002/01/10 12:36:18 oes
|
||||
* Moved HAVE_*_R to acconfig.h, where they belong.
|
||||
*
|
||||
* Revision 1.15 2001/12/30 14:07:31 steudten
|
||||
* - Add signal handling (unix)
|
||||
* - Add SIGHUP handler (unix)
|
||||
* - Add creation of pidfile (unix)
|
||||
* - Add action 'top' in rc file (RH)
|
||||
* - Add entry 'SIGNALS' to manpage
|
||||
* - Add exit message to logfile (unix)
|
||||
*
|
||||
* Revision 1.14 2001/10/23 21:24:09 jongfoster
|
||||
* Support for FEATURE_CGI_EDIT_ACTIONS
|
||||
*
|
||||
* Revision 1.13 2001/10/07 15:30:41 oes
|
||||
* Removed FEATURE_DENY_GZIP
|
||||
*
|
||||
* Revision 1.12 2001/09/13 19:56:37 jongfoster
|
||||
* Reverting to revision 1.10 - previous checking was majorly broken.
|
||||
*
|
||||
* Revision 1.10 2001/07/30 22:08:36 jongfoster
|
||||
* Tidying up #defines:
|
||||
* - All feature #defines are now of the form FEATURE_xxx
|
||||
* - Permanently turned off WIN_GUI_EDIT
|
||||
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||
*
|
||||
* Revision 1.9 2001/07/29 19:08:52 jongfoster
|
||||
* Changing _CONFIG_H to CONFIG_H_INCLUDED.
|
||||
* Also added protection against using a MinGW32 or CygWin version of
|
||||
* config.h from within MS Visual C++
|
||||
*
|
||||
* Revision 1.8 2001/07/29 17:09:17 jongfoster
|
||||
* Major changes to build system in order to fix these bugs:
|
||||
* - pthreads under Linux was broken - changed -lpthread to -pthread
|
||||
* - Compiling in MinGW32 mode under CygWin now correctly detects
|
||||
* which shared libraries are available
|
||||
* - Solaris support (?) (Not tested under Solaris yet)
|
||||
*
|
||||
* Revision 1.7 2001/07/25 22:53:59 jongfoster
|
||||
* Will #error if pthreads is enabled under BeOs
|
||||
*
|
||||
* Revision 1.6 2001/07/15 17:54:29 jongfoster
|
||||
* Renaming #define STATIC to STATIC_PCRE
|
||||
* Adding new #define FEATURE_PTHREAD that will be used to enable
|
||||
* POSIX threads support.
|
||||
*
|
||||
* Revision 1.5 2001/07/13 13:48:37 oes
|
||||
* - (Fix:) Copied CODE_STATUS #define from config.h.in
|
||||
* - split REGEX #define into REGEX_GNU and REGEX_PCRE
|
||||
* and removed PCRE.
|
||||
* (REGEX = REGEX_GNU || REGEX_PCRE per project.h)
|
||||
* - Moved STATIC (for pcre) here from Makefile.in
|
||||
* - Introduced STATIC_PCRS #define to allow for dynaimc linking with
|
||||
* libpcrs
|
||||
* - Removed PCRS #define, since pcrs is now needed for CGI anyway
|
||||
*
|
||||
* Revision 1.4 2001/05/29 09:50:24 jongfoster
|
||||
* Unified blocklist/imagelist/permissionslist.
|
||||
* File format is still under discussion, but the internal changes
|
||||
* are (mostly) done.
|
||||
*
|
||||
* Also modified interceptor behaviour:
|
||||
* - We now intercept all URLs beginning with one of the following
|
||||
* prefixes (and *only* these prefixes):
|
||||
* * http://i.j.b/
|
||||
* * http://ijbswa.sf.net/config/
|
||||
* * http://ijbswa.sourceforge.net/config/
|
||||
* - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||
* - Internal changes so that intercepted and fast redirect pages
|
||||
* are not replaced with an image.
|
||||
* - Interceptors now have the option to send a binary page direct
|
||||
* to the client. (i.e. ijb-send-banner uses this)
|
||||
* - Implemented show-url-info interceptor. (Which is why I needed
|
||||
* the above interceptors changes - a typical URL is
|
||||
* "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||
* The previous mechanism would not have intercepted that, and
|
||||
* if it had been intercepted then it then it would have replaced
|
||||
* it with an image.)
|
||||
*
|
||||
* Revision 1.3 2001/05/26 01:26:34 jongfoster
|
||||
* New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor.
|
||||
* This #define cannot be set from ./configure - there's no point, it
|
||||
* doesn't work yet. See feature request # 425722
|
||||
*
|
||||
* Revision 1.2 2001/05/22 17:43:35 oes
|
||||
*
|
||||
* - Enabled filtering banners by size rather than URL
|
||||
* by adding patterns that replace all standard banner
|
||||
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||
*
|
||||
* - Enabled filtering WebBugs by providing a pattern
|
||||
* which kills all 1x1 images
|
||||
*
|
||||
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||
* which is selected by the (nonstandard and therefore
|
||||
* capital) letter 'U' in the option string.
|
||||
* It causes the quantifiers to be ungreedy by default.
|
||||
* Appending a ? turns back to greedy (!).
|
||||
*
|
||||
* - Added a new interceptor ijb-send-banner, which
|
||||
* sends back the "Junkbuster" gif. Without imagelist or
|
||||
* MSIE detection support, or if tinygif = 1, or the
|
||||
* URL isn't recognized as an imageurl, a lame HTML
|
||||
* explanation is sent instead.
|
||||
*
|
||||
* - Added new feature, which permits blocking remote
|
||||
* script redirects and firing back a local redirect
|
||||
* to the browser.
|
||||
* The feature is conditionally compiled, i.e. it
|
||||
* can be disabled with --disable-fast-redirects,
|
||||
* plus it must be activated by a "fast-redirects"
|
||||
* line in the config file, has its own log level
|
||||
* and of course wants to be displayed by show-proxy-args
|
||||
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||
* all the fumbling with configure.in and acconfig.h
|
||||
* were *way* more work than the feature itself :-(
|
||||
*
|
||||
* - Because a generic redirect template was needed for
|
||||
* this, tinygif = 3 now uses the same.
|
||||
*
|
||||
* - Moved GIFs, and other static HTTP response templates
|
||||
* to project.h
|
||||
*
|
||||
* - Many minor fixes
|
||||
*
|
||||
* - Removed some >400 CRs again (Jon, you really worked
|
||||
* a lot! ;-)
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:45 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
@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
|
||||
|
||||
/*
|
||||
* Status of the code: "alpha", "beta" or "stable".
|
||||
*/
|
||||
#undef CODE_STATUS
|
||||
|
||||
/*
|
||||
* Should pcre be statically built in instead of linkling with libpcre?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcre and user preferences). The name is ugly, but pcre needs it.
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#undef STATIC_PCRE
|
||||
|
||||
/*
|
||||
* Should pcrs be statically built in instead of linkling with libpcrs?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcrs and user preferences).
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#undef STATIC_PCRS
|
||||
|
||||
/*
|
||||
* Allows the use of an ACL to control access to the proxy by IP address.
|
||||
*/
|
||||
#undef FEATURE_ACL
|
||||
|
||||
/*
|
||||
* Enables the web-based configuration (actionsfile) editor. If you
|
||||
* have a shared proxy, you might want to turn this off.
|
||||
*/
|
||||
#undef FEATURE_CGI_EDIT_ACTIONS
|
||||
|
||||
/*
|
||||
* Allows the use of jar files to capture cookies.
|
||||
*/
|
||||
#undef FEATURE_COOKIE_JAR
|
||||
|
||||
/*
|
||||
* Locally redirect remote script-redirect URLs
|
||||
*/
|
||||
#undef FEATURE_FAST_REDIRECTS
|
||||
|
||||
/*
|
||||
* Bypass filtering for 1 page only
|
||||
*/
|
||||
#undef FEATURE_FORCE_LOAD
|
||||
|
||||
/*
|
||||
* Allow blocking using images as well as HTML.
|
||||
* If you do not define this then everything is blocked as HTML.
|
||||
*
|
||||
* Note that this is required if you want to use FEATURE_IMAGE_DETECT_MSIE.
|
||||
*/
|
||||
#undef FEATURE_IMAGE_BLOCKING
|
||||
|
||||
/*
|
||||
* Detect image requests automatically for MSIE. Will fall back to
|
||||
* other image-detection methods (i.e. "+image" permission) for other
|
||||
* browsers.
|
||||
*
|
||||
* You must also define FEATURE_IMAGE_BLOCKING to use this feature.
|
||||
*
|
||||
* 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 FEATURE_IMAGE_DETECT_MSIE
|
||||
|
||||
/*
|
||||
* Kills JavaScript popups - window.open, onunload, etc.
|
||||
*/
|
||||
#undef FEATURE_KILL_POPUPS
|
||||
|
||||
/*
|
||||
* Use PNG instead of GIF for built-in images
|
||||
*/
|
||||
#undef FEATURE_NO_GIFS
|
||||
|
||||
/*
|
||||
* Allow to shutdown Privoxy through the webinterface.
|
||||
*/
|
||||
#undef FEATURE_GRACEFUL_TERMINATION
|
||||
|
||||
/*
|
||||
* Allow PCRE syntax in host patterns.
|
||||
*/
|
||||
#undef FEATURE_EXTENDED_HOST_PATTERNS
|
||||
|
||||
/*
|
||||
* Keep outgoing connections alive if possible.
|
||||
*/
|
||||
#undef FEATURE_CONNECTION_KEEP_ALIVE
|
||||
|
||||
/*
|
||||
* Use POSIX threads instead of native threads.
|
||||
*/
|
||||
#undef FEATURE_PTHREAD
|
||||
|
||||
/*
|
||||
* Enables statistics function.
|
||||
*/
|
||||
#undef FEATURE_STATISTICS
|
||||
|
||||
/*
|
||||
* Allow Privoxy 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,
|
||||
* or use the handy "Disable" menu option in the Windows GUI.
|
||||
*/
|
||||
#undef FEATURE_TOGGLE
|
||||
|
||||
/*
|
||||
* Allows the use of trust files.
|
||||
*/
|
||||
#undef FEATURE_TRUST
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Makes the system libraries thread safe.
|
||||
*/
|
||||
#undef _REENTRANT
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Without this, many important functions are not
|
||||
* defined in the system headers.
|
||||
*/
|
||||
#undef __EXTENSIONS__
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with MultiThreading?)
|
||||
*/
|
||||
#undef __MT__
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyname_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
#undef HAVE_GETHOSTBYNAME_R_6_ARGS
|
||||
#undef HAVE_GETHOSTBYNAME_R_5_ARGS
|
||||
#undef HAVE_GETHOSTBYNAME_R_3_ARGS
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyaddr_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
#undef HAVE_GETHOSTBYADDR_R_8_ARGS
|
||||
#undef HAVE_GETHOSTBYADDR_R_7_ARGS
|
||||
#undef HAVE_GETHOSTBYADDR_R_5_ARGS
|
||||
|
||||
/* Defined if you have gmtime_r and localtime_r with a signature
|
||||
* of (struct time *, struct tm *)
|
||||
*/
|
||||
#undef HAVE_GMTIME_R
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
/* Define to 'int' if <sys/socket.h> doesn't have it.
|
||||
*/
|
||||
#undef socklen_t
|
||||
|
||||
/* Define if pcre.h must be included as <pcre/pcre.h>
|
||||
*/
|
||||
#undef PCRE_H_IN_SUBDIR
|
||||
|
||||
/* Define if pcreposix.h must be included as <pcre/pcreposix.h>
|
||||
*/
|
||||
#undef PCREPOSIX_H_IN_SUBDIR
|
||||
|
||||
@BOTTOM@
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with ANSI Standard C?)
|
||||
*/
|
||||
#ifndef __STDC__
|
||||
#define __STDC__ 1
|
||||
#endif /* ndef __STDC__ */
|
||||
|
||||
/*
|
||||
* Need to set up this define only for the Pthreads library for
|
||||
* Win32, available from http://sources.redhat.com/pthreads-win32/
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(_WIN32)
|
||||
#define __CLEANUP_C
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(_WIN32) */
|
||||
|
||||
/*
|
||||
* BEOS does not currently support POSIX threads.
|
||||
* This *should* be detected by ./configure, but let's be sure.
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(__BEOS__)
|
||||
#error BEOS does not support pthread - please run ./configure again with "--disable-pthread"
|
||||
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(__BEOS__) */
|
||||
|
||||
/*
|
||||
* On OpenBSD and maybe also FreeBSD, gcc doesn't define the cpp
|
||||
* symbol unix; it defines __unix__ and sometimes not even that:
|
||||
*/
|
||||
#if ( defined(__unix__) || defined(__NetBSD__) ) && !defined(unix)
|
||||
#define unix 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
|
||||
* under VC++, and it usually gives many wierd error messages. Let's make
|
||||
* the error messages understandable, by bailing out now.
|
||||
*/
|
||||
#ifdef _MSC_VER
|
||||
#error For MS VC++, please use vc_config_winthreads.h or vc_config_pthreads.h. You can usually do this by selecting the "Build", "Clean" menu option.
|
||||
#endif /* def _MSC_VER */
|
||||
|
||||
#endif /* CONFIG_H_INCLUDED */
|
|
@ -0,0 +1,306 @@
|
|||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/actionlist.h,v $
|
||||
*
|
||||
* Purpose : Master list of supported actions.
|
||||
* Not really a header, since it generates code.
|
||||
* This is included (3 times!) from actions.c
|
||||
* Each time, the following macros are defined to
|
||||
* suitable values beforehand:
|
||||
* DEFINE_ACTION_MULTI()
|
||||
* DEFINE_ACTION_STRING()
|
||||
* DEFINE_ACTION_BOOL()
|
||||
* DEFINE_ACTION_ALIAS
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2008 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: actionlist.h,v $
|
||||
* Revision 1.36 2008/09/20 10:04:33 fabiankeil
|
||||
* Remove hide-forwarded-for-headers action which has
|
||||
* been obsoleted by change-x-forwarded-for{block}.
|
||||
*
|
||||
* Revision 1.35 2008/09/19 15:43:54 fabiankeil
|
||||
* Fix sorting.
|
||||
*
|
||||
* Revision 1.34 2008/09/19 15:26:28 fabiankeil
|
||||
* Add change-x-forwarded-for{} action to block or add
|
||||
* X-Forwarded-For headers. Mostly based on code removed
|
||||
* before 3.0.7.
|
||||
*
|
||||
* Revision 1.33 2008/03/29 12:13:45 fabiankeil
|
||||
* Remove send-wafer and send-vanilla-wafer actions.
|
||||
*
|
||||
* Revision 1.32 2008/03/28 15:13:42 fabiankeil
|
||||
* Remove inspect-jpegs action.
|
||||
*
|
||||
* Revision 1.31 2008/03/27 18:27:20 fabiankeil
|
||||
* Remove kill-popups action.
|
||||
*
|
||||
* Revision 1.30 2008/03/04 18:30:34 fabiankeil
|
||||
* Remove the treat-forbidden-connects-like-blocks action. We now
|
||||
* use the "blocked" page for forbidden CONNECT requests by default.
|
||||
*
|
||||
* Revision 1.29 2008/03/01 14:00:43 fabiankeil
|
||||
* Let the block action take the reason for the block
|
||||
* as argument and show it on the "blocked" page.
|
||||
*
|
||||
* Revision 1.28 2007/12/11 21:08:29 fabiankeil
|
||||
* Let the CGI editor suggest a forward-override
|
||||
* parameter whose syntax is actually valid.
|
||||
*
|
||||
* Revision 1.27 2007/11/10 15:04:08 fabiankeil
|
||||
* Tell the CGI editor about +hide-referrer{conditional-forge}.
|
||||
*
|
||||
* Revision 1.26 2007/06/01 16:54:28 fabiankeil
|
||||
* Add forward-override{} to change the forwarding settings through
|
||||
* action sections. This is mainly interesting to forward different
|
||||
* clients differently (for example based on User-Agent or request
|
||||
* origin).
|
||||
*
|
||||
* Revision 1.25 2007/04/15 16:39:20 fabiankeil
|
||||
* Introduce tags as alternative way to specify which
|
||||
* actions apply to a request. At the moment tags can be
|
||||
* created based on client and server headers.
|
||||
*
|
||||
* Revision 1.24 2007/03/20 15:16:34 fabiankeil
|
||||
* Use dedicated header filter actions instead of abusing "filter".
|
||||
* Replace "filter-client-headers" and "filter-client-headers"
|
||||
* with "server-header-filter" and "client-header-filter".
|
||||
*
|
||||
* Revision 1.23 2006/10/09 10:26:18 fabiankeil
|
||||
* Changed the path in set-image-blocker's redirection default to
|
||||
* "send-banner?type=pattern" instead of "show-banner?type=pattern"
|
||||
* which isn't caught by Privoxy. Fixes BR 1573468.
|
||||
*
|
||||
* Changed hide-user-agent's default value to "Privoxy VERSION".
|
||||
*
|
||||
* Changed hide-referrer's default fake value to "http://www.privoxy.org/".
|
||||
* A static referrer is obviously fake anyway, so we might as well
|
||||
* advertise ourselves.
|
||||
*
|
||||
* Revision 1.22 2006/09/01 17:14:18 hal9
|
||||
* Re-ordered the actions list so that they display in the actions editor in
|
||||
* alphabetical order. Some of the new actions were "out of order".
|
||||
*
|
||||
* Revision 1.21 2006/08/14 08:25:19 fabiankeil
|
||||
* Split filter-headers{} into filter-client-headers{}
|
||||
* and filter-server-headers{}.
|
||||
* Added parse_header_time() to share some code.
|
||||
* Replaced timegm() with mktime().
|
||||
*
|
||||
* Revision 1.20 2006/08/03 02:46:41 david__schmidt
|
||||
* Incorporate Fabian Keil's patch work:
http://www.fabiankeil.de/sourcecode/privoxy/
|
||||
*
|
||||
* Revision 1.19 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.17.2.3 2004/10/03 12:53:32 david__schmidt
|
||||
* Add the ability to check jpeg images for invalid
|
||||
* lengths of comment blocks. Defensive strategy
|
||||
* against the exploit:
|
||||
* Microsoft Security Bulletin MS04-028
|
||||
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||
* Allow Code Execution (833987)
|
||||
* Enabled with +inspect-jpegs in actions files.
|
||||
*
|
||||
* Revision 1.17.2.2 2002/09/25 15:25:25 oes
|
||||
* Added more aliases for prehistoric action names
|
||||
*
|
||||
* Revision 1.17.2.1 2002/08/02 12:50:47 oes
|
||||
* Consistency with docs: Change default name for action from hide-referer to hide-referrer
|
||||
*
|
||||
* Revision 1.17 2002/05/14 21:25:55 oes
|
||||
* Renamed prevent-(setting/reading)-cookies to crunch-(incoming/outgoing)-cookies
|
||||
*
|
||||
* Revision 1.16 2002/04/24 02:15:18 oes
|
||||
* Renamed actions as discussed, Aliased old action names to new ones.
|
||||
*
|
||||
* Revision 1.15 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.14 2002/03/24 16:32:08 jongfoster
|
||||
* Removing logo option
|
||||
*
|
||||
* Revision 1.13 2002/03/24 15:23:33 jongfoster
|
||||
* Name changes
|
||||
*
|
||||
* Revision 1.12 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.11 2002/03/12 01:42:49 oes
|
||||
* Introduced modular filters
|
||||
*
|
||||
* Revision 1.10 2002/03/08 18:19:14 jongfoster
|
||||
* Adding +image-blocker{pattern} option to edit interface
|
||||
*
|
||||
* Revision 1.9 2001/11/22 21:58:41 jongfoster
|
||||
* Adding action +no-cookies-keep
|
||||
*
|
||||
* Revision 1.8 2001/10/10 16:42:52 oes
|
||||
* Fixed a bug, Added +limit-connect string action
|
||||
*
|
||||
* Revision 1.7 2001/10/07 15:33:59 oes
|
||||
* Introduced a +no-compression action
|
||||
* Introduced a +downgrade action
|
||||
*
|
||||
* Revision 1.6 2001/09/16 15:47:37 jongfoster
|
||||
* First version of CGI-based edit interface. This is very much a
|
||||
* work-in-progress, and you can't actually use it to edit anything
|
||||
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||
* to have any effect.
|
||||
*
|
||||
* Revision 1.5 2001/07/18 12:27:03 oes
|
||||
* Changed deanimate-gifs to string action
|
||||
*
|
||||
* Revision 1.4 2001/07/13 13:52:12 oes
|
||||
* - Formatting
|
||||
* - Introduced new action ACTION_DEANIMATE
|
||||
*
|
||||
* Revision 1.3 2001/06/07 23:03:56 jongfoster
|
||||
* Added standard comment at top of file.
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
#if !(defined(DEFINE_ACTION_BOOL) && defined(DEFINE_ACTION_MULTI) && defined(DEFINE_ACTION_STRING))
|
||||
#error Please define lots of macros before including "actionlist.h".
|
||||
#endif /* !defined(all the DEFINE_ACTION_xxx macros) */
|
||||
|
||||
#ifndef DEFINE_CGI_PARAM_RADIO
|
||||
#define DEFINE_CGI_PARAM_RADIO(name, bit, index, value, is_default)
|
||||
#define DEFINE_CGI_PARAM_CUSTOM(name, bit, index, default_val)
|
||||
#define DEFINE_CGI_PARAM_NO_RADIO(name, bit, index, default_val)
|
||||
#endif /* ndef DEFINE_CGI_PARAM_RADIO */
|
||||
|
||||
DEFINE_ACTION_MULTI ("add-header", ACTION_MULTI_ADD_HEADER)
|
||||
DEFINE_ACTION_STRING ("block", ACTION_BLOCK, ACTION_STRING_BLOCK)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("block", ACTION_BLOCK, ACTION_STRING_BLOCK, "No reason specified.")
|
||||
DEFINE_ACTION_STRING ("change-x-forwarded-for", ACTION_CHANGE_X_FORWARDED_FOR, ACTION_STRING_CHANGE_X_FORWARDED_FOR)
|
||||
DEFINE_CGI_PARAM_RADIO ("change-x-forwarded-for", ACTION_CHANGE_X_FORWARDED_FOR, ACTION_STRING_CHANGE_X_FORWARDED_FOR, "block", 0)
|
||||
DEFINE_CGI_PARAM_RADIO ("change-x-forwarded-for", ACTION_CHANGE_X_FORWARDED_FOR, ACTION_STRING_CHANGE_X_FORWARDED_FOR, "add", 1)
|
||||
DEFINE_ACTION_MULTI ("client-header-filter", ACTION_MULTI_CLIENT_HEADER_FILTER)
|
||||
DEFINE_ACTION_MULTI ("client-header-tagger", ACTION_MULTI_CLIENT_HEADER_TAGGER)
|
||||
DEFINE_ACTION_STRING ("content-type-overwrite", ACTION_CONTENT_TYPE_OVERWRITE, ACTION_STRING_CONTENT_TYPE)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("content-type-overwrite", ACTION_CONTENT_TYPE_OVERWRITE, ACTION_STRING_CONTENT_TYPE, "text/html")
|
||||
DEFINE_ACTION_STRING ("crunch-client-header", ACTION_CRUNCH_CLIENT_HEADER, ACTION_STRING_CLIENT_HEADER)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("crunch-client-header", ACTION_CRUNCH_CLIENT_HEADER, ACTION_STRING_CLIENT_HEADER, "X-Whatever:")
|
||||
DEFINE_ACTION_BOOL ("crunch-if-none-match", ACTION_CRUNCH_IF_NONE_MATCH)
|
||||
DEFINE_ACTION_BOOL ("crunch-incoming-cookies", ACTION_NO_COOKIE_SET)
|
||||
DEFINE_ACTION_BOOL ("crunch-outgoing-cookies", ACTION_NO_COOKIE_READ)
|
||||
DEFINE_ACTION_STRING ("crunch-server-header", ACTION_CRUNCH_SERVER_HEADER, ACTION_STRING_SERVER_HEADER)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("crunch-server-header", ACTION_CRUNCH_SERVER_HEADER, ACTION_STRING_SERVER_HEADER, "X-Whatever:")
|
||||
DEFINE_ACTION_STRING ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE)
|
||||
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "first", 0)
|
||||
DEFINE_CGI_PARAM_RADIO ("deanimate-gifs", ACTION_DEANIMATE, ACTION_STRING_DEANIMATE, "last", 1)
|
||||
DEFINE_ACTION_BOOL ("downgrade-http-version", ACTION_DOWNGRADE)
|
||||
DEFINE_ACTION_STRING ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS)
|
||||
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "simple-check", 0)
|
||||
DEFINE_CGI_PARAM_RADIO ("fast-redirects", ACTION_FAST_REDIRECTS, ACTION_STRING_FAST_REDIRECTS, "check-decoded-url", 1)
|
||||
DEFINE_ACTION_MULTI ("filter", ACTION_MULTI_FILTER)
|
||||
DEFINE_ACTION_BOOL ("force-text-mode", ACTION_FORCE_TEXT_MODE)
|
||||
DEFINE_ACTION_STRING ("forward-override", ACTION_FORWARD_OVERRIDE, ACTION_STRING_FORWARD_OVERRIDE)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("forward-override", ACTION_FORWARD_OVERRIDE, ACTION_STRING_FORWARD_OVERRIDE, "forward .")
|
||||
DEFINE_ACTION_BOOL ("handle-as-empty-document", ACTION_HANDLE_AS_EMPTY_DOCUMENT)
|
||||
DEFINE_ACTION_BOOL ("handle-as-image", ACTION_IMAGE)
|
||||
DEFINE_ACTION_STRING ("hide-accept-language", ACTION_HIDE_ACCEPT_LANGUAGE, ACTION_STRING_LANGUAGE)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-accept-language", ACTION_HIDE_ACCEPT_LANGUAGE, ACTION_STRING_LANGUAGE, "block", 0)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("hide-accept-language", ACTION_HIDE_ACCEPT_LANGUAGE, ACTION_STRING_LANGUAGE, "de-de")
|
||||
DEFINE_ACTION_STRING ("hide-content-disposition", ACTION_HIDE_CONTENT_DISPOSITION, ACTION_STRING_CONTENT_DISPOSITION)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-content-disposition", ACTION_HIDE_CONTENT_DISPOSITION, ACTION_STRING_CONTENT_DISPOSITION, "block", 0)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("hide-content-disposition", ACTION_HIDE_CONTENT_DISPOSITION, ACTION_STRING_CONTENT_DISPOSITION, "attachment; filename=WHATEVER.txt")
|
||||
DEFINE_ACTION_STRING ("hide-from-header", ACTION_HIDE_FROM, ACTION_STRING_FROM)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-from-header", ACTION_HIDE_FROM, ACTION_STRING_FROM, "block", 1)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("hide-from-header", ACTION_HIDE_FROM, ACTION_STRING_FROM, "spam_me_senseless@sittingduck.xyz")
|
||||
DEFINE_ACTION_STRING ("hide-if-modified-since", ACTION_HIDE_IF_MODIFIED_SINCE, ACTION_STRING_IF_MODIFIED_SINCE)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-if-modified-since", ACTION_HIDE_IF_MODIFIED_SINCE, ACTION_STRING_IF_MODIFIED_SINCE, "block", 0)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("hide-if-modified-since", ACTION_HIDE_IF_MODIFIED_SINCE, ACTION_STRING_IF_MODIFIED_SINCE, "-1")
|
||||
DEFINE_ACTION_STRING ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER, "conditional-forge", 3)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER, "conditional-block", 2)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER, "forge", 1)
|
||||
DEFINE_CGI_PARAM_RADIO ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER, "block", 0)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("hide-referrer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER, "http://www.privoxy.org/")
|
||||
DEFINE_ACTION_STRING ("hide-user-agent", ACTION_HIDE_USER_AGENT, ACTION_STRING_USER_AGENT)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("hide-user-agent", ACTION_HIDE_USER_AGENT, ACTION_STRING_USER_AGENT, "Privoxy " VERSION)
|
||||
DEFINE_ACTION_STRING ("limit-connect", ACTION_LIMIT_CONNECT, ACTION_STRING_LIMIT_CONNECT)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("limit-connect", ACTION_LIMIT_CONNECT, ACTION_STRING_LIMIT_CONNECT, "443")
|
||||
DEFINE_ACTION_STRING ("overwrite-last-modified", ACTION_OVERWRITE_LAST_MODIFIED, ACTION_STRING_LAST_MODIFIED)
|
||||
DEFINE_CGI_PARAM_RADIO ("overwrite-last-modified", ACTION_OVERWRITE_LAST_MODIFIED, ACTION_STRING_LAST_MODIFIED, "block", 0)
|
||||
DEFINE_CGI_PARAM_RADIO ("overwrite-last-modified", ACTION_OVERWRITE_LAST_MODIFIED, ACTION_STRING_LAST_MODIFIED, "reset-to-request-time", 1)
|
||||
DEFINE_CGI_PARAM_RADIO ("overwrite-last-modified", ACTION_OVERWRITE_LAST_MODIFIED, ACTION_STRING_LAST_MODIFIED, "randomize", 2)
|
||||
DEFINE_ACTION_BOOL ("prevent-compression", ACTION_NO_COMPRESSION)
|
||||
DEFINE_ACTION_STRING ("redirect", ACTION_REDIRECT, ACTION_STRING_REDIRECT)
|
||||
DEFINE_CGI_PARAM_NO_RADIO("redirect", ACTION_REDIRECT, ACTION_STRING_REDIRECT, "http://localhost/")
|
||||
DEFINE_ACTION_MULTI ("server-header-filter", ACTION_MULTI_SERVER_HEADER_FILTER)
|
||||
DEFINE_ACTION_MULTI ("server-header-tagger", ACTION_MULTI_SERVER_HEADER_TAGGER)
|
||||
DEFINE_ACTION_BOOL ("session-cookies-only", ACTION_NO_COOKIE_KEEP)
|
||||
DEFINE_ACTION_STRING ("set-image-blocker", ACTION_IMAGE_BLOCKER, ACTION_STRING_IMAGE_BLOCKER)
|
||||
DEFINE_CGI_PARAM_RADIO ("set-image-blocker", ACTION_IMAGE_BLOCKER, ACTION_STRING_IMAGE_BLOCKER, "pattern", 1)
|
||||
DEFINE_CGI_PARAM_RADIO ("set-image-blocker", ACTION_IMAGE_BLOCKER, ACTION_STRING_IMAGE_BLOCKER, "blank", 0)
|
||||
DEFINE_CGI_PARAM_CUSTOM ("set-image-blocker", ACTION_IMAGE_BLOCKER, ACTION_STRING_IMAGE_BLOCKER, CGI_PREFIX "send-banner?type=pattern")
|
||||
|
||||
#if DEFINE_ACTION_ALIAS
|
||||
|
||||
/*
|
||||
* Alternative spellings
|
||||
*/
|
||||
DEFINE_ACTION_STRING ("hide-referer", ACTION_HIDE_REFERER, ACTION_STRING_REFERER)
|
||||
DEFINE_ACTION_BOOL ("prevent-keeping-cookies", ACTION_NO_COOKIE_KEEP)
|
||||
|
||||
/*
|
||||
* Pre-3.0.7 (pseudo) compatibility
|
||||
*/
|
||||
DEFINE_ACTION_MULTI ("filter-client-headers", ACTION_MULTI_CLIENT_HEADER_FILTER)
|
||||
DEFINE_ACTION_MULTI ("filter-server-headers", ACTION_MULTI_SERVER_HEADER_FILTER)
|
||||
|
||||
/*
|
||||
* Pre-3.0 compatibility
|
||||
*/
|
||||
DEFINE_ACTION_BOOL ("no-cookie-read", ACTION_NO_COOKIE_READ)
|
||||
DEFINE_ACTION_BOOL ("no-cookie-set", ACTION_NO_COOKIE_SET)
|
||||
DEFINE_ACTION_BOOL ("prevent-reading-cookies", ACTION_NO_COOKIE_READ)
|
||||
DEFINE_ACTION_BOOL ("prevent-setting-cookies", ACTION_NO_COOKIE_SET)
|
||||
DEFINE_ACTION_BOOL ("downgrade", ACTION_DOWNGRADE)
|
||||
DEFINE_ACTION_STRING ("hide-from", ACTION_HIDE_FROM, ACTION_STRING_FROM)
|
||||
DEFINE_ACTION_BOOL ("image", ACTION_IMAGE)
|
||||
DEFINE_ACTION_STRING ("image-blocker", ACTION_IMAGE_BLOCKER, ACTION_STRING_IMAGE_BLOCKER)
|
||||
DEFINE_ACTION_BOOL ("no-compression", ACTION_NO_COMPRESSION)
|
||||
DEFINE_ACTION_BOOL ("no-cookies-keep", ACTION_NO_COOKIE_KEEP)
|
||||
DEFINE_ACTION_BOOL ("no-cookies-read", ACTION_NO_COOKIE_READ)
|
||||
DEFINE_ACTION_BOOL ("no-cookies-set", ACTION_NO_COOKIE_SET)
|
||||
#endif /* if DEFINE_ACTION_ALIAS */
|
||||
|
||||
#undef DEFINE_ACTION_MULTI
|
||||
#undef DEFINE_ACTION_STRING
|
||||
#undef DEFINE_ACTION_BOOL
|
||||
#undef DEFINE_ACTION_ALIAS
|
||||
#undef DEFINE_CGI_PARAM_CUSTOM
|
||||
#undef DEFINE_CGI_PARAM_RADIO
|
||||
#undef DEFINE_CGI_PARAM_NO_RADIO
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,187 @@
|
|||
#ifndef ACTIONS_H_INCLUDED
|
||||
#define ACTIONS_H_INCLUDED
|
||||
#define ACTIONS_H_VERSION "$Id: actions.h,v 1.18 2008/03/30 14:52:00 fabiankeil Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/actions.h,v $
|
||||
*
|
||||
* Purpose : Declares functions to work with actions files
|
||||
* Functions declared include: FIXME
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: actions.h,v $
|
||||
* Revision 1.18 2008/03/30 14:52:00 fabiankeil
|
||||
* Rename load_actions_file() and load_re_filterfile()
|
||||
* as they load multiple files "now".
|
||||
*
|
||||
* Revision 1.17 2008/01/28 20:17:40 fabiankeil
|
||||
* - Mark some parameters as immutable.
|
||||
* - Hide update_action_bits_for_all_tags() while it's unused.
|
||||
*
|
||||
* Revision 1.16 2007/04/17 18:21:45 fabiankeil
|
||||
* Split update_action_bits() into
|
||||
* update_action_bits_for_all_tags()
|
||||
* and update_action_bits_for_tag().
|
||||
*
|
||||
* Revision 1.15 2007/04/15 16:39:20 fabiankeil
|
||||
* Introduce tags as alternative way to specify which
|
||||
* actions apply to a request. At the moment tags can be
|
||||
* created based on client and server headers.
|
||||
*
|
||||
* Revision 1.14 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.12 2002/05/06 07:56:50 oes
|
||||
* Made actions_to_html independent of FEATURE_CGI_EDIT_ACTIONS
|
||||
*
|
||||
* Revision 1.11 2002/04/30 11:14:52 oes
|
||||
* Made csp the first parameter in *action_to_html
|
||||
*
|
||||
* Revision 1.10 2002/04/26 12:53:33 oes
|
||||
* - actions_to_html signature change
|
||||
* - current_action_to_text: renamed to current_action_to_html
|
||||
* and signature change
|
||||
*
|
||||
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.8 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.7 2002/03/16 23:54:06 jongfoster
|
||||
* Adding graceful termination feature, to help look for memory leaks.
|
||||
* If you enable this (which, by design, has to be done by hand
|
||||
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||
* will exit cleanly after the *next* request. It should free all the
|
||||
* memory that was used.
|
||||
*
|
||||
* Revision 1.6 2001/10/23 21:30:30 jongfoster
|
||||
* Adding error-checking to selected functions.
|
||||
*
|
||||
* Revision 1.5 2001/10/14 21:58:22 jongfoster
|
||||
* Adding support for the CGI-based editor:
|
||||
* - Exported get_actions()
|
||||
* - Added new function free_alias_list()
|
||||
* - Added support for {{settings}} and {{description}} blocks
|
||||
* in the actions file. They are currently ignored.
|
||||
* - Added restriction to only one {{alias}} block which must appear
|
||||
* first in the file, to simplify the editor's rewriting rules.
|
||||
* - Note that load_actions_file() is no longer used by the CGI-based
|
||||
* editor, but some of the other routines in this file are.
|
||||
*
|
||||
* Revision 1.4 2001/09/16 15:47:37 jongfoster
|
||||
* First version of CGI-based edit interface. This is very much a
|
||||
* work-in-progress, and you can't actually use it to edit anything
|
||||
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||
* to have any effect.
|
||||
*
|
||||
* Revision 1.3 2001/09/14 00:17:32 jongfoster
|
||||
* Tidying up memory allocation. New function init_action().
|
||||
*
|
||||
* Revision 1.2 2001/07/29 19:01:11 jongfoster
|
||||
* Changed _FILENAME_H to FILENAME_H_INCLUDED.
|
||||
* Added forward declarations for needed structures.
|
||||
*
|
||||
* Revision 1.1 2001/05/31 21:16:46 jongfoster
|
||||
* Moved functions to process the action list into this new file.
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
struct action_spec;
|
||||
struct current_action_spec;
|
||||
struct client_state;
|
||||
|
||||
|
||||
|
||||
/* This structure is used to hold user-defined aliases */
|
||||
struct action_alias
|
||||
{
|
||||
const char * name;
|
||||
struct action_spec action[1];
|
||||
struct action_alias * next;
|
||||
};
|
||||
|
||||
|
||||
extern jb_err get_actions (char *line,
|
||||
struct action_alias * alias_list,
|
||||
struct action_spec *cur_action);
|
||||
extern void free_alias_list(struct action_alias *alias_list);
|
||||
|
||||
extern void init_action(struct action_spec *dest);
|
||||
extern void free_action(struct action_spec *src);
|
||||
extern jb_err merge_actions (struct action_spec *dest,
|
||||
const struct action_spec *src);
|
||||
#if 0
|
||||
extern int update_action_bits_for_all_tags(struct client_state *csp);
|
||||
#endif
|
||||
extern int update_action_bits_for_tag(struct client_state *csp, const char *tag);
|
||||
extern jb_err copy_action (struct action_spec *dest,
|
||||
const struct action_spec *src);
|
||||
extern char * actions_to_text (const struct action_spec *action);
|
||||
extern char * actions_to_html (const struct client_state *csp,
|
||||
const struct action_spec *action);
|
||||
extern void init_current_action (struct current_action_spec *dest);
|
||||
extern void free_current_action (struct current_action_spec *src);
|
||||
extern jb_err merge_current_action (struct current_action_spec *dest,
|
||||
const struct action_spec *src);
|
||||
extern char * current_action_to_html(const struct client_state *csp,
|
||||
const struct current_action_spec *action);
|
||||
|
||||
extern jb_err get_action_token(char **line, char **name, char **value);
|
||||
extern void unload_actions_file(void *file_data);
|
||||
extern int load_action_files(struct client_state *csp);
|
||||
|
||||
#ifdef FEATURE_GRACEFUL_TERMINATION
|
||||
void unload_current_actions_file(void);
|
||||
#endif
|
||||
|
||||
|
||||
/* Revision control strings from this header and associated .c file */
|
||||
extern const char actions_rcs[];
|
||||
extern const char actions_h_rcs[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* ndef ACTIONS_H_INCLUDED */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
||||
|
|
@ -0,0 +1,341 @@
|
|||
const char amiga_rcs[] = "$Id: amiga.c,v 1.12 2007/01/07 07:40:52 joergs Exp $";
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/amiga.c,v $
|
||||
*
|
||||
* Purpose : Amiga-specific declarations.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: amiga.c,v $
|
||||
* Revision 1.12 2007/01/07 07:40:52 joergs
|
||||
* Added AmigaOS4 support and made it work on AmigaOS 3.x with current sources.
|
||||
*
|
||||
* Revision 1.11 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.8 2002/03/25 19:32:15 joergs
|
||||
* Name in version string changed from junkbuster to Privoxy.
|
||||
*
|
||||
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.6 2002/03/09 20:03:52 jongfoster
|
||||
* - Making various functions return int rather than size_t.
|
||||
* (Undoing a recent change). Since size_t is unsigned on
|
||||
* Windows, functions like read_socket that return -1 on
|
||||
* error cannot return a size_t.
|
||||
*
|
||||
* THIS WAS A MAJOR BUG - it caused frequent, unpredictable
|
||||
* crashes, and also frequently caused JB to jump to 100%
|
||||
* CPU and stay there. (Because it thought it had just
|
||||
* read ((unsigned)-1) == 4Gb of data...)
|
||||
*
|
||||
* - The signature of write_socket has changed, it now simply
|
||||
* returns success=0/failure=nonzero.
|
||||
*
|
||||
* - Trying to get rid of a few warnings --with-debug on
|
||||
* Windows, I've introduced a new type "jb_socket". This is
|
||||
* used for the socket file descriptors. On Windows, this
|
||||
* is SOCKET (a typedef for unsigned). Everywhere else, it's
|
||||
* an int. The error value can't be -1 any more, so it's
|
||||
* now JB_INVALID_SOCKET (which is -1 on UNIX, and in
|
||||
* Windows it maps to the #define INVALID_SOCKET.)
|
||||
*
|
||||
* - The signature of bind_port has changed.
|
||||
*
|
||||
* Revision 1.5 2002/03/03 09:18:03 joergs
|
||||
* Made jumbjuster work on AmigaOS again.
|
||||
*
|
||||
* Revision 1.4 2001/10/07 15:35:13 oes
|
||||
* Replaced 6 boolean members of csp with one bitmap (csp->flags)
|
||||
*
|
||||
* Revision 1.3 2001/09/12 22:54:51 joergs
|
||||
* Stacksize of main thread increased.
|
||||
*
|
||||
* Revision 1.2 2001/05/23 00:13:58 joergs
|
||||
* AmigaOS support fixed.
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:46 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef AMIGA
|
||||
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include "project.h"
|
||||
|
||||
const char amiga_h_rcs[] = AMIGA_H_VERSION;
|
||||
|
||||
static char *ver USED = "$VER: Privoxy " __AMIGAVERSION__ " (" __AMIGADATE__ ")";
|
||||
#ifdef __amigaos4__
|
||||
static char *stack USED = "$STACK: 524288";
|
||||
#else
|
||||
unsigned long __stack = 100*1024;
|
||||
#endif
|
||||
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);
|
||||
#ifdef __amigaos4__
|
||||
struct Library *SocketBase;
|
||||
#endif
|
||||
|
||||
Wait(SIGF_SINGLE);
|
||||
local_csp=(struct client_state *)(me->tc_UserData);
|
||||
me->tc_UserData=&UserData;
|
||||
SocketBase=(APTR)OpenLibrary("bsdsocket.library",3);
|
||||
if (SocketBase)
|
||||
#ifdef __amigaos4__
|
||||
{
|
||||
ISocket = (struct SocketIFace *)GetInterface(SocketBase, "main", 1, NULL);
|
||||
}
|
||||
if (ISocket)
|
||||
#endif
|
||||
{
|
||||
SetErrnoPtr(&(UserData.eno),sizeof(int));
|
||||
local_csp->cfd=ObtainSocket(local_csp->cfd, AF_INET, SOCK_STREAM, 0);
|
||||
if(JB_INVALID_SOCKET!=local_csp->cfd)
|
||||
{
|
||||
Signal(main_task,SIGF_SINGLE);
|
||||
serve((struct client_state *) local_csp);
|
||||
} else {
|
||||
local_csp->flags &= ~CSP_FLAG_ACTIVE;
|
||||
Signal(main_task,SIGF_SINGLE);
|
||||
}
|
||||
#ifdef __amigaos4__
|
||||
DropInterface((struct Interface *)ISocket);
|
||||
#endif
|
||||
CloseLibrary(SocketBase);
|
||||
} else {
|
||||
#ifdef __amigaos4__
|
||||
CloseLibrary(SocketBase);
|
||||
#endif
|
||||
local_csp->flags &= ~CSP_FLAG_ACTIVE;
|
||||
Signal(main_task,SIGF_SINGLE);
|
||||
}
|
||||
childs--;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BPTR olddir;
|
||||
|
||||
void amiga_exit(void)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
if (ISocket)
|
||||
#else
|
||||
if (SocketBase)
|
||||
#endif
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
struct Library *SocketBase = ISocket->Data.LibBase;
|
||||
DropInterface((struct Interface *)ISocket);
|
||||
#endif
|
||||
CloseLibrary(SocketBase);
|
||||
}
|
||||
CurrentDir(olddir);
|
||||
}
|
||||
|
||||
#ifndef __amigaos4__
|
||||
static struct SignalSemaphore memsem;
|
||||
static struct SignalSemaphore *memsemptr = NULL;
|
||||
#endif
|
||||
static struct UserData GlobalUserData;
|
||||
|
||||
void InitAmiga(void)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
struct Library *SocketBase;
|
||||
#endif
|
||||
|
||||
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);
|
||||
#ifdef __amigaos4__
|
||||
if (SocketBase)
|
||||
{
|
||||
ISocket = (struct SocketIFace *)GetInterface(SocketBase, "main", 1, NULL);
|
||||
}
|
||||
if (!ISocket)
|
||||
#else
|
||||
if (!SocketBase)
|
||||
#endif
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
CloseLibrary(SocketBase);
|
||||
#endif
|
||||
fprintf(stderr, "Can't open bsdsocket.library V3+\n");
|
||||
exit(RETURN_ERROR);
|
||||
}
|
||||
SetErrnoPtr(&(GlobalUserData.eno),sizeof(int));
|
||||
#ifndef __amigaos4__
|
||||
InitSemaphore(&memsem);
|
||||
memsemptr = &memsem;
|
||||
#endif
|
||||
|
||||
olddir=CurrentDir(GetProgramDir());
|
||||
atexit(amiga_exit);
|
||||
}
|
||||
|
||||
#ifndef __amigaos4__
|
||||
#ifdef __GNUC__
|
||||
#ifdef libnix
|
||||
/* multithreadingsafe 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, multithreading safe malloc/free required.
|
||||
#endif /* __GNUC__ */
|
||||
#endif /* !__amigaos4__ */
|
||||
|
||||
#endif /* def AMIGA */
|
|
@ -0,0 +1,176 @@
|
|||
#ifdef AMIGA
|
||||
#ifndef AMIGA_H_INCLUDED
|
||||
#define AMIGA_H_INCLUDED
|
||||
#define AMIGA_H_VERSION "$Id: amiga.h,v 1.12 2007/01/07 07:40:52 joergs Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/amiga.h,v $
|
||||
*
|
||||
* Purpose : Amiga-specific declarations.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: amiga.h,v $
|
||||
* Revision 1.12 2007/01/07 07:40:52 joergs
|
||||
* Added AmigaOS4 support and made it work on AmigaOS 3.x with current sources.
|
||||
*
|
||||
* Revision 1.11 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.9 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.8 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.7 2002/03/03 09:18:03 joergs
|
||||
* Made jumbjuster work on AmigaOS again.
|
||||
*
|
||||
* Revision 1.6 2001/10/13 12:46:08 joergs
|
||||
* Added #undef EINTR to avoid warnings
|
||||
*
|
||||
* Revision 1.5 2001/07/29 18:43:08 jongfoster
|
||||
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||
* ANSI C rules.
|
||||
*
|
||||
* Revision 1.4 2001/05/29 20:05:06 joergs
|
||||
* Fixed exit() macro not exiting if called before InitAmiga()
|
||||
* (junkbuster --help and --version).
|
||||
*
|
||||
* Revision 1.3 2001/05/25 21:53:27 jongfoster
|
||||
* Fixing indentation
|
||||
*
|
||||
* Revision 1.2 2001/05/23 00:13:58 joergs
|
||||
* AmigaOS support fixed.
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:46 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
#define _KERNEL
|
||||
#include <sys/socket.h>
|
||||
#undef _KERNEL
|
||||
|
||||
#define __NOLIBBASE__
|
||||
#define __NOGLOBALIFACE__
|
||||
#include <proto/socket.h>
|
||||
#undef __NOLIBBASE__
|
||||
#undef __NOGLOBALIFACE__
|
||||
|
||||
#define __CONSTLIBBASEDECL__ const
|
||||
#include <proto/exec.h>
|
||||
#include <exec/tasks.h>
|
||||
#include <proto/dos.h>
|
||||
#include <dos/dostags.h>
|
||||
|
||||
struct UserData
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
struct SocketIFace *si;
|
||||
#else
|
||||
struct Library *sb;
|
||||
#endif
|
||||
int eno;
|
||||
};
|
||||
|
||||
#ifdef __amigaos4__
|
||||
#define ISocket (((struct UserData *)(FindTask(NULL)->tc_UserData))->si)
|
||||
#undef errno
|
||||
#else
|
||||
#define SocketBase ((struct Library *)(((struct UserData *)(FindTask(NULL)->tc_UserData))->sb))
|
||||
#endif
|
||||
#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);
|
||||
|
||||
#ifdef __amigaos4__
|
||||
#define exit(x) \
|
||||
{ \
|
||||
if(main_task) \
|
||||
{ \
|
||||
if(main_task == FindTask(NULL)) \
|
||||
{ \
|
||||
while(childs) Delay(10*TICKS_PER_SECOND); exit(x); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
if (ISocket) \
|
||||
{ \
|
||||
struct Library *sb = ISocket->Data.LibBase; \
|
||||
DropInterface((struct Interface *)ISocket); \
|
||||
CloseLibrary(sb); \
|
||||
} \
|
||||
childs--; \
|
||||
RemTask(NULL); \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
exit(x); \
|
||||
} \
|
||||
}
|
||||
#else
|
||||
#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); \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
exit(x); \
|
||||
} \
|
||||
}
|
||||
|
||||
#undef HAVE_RANDOM
|
||||
#define h_errno 0
|
||||
#define HAVE_TIMEGM
|
||||
#define timegm(tm) mktime(tm)
|
||||
#endif /* __amigaos4__ */
|
||||
|
||||
#undef EINTR
|
||||
#define EINTR 0
|
||||
|
||||
#endif /* ndef AMIGA_H_INCLUDED */
|
||||
#endif /* def AMIGA */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,75 @@
|
|||
# This file was generated by Autom4te Sun Nov 6 20:57:04 UTC 2011.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'include' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_SUBST_TRACE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
|
@ -0,0 +1,726 @@
|
|||
m4trace:configure.in:570: -1- AC_INIT([jcc.c])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.in:570: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:570: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.in:570: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.in:570: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.in:570: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.in:570: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.in:583: -1- AC_CONFIG_HEADERS([config.h])
|
||||
m4trace:configure.in:584: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.in:584: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.in:584: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.in:584: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.in:584: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.in:584: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.in:584: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.in:626: -1- AC_SUBST([VERSION_MAJOR])
|
||||
m4trace:configure.in:626: -1- AC_SUBST_TRACE([VERSION_MAJOR])
|
||||
m4trace:configure.in:626: -1- m4_pattern_allow([^VERSION_MAJOR$])
|
||||
m4trace:configure.in:627: -1- AC_SUBST([VERSION_MINOR])
|
||||
m4trace:configure.in:627: -1- AC_SUBST_TRACE([VERSION_MINOR])
|
||||
m4trace:configure.in:627: -1- m4_pattern_allow([^VERSION_MINOR$])
|
||||
m4trace:configure.in:628: -1- AC_SUBST([VERSION_POINT])
|
||||
m4trace:configure.in:628: -1- AC_SUBST_TRACE([VERSION_POINT])
|
||||
m4trace:configure.in:628: -1- m4_pattern_allow([^VERSION_POINT$])
|
||||
m4trace:configure.in:629: -1- AC_SUBST([CODE_STATUS])
|
||||
m4trace:configure.in:629: -1- AC_SUBST_TRACE([CODE_STATUS])
|
||||
m4trace:configure.in:629: -1- m4_pattern_allow([^CODE_STATUS$])
|
||||
m4trace:configure.in:632: -1- AC_DEFINE_TRACE_LITERAL([VERSION_MAJOR])
|
||||
m4trace:configure.in:632: -1- m4_pattern_allow([^VERSION_MAJOR$])
|
||||
m4trace:configure.in:633: -1- AC_DEFINE_TRACE_LITERAL([VERSION_MINOR])
|
||||
m4trace:configure.in:633: -1- m4_pattern_allow([^VERSION_MINOR$])
|
||||
m4trace:configure.in:634: -1- AC_DEFINE_TRACE_LITERAL([VERSION_POINT])
|
||||
m4trace:configure.in:634: -1- m4_pattern_allow([^VERSION_POINT$])
|
||||
m4trace:configure.in:635: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.in:635: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.in:636: -1- AC_DEFINE_TRACE_LITERAL([CODE_STATUS])
|
||||
m4trace:configure.in:636: -1- m4_pattern_allow([^CODE_STATUS$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.in:647: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.in:647: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.in:647: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.in:648: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:648: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.in:648: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:648: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:648: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.in:648: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.in:648: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:648: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.in:648: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.in:649: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.in:649: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.in:649: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.in:649: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.in:649: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.in:649: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.in:649: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.in:649: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.in:649: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.in:649: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.in:650: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.in:650: -1- AC_SUBST_TRACE([LN_S])
|
||||
m4trace:configure.in:650: -1- m4_pattern_allow([^LN_S$])
|
||||
m4trace:configure.in:651: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.in:651: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.in:651: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.in:652: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.in:652: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.in:652: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.in:654: -1- AC_SUBST([GDB])
|
||||
m4trace:configure.in:654: -1- AC_SUBST_TRACE([GDB])
|
||||
m4trace:configure.in:654: -1- m4_pattern_allow([^GDB$])
|
||||
m4trace:configure.in:655: -1- AC_SUBST([BGROUPS])
|
||||
m4trace:configure.in:655: -1- AC_SUBST_TRACE([BGROUPS])
|
||||
m4trace:configure.in:655: -1- m4_pattern_allow([^BGROUPS$])
|
||||
m4trace:configure.in:656: -1- AC_SUBST([ID])
|
||||
m4trace:configure.in:656: -1- AC_SUBST_TRACE([ID])
|
||||
m4trace:configure.in:656: -1- m4_pattern_allow([^ID$])
|
||||
m4trace:configure.in:657: -1- AC_SUBST([ID])
|
||||
m4trace:configure.in:657: -1- AC_SUBST_TRACE([ID])
|
||||
m4trace:configure.in:657: -1- m4_pattern_allow([^ID$])
|
||||
m4trace:configure.in:658: -1- AC_SUBST([BGROUPS])
|
||||
m4trace:configure.in:658: -1- AC_SUBST_TRACE([BGROUPS])
|
||||
m4trace:configure.in:658: -1- m4_pattern_allow([^BGROUPS$])
|
||||
m4trace:configure.in:734: -1- AC_SUBST([USER])
|
||||
m4trace:configure.in:734: -1- AC_SUBST_TRACE([USER])
|
||||
m4trace:configure.in:734: -1- m4_pattern_allow([^USER$])
|
||||
m4trace:configure.in:771: -1- AC_SUBST([GROUP])
|
||||
m4trace:configure.in:771: -1- AC_SUBST_TRACE([GROUP])
|
||||
m4trace:configure.in:771: -1- m4_pattern_allow([^GROUP$])
|
||||
m4trace:configure.in:799: -1- _m4_warn([obsolete], [The macro `AC_MINGW32' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/specific.m4:345: AC_MINGW32 is expanded from...
|
||||
configure.in:799: the top level])
|
||||
m4trace:configure.in:799: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.in:800: -1- _m4_warn([obsolete], [The macro `AC_CYGWIN' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/specific.m4:317: AC_CYGWIN is expanded from...
|
||||
configure.in:800: the top level])
|
||||
m4trace:configure.in:800: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.in:849: -1- AC_SUBST([WIN_ONLY])
|
||||
m4trace:configure.in:849: -1- AC_SUBST_TRACE([WIN_ONLY])
|
||||
m4trace:configure.in:849: -1- m4_pattern_allow([^WIN_ONLY$])
|
||||
m4trace:configure.in:853: -1- AC_SUBST([WDUMP])
|
||||
m4trace:configure.in:853: -1- AC_SUBST_TRACE([WDUMP])
|
||||
m4trace:configure.in:853: -1- m4_pattern_allow([^WDUMP$])
|
||||
m4trace:configure.in:861: -1- AC_SUBST([DB2HTML])
|
||||
m4trace:configure.in:861: -1- AC_SUBST_TRACE([DB2HTML])
|
||||
m4trace:configure.in:861: -1- m4_pattern_allow([^DB2HTML$])
|
||||
m4trace:configure.in:864: -1- AC_SUBST([WDUMP])
|
||||
m4trace:configure.in:864: -1- AC_SUBST_TRACE([WDUMP])
|
||||
m4trace:configure.in:864: -1- m4_pattern_allow([^WDUMP$])
|
||||
m4trace:configure.in:865: -1- AC_SUBST([DB2HTML])
|
||||
m4trace:configure.in:865: -1- AC_SUBST_TRACE([DB2HTML])
|
||||
m4trace:configure.in:865: -1- m4_pattern_allow([^DB2HTML$])
|
||||
m4trace:configure.in:868: -1- AC_SUBST([RPMBIN])
|
||||
m4trace:configure.in:868: -1- AC_SUBST_TRACE([RPMBIN])
|
||||
m4trace:configure.in:868: -1- m4_pattern_allow([^RPMBIN$])
|
||||
m4trace:configure.in:875: -1- AC_SUBST([RPM_BASE])
|
||||
m4trace:configure.in:875: -1- AC_SUBST_TRACE([RPM_BASE])
|
||||
m4trace:configure.in:875: -1- m4_pattern_allow([^RPM_BASE$])
|
||||
m4trace:configure.in:878: -1- AC_SUBST([JADEBIN])
|
||||
m4trace:configure.in:878: -1- AC_SUBST_TRACE([JADEBIN])
|
||||
m4trace:configure.in:878: -1- m4_pattern_allow([^JADEBIN$])
|
||||
m4trace:configure.in:879: -1- AC_SUBST([JADEBIN])
|
||||
m4trace:configure.in:879: -1- AC_SUBST_TRACE([JADEBIN])
|
||||
m4trace:configure.in:879: -1- m4_pattern_allow([^JADEBIN$])
|
||||
m4trace:configure.in:882: -1- AC_SUBST([MAN2HTML])
|
||||
m4trace:configure.in:882: -1- AC_SUBST_TRACE([MAN2HTML])
|
||||
m4trace:configure.in:882: -1- m4_pattern_allow([^MAN2HTML$])
|
||||
m4trace:configure.in:883: -1- AC_SUBST([MAN2HTML])
|
||||
m4trace:configure.in:883: -1- AC_SUBST_TRACE([MAN2HTML])
|
||||
m4trace:configure.in:883: -1- m4_pattern_allow([^MAN2HTML$])
|
||||
m4trace:configure.in:890: -1- AC_SUBST([DOC_STATUS])
|
||||
m4trace:configure.in:890: -1- AC_SUBST_TRACE([DOC_STATUS])
|
||||
m4trace:configure.in:890: -1- m4_pattern_allow([^DOC_STATUS$])
|
||||
m4trace:configure.in:932: -1- AC_SUBST([JADECAT])
|
||||
m4trace:configure.in:932: -1- AC_SUBST_TRACE([JADECAT])
|
||||
m4trace:configure.in:932: -1- m4_pattern_allow([^JADECAT$])
|
||||
m4trace:configure.in:933: -1- AC_SUBST([DKPREFIX])
|
||||
m4trace:configure.in:933: -1- AC_SUBST_TRACE([DKPREFIX])
|
||||
m4trace:configure.in:933: -1- m4_pattern_allow([^DKPREFIX$])
|
||||
m4trace:configure.in:951: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.in:951: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.in:951: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.in:951: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.in:951: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.in:951: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.in:951: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.in:951: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
@%:@undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
@%:@undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
|
||||
@%:@undef HAVE_MEMORY_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.in:951: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:966: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_PTHREAD])
|
||||
m4trace:configure.in:966: -1- m4_pattern_allow([^FEATURE_PTHREAD$])
|
||||
m4trace:configure.in:973: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2688: AC_TRY_LINK is expanded from...
|
||||
configure.in:973: the top level])
|
||||
m4trace:configure.in:989: -1- AC_SUBST([PTHREAD_ONLY])
|
||||
m4trace:configure.in:989: -1- AC_SUBST_TRACE([PTHREAD_ONLY])
|
||||
m4trace:configure.in:989: -1- m4_pattern_allow([^PTHREAD_ONLY$])
|
||||
m4trace:configure.in:997: -1- AH_OUTPUT([HAVE_LIBNSL], [/* Define to 1 if you have the `nsl\' library (-lnsl). */
|
||||
@%:@undef HAVE_LIBNSL])
|
||||
m4trace:configure.in:997: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBNSL])
|
||||
m4trace:configure.in:997: -1- m4_pattern_allow([^HAVE_LIBNSL$])
|
||||
m4trace:configure.in:999: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:999: the top level])
|
||||
m4trace:configure.in:999: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYADDR_R_8_ARGS])
|
||||
m4trace:configure.in:999: -1- m4_pattern_allow([^HAVE_GETHOSTBYADDR_R_8_ARGS$])
|
||||
m4trace:configure.in:999: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:999: the top level])
|
||||
m4trace:configure.in:999: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYADDR_R_7_ARGS])
|
||||
m4trace:configure.in:999: -1- m4_pattern_allow([^HAVE_GETHOSTBYADDR_R_7_ARGS$])
|
||||
m4trace:configure.in:999: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:999: the top level])
|
||||
m4trace:configure.in:999: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYADDR_R_5_ARGS])
|
||||
m4trace:configure.in:999: -1- m4_pattern_allow([^HAVE_GETHOSTBYADDR_R_5_ARGS$])
|
||||
m4trace:configure.in:1043: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:1043: the top level])
|
||||
m4trace:configure.in:1043: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME_R_6_ARGS])
|
||||
m4trace:configure.in:1043: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME_R_6_ARGS$])
|
||||
m4trace:configure.in:1043: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:1043: the top level])
|
||||
m4trace:configure.in:1043: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME_R_5_ARGS])
|
||||
m4trace:configure.in:1043: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME_R_5_ARGS$])
|
||||
m4trace:configure.in:1043: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
|
||||
../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:1043: the top level])
|
||||
m4trace:configure.in:1043: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME_R_3_ARGS])
|
||||
m4trace:configure.in:1043: -1- m4_pattern_allow([^HAVE_GETHOSTBYNAME_R_3_ARGS$])
|
||||
m4trace:configure.in:1086: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:1086: the top level])
|
||||
m4trace:configure.in:1086: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GMTIME_R])
|
||||
m4trace:configure.in:1086: -1- m4_pattern_allow([^HAVE_GMTIME_R$])
|
||||
m4trace:configure.in:1104: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
|
||||
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
|
||||
../../lib/autoconf/functions.m4:60: AC_CHECK_FUNC is expanded from...
|
||||
configure.in:1104: the top level])
|
||||
m4trace:configure.in:1104: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LOCALTIME_R])
|
||||
m4trace:configure.in:1104: -1- m4_pattern_allow([^HAVE_LOCALTIME_R$])
|
||||
m4trace:configure.in:1136: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__])
|
||||
m4trace:configure.in:1136: -1- m4_pattern_allow([^__EXTENSIONS__$])
|
||||
m4trace:configure.in:1149: -1- AC_SUBST([SOCKET_LIB])
|
||||
m4trace:configure.in:1149: -1- AC_SUBST_TRACE([SOCKET_LIB])
|
||||
m4trace:configure.in:1149: -1- m4_pattern_allow([^SOCKET_LIB$])
|
||||
m4trace:configure.in:1158: -2- AC_DEFINE_TRACE_LITERAL([socklen_t])
|
||||
m4trace:configure.in:1158: -2- m4_pattern_allow([^socklen_t$])
|
||||
m4trace:configure.in:1158: -2- AH_OUTPUT([socklen_t], [/* Define to \'int\' if <sys/socket.h> doesn\'t have it. */
|
||||
@%:@undef socklen_t])
|
||||
m4trace:configure.in:1171: -1- AC_SUBST([SOCKET_LIB])
|
||||
m4trace:configure.in:1171: -1- AC_SUBST_TRACE([SOCKET_LIB])
|
||||
m4trace:configure.in:1171: -1- m4_pattern_allow([^SOCKET_LIB$])
|
||||
m4trace:configure.in:1202: -1- AC_SUBST([AMIGAOS_ONLY])
|
||||
m4trace:configure.in:1202: -1- AC_SUBST_TRACE([AMIGAOS_ONLY])
|
||||
m4trace:configure.in:1202: -1- m4_pattern_allow([^AMIGAOS_ONLY$])
|
||||
m4trace:configure.in:1210: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.in:1210: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.in:1210: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.in:1211: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR\'.
|
||||
*/
|
||||
@%:@undef HAVE_DIRENT_H])
|
||||
m4trace:configure.in:1211: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR\'.
|
||||
*/
|
||||
@%:@undef HAVE_SYS_NDIR_H])
|
||||
m4trace:configure.in:1211: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR\'.
|
||||
*/
|
||||
@%:@undef HAVE_SYS_DIR_H])
|
||||
m4trace:configure.in:1211: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR\'. */
|
||||
@%:@undef HAVE_NDIR_H])
|
||||
m4trace:configure.in:1212: -1- AC_DEFINE_TRACE_LITERAL([const])
|
||||
m4trace:configure.in:1212: -1- m4_pattern_allow([^const$])
|
||||
m4trace:configure.in:1212: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */
|
||||
@%:@undef const])
|
||||
m4trace:configure.in:1213: -1- AC_DEFINE_TRACE_LITERAL([size_t])
|
||||
m4trace:configure.in:1213: -1- m4_pattern_allow([^size_t$])
|
||||
m4trace:configure.in:1213: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
|
||||
@%:@undef size_t])
|
||||
m4trace:configure.in:1214: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
|
||||
m4trace:configure.in:1214: -1- m4_pattern_allow([^pid_t$])
|
||||
m4trace:configure.in:1214: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
|
||||
@%:@undef pid_t])
|
||||
m4trace:configure.in:1215: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME])
|
||||
m4trace:configure.in:1215: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$])
|
||||
m4trace:configure.in:1215: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
@%:@undef TIME_WITH_SYS_TIME])
|
||||
m4trace:configure.in:1216: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME])
|
||||
m4trace:configure.in:1216: -1- m4_pattern_allow([^TM_IN_SYS_TIME$])
|
||||
m4trace:configure.in:1216: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */
|
||||
@%:@undef TM_IN_SYS_TIME])
|
||||
m4trace:configure.in:1217: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT])
|
||||
m4trace:configure.in:1217: -1- m4_pattern_allow([^SIZEOF_INT$])
|
||||
m4trace:configure.in:1217: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of `int\', as computed by sizeof. */
|
||||
@%:@undef SIZEOF_INT])
|
||||
m4trace:configure.in:1218: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P])
|
||||
m4trace:configure.in:1218: -1- m4_pattern_allow([^SIZEOF_CHAR_P$])
|
||||
m4trace:configure.in:1218: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of `char *\', as computed by sizeof. */
|
||||
@%:@undef SIZEOF_CHAR_P])
|
||||
m4trace:configure.in:1219: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG])
|
||||
m4trace:configure.in:1219: -1- m4_pattern_allow([^SIZEOF_LONG$])
|
||||
m4trace:configure.in:1219: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of `long\', as computed by sizeof. */
|
||||
@%:@undef SIZEOF_LONG])
|
||||
m4trace:configure.in:1220: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG])
|
||||
m4trace:configure.in:1220: -1- m4_pattern_allow([^SIZEOF_LONG_LONG$])
|
||||
m4trace:configure.in:1220: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of `long long\', as computed by sizeof. */
|
||||
@%:@undef SIZEOF_LONG_LONG])
|
||||
m4trace:configure.in:1221: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SIZE_T])
|
||||
m4trace:configure.in:1221: -1- m4_pattern_allow([^SIZEOF_SIZE_T$])
|
||||
m4trace:configure.in:1221: -1- AH_OUTPUT([SIZEOF_SIZE_T], [/* The size of `size_t\', as computed by sizeof. */
|
||||
@%:@undef SIZEOF_SIZE_T])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_OS_H], [/* Define to 1 if you have the <OS.h> header file. */
|
||||
@%:@undef HAVE_OS_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
@%:@undef HAVE_ARPA_INET_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */
|
||||
@%:@undef HAVE_ERRNO_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
@%:@undef HAVE_FCNTL_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */
|
||||
@%:@undef HAVE_LIMITS_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */
|
||||
@%:@undef HAVE_LOCALE_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
|
||||
@%:@undef HAVE_NETDB_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
@%:@undef HAVE_NETINET_IN_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */
|
||||
@%:@undef HAVE_STDDEF_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_SYS_IOCTL_H], [/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
@%:@undef HAVE_SYS_IOCTL_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
@%:@undef HAVE_SYS_SOCKET_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
@%:@undef HAVE_SYS_TIME_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_SYS_TIMEB_H], [/* Define to 1 if you have the <sys/timeb.h> header file. */
|
||||
@%:@undef HAVE_SYS_TIMEB_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
@%:@undef HAVE_SYS_WAIT_H])
|
||||
m4trace:configure.in:1226: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:1232: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */
|
||||
@%:@undef HAVE_STRERROR])
|
||||
m4trace:configure.in:1232: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */
|
||||
@%:@undef HAVE_BCOPY])
|
||||
m4trace:configure.in:1232: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */
|
||||
@%:@undef HAVE_MEMMOVE])
|
||||
m4trace:configure.in:1236: -1- AC_DEFINE_TRACE_LITERAL([SETPGRP_VOID])
|
||||
m4trace:configure.in:1236: -1- m4_pattern_allow([^SETPGRP_VOID$])
|
||||
m4trace:configure.in:1236: -1- AH_OUTPUT([SETPGRP_VOID], [/* Define to 1 if the `setpgrp\' function takes no argument. */
|
||||
@%:@undef SETPGRP_VOID])
|
||||
m4trace:configure.in:1237: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete.
|
||||
You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from...
|
||||
configure.in:1237: the top level])
|
||||
m4trace:configure.in:1237: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
|
||||
m4trace:configure.in:1237: -1- m4_pattern_allow([^RETSIGTYPE$])
|
||||
m4trace:configure.in:1237: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
|
||||
@%:@undef RETSIGTYPE])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_ACCESS], [/* Define to 1 if you have the `access\' function. */
|
||||
@%:@undef HAVE_ACCESS])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_ATEXIT], [/* Define to 1 if you have the `atexit\' function. */
|
||||
@%:@undef HAVE_ATEXIT])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */
|
||||
@%:@undef HAVE_GETCWD])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETHOSTBYADDR], [/* Define to 1 if you have the `gethostbyaddr\' function. */
|
||||
@%:@undef HAVE_GETHOSTBYADDR])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETHOSTBYADDR_R], [/* Define to 1 if you have the `gethostbyaddr_r\' function. */
|
||||
@%:@undef HAVE_GETHOSTBYADDR_R])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */
|
||||
@%:@undef HAVE_GETHOSTBYNAME])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME_R], [/* Define to 1 if you have the `gethostbyname_r\' function. */
|
||||
@%:@undef HAVE_GETHOSTBYNAME_R])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
|
||||
@%:@undef HAVE_GETTIMEOFDAY])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_INET_NTOA], [/* Define to 1 if you have the `inet_ntoa\' function. */
|
||||
@%:@undef HAVE_INET_NTOA])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_LOCALTIME_R], [/* Define to 1 if you have the `localtime_r\' function. */
|
||||
@%:@undef HAVE_LOCALTIME_R])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_MEMCHR], [/* Define to 1 if you have the `memchr\' function. */
|
||||
@%:@undef HAVE_MEMCHR])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */
|
||||
@%:@undef HAVE_MEMMOVE])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */
|
||||
@%:@undef HAVE_MEMSET])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_POLL], [/* Define to 1 if you have the `poll\' function. */
|
||||
@%:@undef HAVE_POLL])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */
|
||||
@%:@undef HAVE_PUTENV])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_RANDOM], [/* Define to 1 if you have the `random\' function. */
|
||||
@%:@undef HAVE_RANDOM])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */
|
||||
@%:@undef HAVE_REGCOMP])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */
|
||||
@%:@undef HAVE_SELECT])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */
|
||||
@%:@undef HAVE_SETLOCALE])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
|
||||
@%:@undef HAVE_SNPRINTF])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */
|
||||
@%:@undef HAVE_SOCKET])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */
|
||||
@%:@undef HAVE_STRCHR])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
|
||||
@%:@undef HAVE_STRDUP])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */
|
||||
@%:@undef HAVE_STRERROR])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */
|
||||
@%:@undef HAVE_STRFTIME])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the `strlcat\' function. */
|
||||
@%:@undef HAVE_STRLCAT])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the `strlcpy\' function. */
|
||||
@%:@undef HAVE_STRLCPY])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRPTIME], [/* Define to 1 if you have the `strptime\' function. */
|
||||
@%:@undef HAVE_STRPTIME])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */
|
||||
@%:@undef HAVE_STRSTR])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */
|
||||
@%:@undef HAVE_STRTOUL])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_TIMEGM], [/* Define to 1 if you have the `timegm\' function. */
|
||||
@%:@undef HAVE_TIMEGM])
|
||||
m4trace:configure.in:1240: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */
|
||||
@%:@undef HAVE_TZSET])
|
||||
m4trace:configure.in:1249: -1- AC_DEFINE_TRACE_LITERAL([PCRE_H_IN_SUBDIR])
|
||||
m4trace:configure.in:1249: -1- m4_pattern_allow([^PCRE_H_IN_SUBDIR$])
|
||||
m4trace:configure.in:1259: -1- AC_DEFINE_TRACE_LITERAL([PCREPOSIX_H_IN_SUBDIR])
|
||||
m4trace:configure.in:1259: -1- m4_pattern_allow([^PCREPOSIX_H_IN_SUBDIR$])
|
||||
m4trace:configure.in:1284: -1- AC_DEFINE_TRACE_LITERAL([__MT__])
|
||||
m4trace:configure.in:1284: -1- m4_pattern_allow([^__MT__$])
|
||||
m4trace:configure.in:1294: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_TOGGLE])
|
||||
m4trace:configure.in:1294: -2- m4_pattern_allow([^FEATURE_TOGGLE$])
|
||||
m4trace:configure.in:1290: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_TOGGLE])
|
||||
m4trace:configure.in:1290: -1- m4_pattern_allow([^FEATURE_TOGGLE$])
|
||||
m4trace:configure.in:1300: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_FORCE_LOAD])
|
||||
m4trace:configure.in:1300: -2- m4_pattern_allow([^FEATURE_FORCE_LOAD$])
|
||||
m4trace:configure.in:1296: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_FORCE_LOAD])
|
||||
m4trace:configure.in:1296: -1- m4_pattern_allow([^FEATURE_FORCE_LOAD$])
|
||||
m4trace:configure.in:1306: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_FAST_REDIRECTS])
|
||||
m4trace:configure.in:1306: -2- m4_pattern_allow([^FEATURE_FAST_REDIRECTS$])
|
||||
m4trace:configure.in:1302: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_FAST_REDIRECTS])
|
||||
m4trace:configure.in:1302: -1- m4_pattern_allow([^FEATURE_FAST_REDIRECTS$])
|
||||
m4trace:configure.in:1312: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_STATISTICS])
|
||||
m4trace:configure.in:1312: -2- m4_pattern_allow([^FEATURE_STATISTICS$])
|
||||
m4trace:configure.in:1308: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_STATISTICS])
|
||||
m4trace:configure.in:1308: -1- m4_pattern_allow([^FEATURE_STATISTICS$])
|
||||
m4trace:configure.in:1314: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_IMAGE_DETECT_MSIE])
|
||||
m4trace:configure.in:1314: -1- m4_pattern_allow([^FEATURE_IMAGE_DETECT_MSIE$])
|
||||
m4trace:configure.in:1327: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_IMAGE_BLOCKING])
|
||||
m4trace:configure.in:1327: -2- m4_pattern_allow([^FEATURE_IMAGE_BLOCKING$])
|
||||
m4trace:configure.in:1321: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_IMAGE_BLOCKING])
|
||||
m4trace:configure.in:1321: -1- m4_pattern_allow([^FEATURE_IMAGE_BLOCKING$])
|
||||
m4trace:configure.in:1335: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_ACL])
|
||||
m4trace:configure.in:1335: -2- m4_pattern_allow([^FEATURE_ACL$])
|
||||
m4trace:configure.in:1329: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_ACL])
|
||||
m4trace:configure.in:1329: -1- m4_pattern_allow([^FEATURE_ACL$])
|
||||
m4trace:configure.in:1342: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_TRUST])
|
||||
m4trace:configure.in:1342: -2- m4_pattern_allow([^FEATURE_TRUST$])
|
||||
m4trace:configure.in:1337: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_TRUST])
|
||||
m4trace:configure.in:1337: -1- m4_pattern_allow([^FEATURE_TRUST$])
|
||||
m4trace:configure.in:1350: -2- AC_DEFINE_TRACE_LITERAL([FEATURE_CGI_EDIT_ACTIONS])
|
||||
m4trace:configure.in:1350: -2- m4_pattern_allow([^FEATURE_CGI_EDIT_ACTIONS$])
|
||||
m4trace:configure.in:1344: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_CGI_EDIT_ACTIONS])
|
||||
m4trace:configure.in:1344: -1- m4_pattern_allow([^FEATURE_CGI_EDIT_ACTIONS$])
|
||||
m4trace:configure.in:1352: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_NO_GIFS])
|
||||
m4trace:configure.in:1352: -1- m4_pattern_allow([^FEATURE_NO_GIFS$])
|
||||
m4trace:configure.in:1359: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_GRACEFUL_TERMINATION])
|
||||
m4trace:configure.in:1359: -1- m4_pattern_allow([^FEATURE_GRACEFUL_TERMINATION$])
|
||||
m4trace:configure.in:1365: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_EXTENDED_HOST_PATTERNS])
|
||||
m4trace:configure.in:1365: -1- m4_pattern_allow([^FEATURE_EXTENDED_HOST_PATTERNS$])
|
||||
m4trace:configure.in:1400: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_ZLIB])
|
||||
m4trace:configure.in:1400: -1- m4_pattern_allow([^FEATURE_ZLIB$])
|
||||
m4trace:configure.in:1400: -1- AH_OUTPUT([FEATURE_ZLIB], [/* Define to 1 to use compression through the zlib library. */
|
||||
@%:@undef FEATURE_ZLIB])
|
||||
m4trace:configure.in:1422: -1- AC_DEFINE_TRACE_LITERAL([STATIC_PCRE])
|
||||
m4trace:configure.in:1422: -1- m4_pattern_allow([^STATIC_PCRE$])
|
||||
m4trace:configure.in:1428: -1- AC_DEFINE_TRACE_LITERAL([FEATURE_CONNECTION_KEEP_ALIVE])
|
||||
m4trace:configure.in:1428: -1- m4_pattern_allow([^FEATURE_CONNECTION_KEEP_ALIVE$])
|
||||
m4trace:configure.in:1445: -1- AC_DEFINE_TRACE_LITERAL([STATIC_PCRS])
|
||||
m4trace:configure.in:1445: -1- m4_pattern_allow([^STATIC_PCRS$])
|
||||
m4trace:configure.in:1449: -1- AC_SUBST([STATIC_PCRE_ONLY])
|
||||
m4trace:configure.in:1449: -1- AC_SUBST_TRACE([STATIC_PCRE_ONLY])
|
||||
m4trace:configure.in:1449: -1- m4_pattern_allow([^STATIC_PCRE_ONLY$])
|
||||
m4trace:configure.in:1450: -1- AC_SUBST([STATIC_PCRS_ONLY])
|
||||
m4trace:configure.in:1450: -1- AC_SUBST_TRACE([STATIC_PCRS_ONLY])
|
||||
m4trace:configure.in:1450: -1- m4_pattern_allow([^STATIC_PCRS_ONLY$])
|
||||
m4trace:configure.in:1459: -1- AC_SUBST([SPECIAL_CFLAGS])
|
||||
m4trace:configure.in:1459: -1- AC_SUBST_TRACE([SPECIAL_CFLAGS])
|
||||
m4trace:configure.in:1459: -1- m4_pattern_allow([^SPECIAL_CFLAGS$])
|
||||
m4trace:configure.in:1461: -1- AC_SUBST([PTHREAD_LIB])
|
||||
m4trace:configure.in:1461: -1- AC_SUBST_TRACE([PTHREAD_LIB])
|
||||
m4trace:configure.in:1461: -1- m4_pattern_allow([^PTHREAD_LIB$])
|
||||
m4trace:configure.in:1463: -1- AC_CONFIG_FILES([GNUmakefile doc/source/ldp.dsl])
|
||||
m4trace:configure.in:1463: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
|
||||
You should run autoupdate.], [])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.in:1463: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.in:1463: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.in:1463: -1- AC_SUBST_TRACE([INSTALL])
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,289 @@
|
|||
#ifndef CGI_H_INCLUDED
|
||||
#define CGI_H_INCLUDED
|
||||
#define CGI_H_VERSION "$Id: cgi.h,v 1.35 2008/05/21 15:24:37 fabiankeil Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/cgi.h,v $
|
||||
*
|
||||
* Purpose : Declares functions to intercept request, generate
|
||||
* html or gif answers, and to compose HTTP resonses.
|
||||
*
|
||||
* Functions declared include:
|
||||
*
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: cgi.h,v $
|
||||
* Revision 1.35 2008/05/21 15:24:37 fabiankeil
|
||||
* Mark csp as immutable for a bunch of functions.
|
||||
*
|
||||
* Revision 1.34 2008/04/17 14:40:48 fabiankeil
|
||||
* Provide get_http_time() with the buffer size so it doesn't
|
||||
* have to blindly assume that the buffer is big enough.
|
||||
*
|
||||
* Revision 1.33 2007/01/28 13:41:17 fabiankeil
|
||||
* - Add HEAD support to finish_http_response.
|
||||
* - Add error favicon to internal HTML error messages.
|
||||
*
|
||||
* Revision 1.32 2006/12/17 17:53:39 fabiankeil
|
||||
* Suppress the toggle link if remote toggling is disabled.
|
||||
*
|
||||
* Revision 1.31 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.29.2.2 2004/02/17 13:30:23 oes
|
||||
* Moved cgi_error_disabled() from cgiedit.c to
|
||||
* cgi.c to re-enable build with --disable-editor.
|
||||
* Fixes Bug #892744. Thanks to Matthew Fischer
|
||||
* for spotting.
|
||||
*
|
||||
* Revision 1.29.2.1 2003/12/17 16:33:28 oes
|
||||
* Added prototype of new function cgi_redirect
|
||||
*
|
||||
* Revision 1.29 2002/05/19 11:33:21 jongfoster
|
||||
* If a CGI error was not handled, and propogated back to
|
||||
* dispatch_known_cgi(), then it was assumed to be "out of memory".
|
||||
* This gave a very misleading error message.
|
||||
*
|
||||
* Now other errors will cause a simple message giving the error
|
||||
* number and asking the user to report a bug.
|
||||
*
|
||||
* Bug report:
|
||||
* http://sourceforge.net/tracker/index.php?func=detail
|
||||
* &aid=557905&group_id=11118&atid=111118
|
||||
*
|
||||
* Revision 1.28 2002/04/26 12:54:03 oes
|
||||
* New function add_help_link
|
||||
*
|
||||
* Revision 1.27 2002/04/24 02:16:51 oes
|
||||
* Moved get_char_param, get_string_param and get_number_param here from cgiedit.c
|
||||
*
|
||||
* Revision 1.26 2002/04/10 13:38:35 oes
|
||||
* load_template signature changed
|
||||
*
|
||||
* Revision 1.25 2002/04/08 20:50:25 swa
|
||||
* fixed JB spelling
|
||||
*
|
||||
* Revision 1.24 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.23 2002/03/24 16:18:15 jongfoster
|
||||
* Removing old logo
|
||||
*
|
||||
* Revision 1.22 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.21 2002/03/07 03:48:38 oes
|
||||
* - Changed built-in images from GIF to PNG
|
||||
* (with regard to Unisys patent issue)
|
||||
* - Added a 4x4 pattern PNG which is less intrusive
|
||||
* than the logo but also clearly marks the deleted banners
|
||||
*
|
||||
* Revision 1.20 2002/03/04 17:53:22 oes
|
||||
* Fixed compiled warning
|
||||
*
|
||||
* Revision 1.19 2002/01/21 00:33:52 jongfoster
|
||||
* Adding map_block_keep() to save a few bytes in the edit-actions-list HTML.
|
||||
*
|
||||
* Revision 1.18 2001/11/16 00:46:31 jongfoster
|
||||
* Fixing compiler warnings
|
||||
*
|
||||
* Revision 1.17 2001/10/23 21:48:19 jongfoster
|
||||
* Cleaning up error handling in CGI functions - they now send back
|
||||
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||
* potential source of "denial of service" attacks).
|
||||
*
|
||||
* CGI actions file editor that works and is actually useful.
|
||||
*
|
||||
* Ability to toggle Junkbuster remotely using a CGI call.
|
||||
*
|
||||
* You can turn off both the above features in the main configuration
|
||||
* file, e.g. if you are running a multi-user proxy.
|
||||
*
|
||||
* Revision 1.16 2001/09/16 17:08:54 jongfoster
|
||||
* Moving simple CGI functions from cgi.c to new file cgisimple.c
|
||||
*
|
||||
* Revision 1.15 2001/09/16 15:02:35 jongfoster
|
||||
* Adding i.j.b/robots.txt.
|
||||
* Inlining add_stats() since it's only ever called from one place.
|
||||
*
|
||||
* Revision 1.14 2001/09/16 11:38:02 jongfoster
|
||||
* Splitting fill_template() into 2 functions:
|
||||
* template_load() loads the file
|
||||
* template_fill() performs the PCRS regexps.
|
||||
* This is because the CGI edit interface has a "table row"
|
||||
* template which is used many times in the page - this
|
||||
* change means it's only loaded from disk once.
|
||||
*
|
||||
* Revision 1.13 2001/09/16 11:00:10 jongfoster
|
||||
* New function alloc_http_response, for symmetry with free_http_response
|
||||
*
|
||||
* Revision 1.12 2001/09/13 23:31:25 jongfoster
|
||||
* Moving image data to cgi.c rather than cgi.h.
|
||||
*
|
||||
* Revision 1.11 2001/08/05 16:06:20 jongfoster
|
||||
* Modifiying "struct map" so that there are now separate header and
|
||||
* "map_entry" structures. This means that functions which modify a
|
||||
* map no longer need to return a pointer to the modified map.
|
||||
* Also, it no longer reverses the order of the entries (which may be
|
||||
* important with some advanced template substitutions).
|
||||
*
|
||||
* Revision 1.10 2001/08/01 21:19:22 jongfoster
|
||||
* Moving file version information to a separate CGI page.
|
||||
*
|
||||
* Revision 1.9 2001/08/01 00:17:54 jongfoster
|
||||
* Adding prototype for map_conditional
|
||||
*
|
||||
* Revision 1.8 2001/07/30 22:08:36 jongfoster
|
||||
* Tidying up #defines:
|
||||
* - All feature #defines are now of the form FEATURE_xxx
|
||||
* - Permanently turned off WIN_GUI_EDIT
|
||||
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||
*
|
||||
* Revision 1.7 2001/07/29 18:43:08 jongfoster
|
||||
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||
* ANSI C rules.
|
||||
*
|
||||
* Revision 1.6 2001/06/29 21:45:41 oes
|
||||
* Indentation, CRLF->LF, Tab-> Space
|
||||
*
|
||||
* Revision 1.5 2001/06/29 13:22:44 oes
|
||||
* - Cleaned up
|
||||
* - Added new functions: default_exports(), make_menu(),
|
||||
* error_response() etc, ranamed others and changed
|
||||
* param and return types.
|
||||
* - Removed HTTP/HTML snipplets
|
||||
* - Removed logentry from cancelled commit
|
||||
*
|
||||
* Revision 1.4 2001/06/09 10:50:58 jongfoster
|
||||
* Changing "show URL info" handler to new style.
|
||||
* Adding "extern" to some function prototypes.
|
||||
*
|
||||
* Revision 1.3 2001/06/03 19:12:16 oes
|
||||
* introduced new cgi handling
|
||||
*
|
||||
* No revisions before 1.3
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#include "project.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Main dispatch function
|
||||
*/
|
||||
extern struct http_response *dispatch_cgi(struct client_state *csp);
|
||||
|
||||
/* Not exactly a CGI */
|
||||
extern struct http_response * error_response(struct client_state *csp,
|
||||
const char *templatename,
|
||||
int err);
|
||||
|
||||
/*
|
||||
* CGI support functions
|
||||
*/
|
||||
extern struct http_response * alloc_http_response(void);
|
||||
extern void free_http_response(struct http_response *rsp);
|
||||
|
||||
extern struct http_response *finish_http_response(const struct client_state *csp,
|
||||
struct http_response *rsp);
|
||||
|
||||
extern struct map * default_exports(const struct client_state *csp, const char *caller);
|
||||
|
||||
extern jb_err map_block_killer (struct map *exports, const char *name);
|
||||
extern jb_err map_block_keep (struct map *exports, const char *name);
|
||||
extern jb_err map_conditional (struct map *exports, const char *name, int choose_first);
|
||||
|
||||
extern jb_err template_load(const struct client_state *csp, char ** template_ptr,
|
||||
const char *templatename, int recursive);
|
||||
extern jb_err template_fill(char ** template_ptr, const struct map *exports);
|
||||
extern jb_err template_fill_for_cgi(const struct client_state *csp,
|
||||
const char *templatename,
|
||||
struct map *exports,
|
||||
struct http_response *rsp);
|
||||
|
||||
extern void cgi_init_error_messages(void);
|
||||
extern struct http_response *cgi_error_memory(void);
|
||||
extern jb_err cgi_redirect (struct http_response * rsp, const char *target);
|
||||
|
||||
extern jb_err cgi_error_no_template(const struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const char *template_name);
|
||||
extern jb_err cgi_error_bad_param(const struct client_state *csp,
|
||||
struct http_response *rsp);
|
||||
extern jb_err cgi_error_disabled(const struct client_state *csp,
|
||||
struct http_response *rsp);
|
||||
extern jb_err cgi_error_unknown(const struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
jb_err error_to_report);
|
||||
|
||||
extern jb_err get_number_param(struct client_state *csp,
|
||||
const struct map *parameters,
|
||||
char *name,
|
||||
unsigned *pvalue);
|
||||
extern jb_err get_string_param(const struct map *parameters,
|
||||
const char *param_name,
|
||||
const char **pparam);
|
||||
extern char get_char_param(const struct map *parameters,
|
||||
const char *param_name);
|
||||
|
||||
/*
|
||||
* Text generators
|
||||
*/
|
||||
extern void get_http_time(int time_offset, char *buf, size_t buffer_size);
|
||||
extern char *add_help_link(const char *item, struct configuration_spec *config);
|
||||
extern char *make_menu(const char *self, const unsigned feature_flags);
|
||||
extern char *dump_map(const struct map *the_map);
|
||||
|
||||
/*
|
||||
* Ad replacement images
|
||||
*/
|
||||
extern const char image_pattern_data[];
|
||||
extern const size_t image_pattern_length;
|
||||
extern const char image_blank_data[];
|
||||
extern const size_t image_blank_length;
|
||||
|
||||
/* Revision control strings from this header and associated .c file */
|
||||
extern const char cgi_rcs[];
|
||||
extern const char cgi_h_rcs[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* ndef CGI_H_INCLUDED */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,175 @@
|
|||
#ifndef CGIEDIT_H_INCLUDED
|
||||
#define CGIEDIT_H_INCLUDED
|
||||
#define CGIEDIT_H_VERSION "$Id: cgiedit.h,v 1.10 2008/08/31 15:59:03 fabiankeil Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/cgiedit.h,v $
|
||||
*
|
||||
* Purpose : CGI-based actionsfile editor.
|
||||
*
|
||||
* Functions declared include:
|
||||
*
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: cgiedit.h,v $
|
||||
* Revision 1.10 2008/08/31 15:59:03 fabiankeil
|
||||
* There's no reason to let remote toggling support depend
|
||||
* on FEATURE_CGI_EDIT_ACTIONS, so make sure it doesn't.
|
||||
*
|
||||
* Revision 1.9 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.7.2.2 2004/02/17 13:30:23 oes
|
||||
* Moved cgi_error_disabled() from cgiedit.c to
|
||||
* cgi.c to re-enable build with --disable-editor.
|
||||
* Fixes Bug #892744. Thanks to Matthew Fischer
|
||||
* for spotting.
|
||||
*
|
||||
* Revision 1.7.2.1 2002/11/28 18:15:17 oes
|
||||
* Added cgi_error_disabled
|
||||
*
|
||||
* Revision 1.7 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.6 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.5 2002/01/22 23:24:48 jongfoster
|
||||
* Adding edit-actions-section-swap
|
||||
*
|
||||
* Revision 1.4 2001/11/13 00:28:51 jongfoster
|
||||
* Adding new CGIs for use by non-JavaScript browsers:
|
||||
* edit-actions-url-form
|
||||
* edit-actions-add-url-form
|
||||
* edit-actions-remove-url-form
|
||||
*
|
||||
* Revision 1.3 2001/10/23 21:48:19 jongfoster
|
||||
* Cleaning up error handling in CGI functions - they now send back
|
||||
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||
* potential source of "denial of service" attacks).
|
||||
*
|
||||
* CGI actions file editor that works and is actually useful.
|
||||
*
|
||||
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||
*
|
||||
* You can turn off both the above features in the main configuration
|
||||
* file, e.g. if you are running a multi-user proxy.
|
||||
*
|
||||
* Revision 1.2 2001/10/14 22:12:49 jongfoster
|
||||
* New version of CGI-based actionsfile editor.
|
||||
* Major changes, including:
|
||||
* - Completely new file parser and file output routines
|
||||
* - edit-actions CGI renamed edit-actions-for-url
|
||||
* - All CGIs now need a filename parameter, except for...
|
||||
* - New CGI edit-actions which doesn't need a filename,
|
||||
* to allow you to start the editor up.
|
||||
* - edit-actions-submit now works, and now automatically
|
||||
* redirects you back to the main edit-actions-list handler.
|
||||
*
|
||||
* Revision 1.1 2001/09/16 15:47:37 jongfoster
|
||||
* First version of CGI-based edit interface. This is very much a
|
||||
* work-in-progress, and you can't actually use it to edit anything
|
||||
* yet. You must #define FEATURE_CGI_EDIT_ACTIONS for these changes
|
||||
* to have any effect.
|
||||
*
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#include "project.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CGI functions
|
||||
*/
|
||||
#ifdef FEATURE_CGI_EDIT_ACTIONS
|
||||
extern jb_err cgi_edit_actions (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_for_url(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_list (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_submit (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_url (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_url_form(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_add_url(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_add_url_form(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_remove_url (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_remove_url_form(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_section_remove(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_section_add (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_edit_actions_section_swap (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
#endif /* def FEATURE_CGI_EDIT_ACTIONS */
|
||||
#ifdef FEATURE_TOGGLE
|
||||
extern jb_err cgi_toggle(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
#endif /* def FEATURE_TOGGLE */
|
||||
|
||||
/* Revision control strings from this header and associated .c file */
|
||||
extern const char cgiedit_rcs[];
|
||||
extern const char cgiedit_h_rcs[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* ndef CGI_H_INCLUDED */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,185 @@
|
|||
#ifndef CGISIMPLE_H_INCLUDED
|
||||
#define CGISIMPLE_H_INCLUDED
|
||||
#define CGISIMPLE_H_VERSION "$Id: cgisimple.h,v 1.16 2008/05/26 17:30:55 fabiankeil Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/cgisimple.h,v $
|
||||
*
|
||||
* Purpose : Declares functions to intercept request, generate
|
||||
* html or gif answers, and to compose HTTP resonses.
|
||||
*
|
||||
* Functions declared include:
|
||||
*
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2007 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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: cgisimple.h,v $
|
||||
* Revision 1.16 2008/05/26 17:30:55 fabiankeil
|
||||
* Provide an OpenSearch Description to access the
|
||||
* show-url-info page through "search engine plugins".
|
||||
*
|
||||
* Revision 1.15 2007/01/23 15:51:17 fabiankeil
|
||||
* Add favicon delivery functions.
|
||||
*
|
||||
* Revision 1.14 2006/09/06 18:45:03 fabiankeil
|
||||
* Incorporate modified version of Roland Rosenfeld's patch to
|
||||
* optionally access the user-manual via Privoxy. Closes patch 679075.
|
||||
*
|
||||
* Formatting changed to Privoxy style, added call to
|
||||
* cgi_error_no_template if the requested file doesn't
|
||||
* exist and modified check whether or not Privoxy itself
|
||||
* should serve the manual. Should work cross-platform now.
|
||||
*
|
||||
* Revision 1.13 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.11 2002/04/05 15:50:53 oes
|
||||
* added send-stylesheet CGI
|
||||
*
|
||||
* Revision 1.10 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.9 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.8 2002/03/16 23:54:06 jongfoster
|
||||
* Adding graceful termination feature, to help look for memory leaks.
|
||||
* If you enable this (which, by design, has to be done by hand
|
||||
* editing config.h) and then go to http://i.j.b/die, then the program
|
||||
* will exit cleanly after the *next* request. It should free all the
|
||||
* memory that was used.
|
||||
*
|
||||
* Revision 1.7 2002/03/08 16:43:59 oes
|
||||
* Renamed cgi_transparent_png to cgi_transparent_image
|
||||
*
|
||||
* Revision 1.6 2002/03/07 03:48:59 oes
|
||||
* - Changed built-in images from GIF to PNG
|
||||
* (with regard to Unisys patent issue)
|
||||
*
|
||||
* Revision 1.5 2002/01/22 23:26:03 jongfoster
|
||||
* Adding cgi_transparent_gif() for http://i.j.b/t
|
||||
*
|
||||
* Revision 1.4 2001/10/23 21:48:19 jongfoster
|
||||
* Cleaning up error handling in CGI functions - they now send back
|
||||
* a HTML error page and should never cause a FATAL error. (Fixes one
|
||||
* potential source of "denial of service" attacks).
|
||||
*
|
||||
* CGI actions file editor that works and is actually useful.
|
||||
*
|
||||
* Ability to toggle JunkBuster remotely using a CGI call.
|
||||
*
|
||||
* You can turn off both the above features in the main configuration
|
||||
* file, e.g. if you are running a multi-user proxy.
|
||||
*
|
||||
* Revision 1.3 2001/10/14 22:00:32 jongfoster
|
||||
* Adding support for a 404 error when an invalid CGI page is requested.
|
||||
*
|
||||
* Revision 1.2 2001/10/02 15:31:20 oes
|
||||
* Introduced show-request cgi
|
||||
*
|
||||
* Revision 1.1 2001/09/16 17:08:54 jongfoster
|
||||
* Moving simple CGI functions from cgi.c to new file cgisimple.c
|
||||
*
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#include "project.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CGI functions
|
||||
*/
|
||||
extern jb_err cgi_default (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_error_404 (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_robots_txt (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_banner (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_show_status (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_show_url_info(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_show_version (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_show_request (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_transparent_image (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_error_favicon (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_default_favicon (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_stylesheet(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_url_info_osd(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
extern jb_err cgi_send_user_manual(struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
|
||||
|
||||
#ifdef FEATURE_GRACEFUL_TERMINATION
|
||||
extern jb_err cgi_die (struct client_state *csp,
|
||||
struct http_response *rsp,
|
||||
const struct map *parameters);
|
||||
#endif
|
||||
|
||||
/* Revision control strings from this header and associated .c file */
|
||||
extern const char cgisimple_rcs[];
|
||||
extern const char cgisimple_h_rcs[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* ndef CGISIMPLE_H_INCLUDED */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,744 @@
|
|||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
#ifndef CONFIG_H_INCLUDED
|
||||
#define CONFIG_H_INCLUDED
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/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
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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 $
|
||||
* Revision 1.36 2008/10/18 11:17:52 fabiankeil
|
||||
* Connection keep-alive support is ready for testing,
|
||||
* allow enabling it through the configure script.
|
||||
*
|
||||
* Revision 1.35 2008/04/06 15:18:33 fabiankeil
|
||||
* Oh well, rename the --enable-pcre-host-patterns option to
|
||||
* --enable-extended-host-patterns as it's not really PCRE syntax.
|
||||
*
|
||||
* Revision 1.34 2008/04/06 14:54:26 fabiankeil
|
||||
* Use PCRE syntax in host patterns when configured
|
||||
* with --enable-pcre-host-patterns.
|
||||
*
|
||||
* Revision 1.33 2006/12/17 19:15:26 fabiankeil
|
||||
* Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
|
||||
*
|
||||
* Revision 1.32 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.27.2.4 2003/12/17 16:34:40 oes
|
||||
* Cosmetics
|
||||
*
|
||||
* Revision 1.27.2.3 2003/03/27 16:03:19 oes
|
||||
* Another shot at Bug #707467
|
||||
*
|
||||
* Revision 1.27.2.2 2003/03/21 14:39:12 oes
|
||||
* Presumably fixed Bug #707467 by defining unix ifdef __unix__
|
||||
*
|
||||
* Revision 1.27.2.1 2002/08/10 11:22:31 oes
|
||||
* - Add two AC_DEFINEs that indicate if the pcre*.h headers
|
||||
* are located in a pcre/ subdir to the include path.
|
||||
*
|
||||
* Revision 1.27 2002/04/25 19:13:57 morcego
|
||||
* Removed RPM release number declaration on configure.in
|
||||
* Changed makefile to use given value for RPM_PACKAGEV when on uploading
|
||||
* targets (will produce an error, explaining who to do it, if no value
|
||||
* if provided).
|
||||
*
|
||||
* Revision 1.26 2002/04/11 11:00:21 oes
|
||||
* Applied Moritz' fix for socklen_t on Solaris
|
||||
*
|
||||
* Revision 1.25 2002/04/06 20:38:01 jongfoster
|
||||
* Renaming VC++ versions of config.h
|
||||
*
|
||||
* Revision 1.24 2002/04/04 00:36:36 gliptak
|
||||
* always use pcre for matching
|
||||
*
|
||||
* Revision 1.23 2002/04/03 22:28:03 gliptak
|
||||
* Removed references to gnu_regex
|
||||
*
|
||||
* Revision 1.22 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.21 2002/03/24 14:31:08 swa
|
||||
* remove more crappy files. set RPM
|
||||
* release version correctly.
|
||||
*
|
||||
* Revision 1.20 2002/03/24 13:46:44 swa
|
||||
* name change related issue.
|
||||
*
|
||||
* Revision 1.19 2002/03/24 13:25:42 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.18 2002/03/08 16:40:28 oes
|
||||
* Added FEATURE_NO_GIFS
|
||||
*
|
||||
* Revision 1.17 2002/03/04 17:52:44 oes
|
||||
* Deleted PID_FILE_PATH
|
||||
*
|
||||
* Revision 1.16 2002/01/10 12:36:18 oes
|
||||
* Moved HAVE_*_R to acconfig.h, where they belong.
|
||||
*
|
||||
* Revision 1.15 2001/12/30 14:07:31 steudten
|
||||
* - Add signal handling (unix)
|
||||
* - Add SIGHUP handler (unix)
|
||||
* - Add creation of pidfile (unix)
|
||||
* - Add action 'top' in rc file (RH)
|
||||
* - Add entry 'SIGNALS' to manpage
|
||||
* - Add exit message to logfile (unix)
|
||||
*
|
||||
* Revision 1.14 2001/10/23 21:24:09 jongfoster
|
||||
* Support for FEATURE_CGI_EDIT_ACTIONS
|
||||
*
|
||||
* Revision 1.13 2001/10/07 15:30:41 oes
|
||||
* Removed FEATURE_DENY_GZIP
|
||||
*
|
||||
* Revision 1.12 2001/09/13 19:56:37 jongfoster
|
||||
* Reverting to revision 1.10 - previous checking was majorly broken.
|
||||
*
|
||||
* Revision 1.10 2001/07/30 22:08:36 jongfoster
|
||||
* Tidying up #defines:
|
||||
* - All feature #defines are now of the form FEATURE_xxx
|
||||
* - Permanently turned off WIN_GUI_EDIT
|
||||
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||
*
|
||||
* Revision 1.9 2001/07/29 19:08:52 jongfoster
|
||||
* Changing _CONFIG_H to CONFIG_H_INCLUDED.
|
||||
* Also added protection against using a MinGW32 or CygWin version of
|
||||
* config.h from within MS Visual C++
|
||||
*
|
||||
* Revision 1.8 2001/07/29 17:09:17 jongfoster
|
||||
* Major changes to build system in order to fix these bugs:
|
||||
* - pthreads under Linux was broken - changed -lpthread to -pthread
|
||||
* - Compiling in MinGW32 mode under CygWin now correctly detects
|
||||
* which shared libraries are available
|
||||
* - Solaris support (?) (Not tested under Solaris yet)
|
||||
*
|
||||
* Revision 1.7 2001/07/25 22:53:59 jongfoster
|
||||
* Will #error if pthreads is enabled under BeOs
|
||||
*
|
||||
* Revision 1.6 2001/07/15 17:54:29 jongfoster
|
||||
* Renaming #define STATIC to STATIC_PCRE
|
||||
* Adding new #define FEATURE_PTHREAD that will be used to enable
|
||||
* POSIX threads support.
|
||||
*
|
||||
* Revision 1.5 2001/07/13 13:48:37 oes
|
||||
* - (Fix:) Copied CODE_STATUS #define from config.h.in
|
||||
* - split REGEX #define into REGEX_GNU and REGEX_PCRE
|
||||
* and removed PCRE.
|
||||
* (REGEX = REGEX_GNU || REGEX_PCRE per project.h)
|
||||
* - Moved STATIC (for pcre) here from Makefile.in
|
||||
* - Introduced STATIC_PCRS #define to allow for dynaimc linking with
|
||||
* libpcrs
|
||||
* - Removed PCRS #define, since pcrs is now needed for CGI anyway
|
||||
*
|
||||
* Revision 1.4 2001/05/29 09:50:24 jongfoster
|
||||
* Unified blocklist/imagelist/permissionslist.
|
||||
* File format is still under discussion, but the internal changes
|
||||
* are (mostly) done.
|
||||
*
|
||||
* Also modified interceptor behaviour:
|
||||
* - We now intercept all URLs beginning with one of the following
|
||||
* prefixes (and *only* these prefixes):
|
||||
* * http://i.j.b/
|
||||
* * http://ijbswa.sf.net/config/
|
||||
* * http://ijbswa.sourceforge.net/config/
|
||||
* - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||
* - Internal changes so that intercepted and fast redirect pages
|
||||
* are not replaced with an image.
|
||||
* - Interceptors now have the option to send a binary page direct
|
||||
* to the client. (i.e. ijb-send-banner uses this)
|
||||
* - Implemented show-url-info interceptor. (Which is why I needed
|
||||
* the above interceptors changes - a typical URL is
|
||||
* "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||
* The previous mechanism would not have intercepted that, and
|
||||
* if it had been intercepted then it then it would have replaced
|
||||
* it with an image.)
|
||||
*
|
||||
* Revision 1.3 2001/05/26 01:26:34 jongfoster
|
||||
* New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor.
|
||||
* This #define cannot be set from ./configure - there's no point, it
|
||||
* doesn't work yet. See feature request # 425722
|
||||
*
|
||||
* Revision 1.2 2001/05/22 17:43:35 oes
|
||||
*
|
||||
* - Enabled filtering banners by size rather than URL
|
||||
* by adding patterns that replace all standard banner
|
||||
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||
*
|
||||
* - Enabled filtering WebBugs by providing a pattern
|
||||
* which kills all 1x1 images
|
||||
*
|
||||
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||
* which is selected by the (nonstandard and therefore
|
||||
* capital) letter 'U' in the option string.
|
||||
* It causes the quantifiers to be ungreedy by default.
|
||||
* Appending a ? turns back to greedy (!).
|
||||
*
|
||||
* - Added a new interceptor ijb-send-banner, which
|
||||
* sends back the "Junkbuster" gif. Without imagelist or
|
||||
* MSIE detection support, or if tinygif = 1, or the
|
||||
* URL isn't recognized as an imageurl, a lame HTML
|
||||
* explanation is sent instead.
|
||||
*
|
||||
* - Added new feature, which permits blocking remote
|
||||
* script redirects and firing back a local redirect
|
||||
* to the browser.
|
||||
* The feature is conditionally compiled, i.e. it
|
||||
* can be disabled with --disable-fast-redirects,
|
||||
* plus it must be activated by a "fast-redirects"
|
||||
* line in the config file, has its own log level
|
||||
* and of course wants to be displayed by show-proxy-args
|
||||
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||
* all the fumbling with configure.in and acconfig.h
|
||||
* were *way* more work than the feature itself :-(
|
||||
*
|
||||
* - Because a generic redirect template was needed for
|
||||
* this, tinygif = 3 now uses the same.
|
||||
*
|
||||
* - Moved GIFs, and other static HTTP response templates
|
||||
* to project.h
|
||||
*
|
||||
* - Many minor fixes
|
||||
*
|
||||
* - Removed some >400 CRs again (Jon, you really worked
|
||||
* a lot! ;-)
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:45 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Version number - Major (X._._)
|
||||
*/
|
||||
#define VERSION_MAJOR 3
|
||||
|
||||
/*
|
||||
* Version number - Minor (_.X._)
|
||||
*/
|
||||
#define VERSION_MINOR 0
|
||||
|
||||
/*
|
||||
* Version number - Point (_._.X)
|
||||
*/
|
||||
#define VERSION_POINT 12
|
||||
|
||||
/*
|
||||
* Version number, as a string
|
||||
*/
|
||||
#define VERSION "3.0.12"
|
||||
|
||||
/*
|
||||
* Status of the code: "alpha", "beta" or "stable".
|
||||
*/
|
||||
#define CODE_STATUS "stable"
|
||||
|
||||
/*
|
||||
* Should pcre be statically built in instead of linkling with libpcre?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcre and user preferences). The name is ugly, but pcre needs it.
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#define STATIC_PCRE 1
|
||||
|
||||
/*
|
||||
* Should pcrs be statically built in instead of linkling with libpcrs?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcrs and user preferences).
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#define STATIC_PCRS 1
|
||||
|
||||
/*
|
||||
* Allows the use of an ACL to control access to the proxy by IP address.
|
||||
*/
|
||||
#define FEATURE_ACL 1
|
||||
|
||||
/*
|
||||
* Enables the web-based configuration (actionsfile) editor. If you
|
||||
* have a shared proxy, you might want to turn this off.
|
||||
*/
|
||||
#define FEATURE_CGI_EDIT_ACTIONS 1
|
||||
|
||||
/*
|
||||
* Allows the use of jar files to capture cookies.
|
||||
*/
|
||||
/* #undef FEATURE_COOKIE_JAR */
|
||||
|
||||
/*
|
||||
* Locally redirect remote script-redirect URLs
|
||||
*/
|
||||
#define FEATURE_FAST_REDIRECTS 1
|
||||
|
||||
/*
|
||||
* Bypass filtering for 1 page only
|
||||
*/
|
||||
#define FEATURE_FORCE_LOAD 1
|
||||
|
||||
/*
|
||||
* Allow blocking using images as well as HTML.
|
||||
* If you do not define this then everything is blocked as HTML.
|
||||
*
|
||||
* Note that this is required if you want to use FEATURE_IMAGE_DETECT_MSIE.
|
||||
*/
|
||||
#define FEATURE_IMAGE_BLOCKING 1
|
||||
|
||||
/*
|
||||
* Detect image requests automatically for MSIE. Will fall back to
|
||||
* other image-detection methods (i.e. "+image" permission) for other
|
||||
* browsers.
|
||||
*
|
||||
* You must also define FEATURE_IMAGE_BLOCKING to use this feature.
|
||||
*
|
||||
* 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 FEATURE_IMAGE_DETECT_MSIE */
|
||||
|
||||
/*
|
||||
* Kills JavaScript popups - window.open, onunload, etc.
|
||||
*/
|
||||
/* #undef FEATURE_KILL_POPUPS */
|
||||
|
||||
/*
|
||||
* Use PNG instead of GIF for built-in images
|
||||
*/
|
||||
/* #undef FEATURE_NO_GIFS */
|
||||
|
||||
/*
|
||||
* Allow to shutdown Privoxy through the webinterface.
|
||||
*/
|
||||
/* #undef FEATURE_GRACEFUL_TERMINATION */
|
||||
|
||||
/*
|
||||
* Allow PCRE syntax in host patterns.
|
||||
*/
|
||||
/* #undef FEATURE_EXTENDED_HOST_PATTERNS */
|
||||
|
||||
/*
|
||||
* Keep outgoing connections alive if possible.
|
||||
*/
|
||||
#define FEATURE_CONNECTION_KEEP_ALIVE 1
|
||||
|
||||
/*
|
||||
* Use POSIX threads instead of native threads.
|
||||
*/
|
||||
#define FEATURE_PTHREAD 1
|
||||
|
||||
/*
|
||||
* Enables statistics function.
|
||||
*/
|
||||
#define FEATURE_STATISTICS 1
|
||||
|
||||
/*
|
||||
* Allow Privoxy 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,
|
||||
* or use the handy "Disable" menu option in the Windows GUI.
|
||||
*/
|
||||
#define FEATURE_TOGGLE 1
|
||||
|
||||
/*
|
||||
* Allows the use of trust files.
|
||||
*/
|
||||
#define FEATURE_TRUST 1
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Makes the system libraries thread safe.
|
||||
*/
|
||||
/* #undef _REENTRANT */
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Without this, many important functions are not
|
||||
* defined in the system headers.
|
||||
*/
|
||||
/* #undef __EXTENSIONS__ */
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with MultiThreading?)
|
||||
*/
|
||||
#define __MT__ 1
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyname_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
#define HAVE_GETHOSTBYNAME_R_6_ARGS 1
|
||||
/* #undef HAVE_GETHOSTBYNAME_R_5_ARGS */
|
||||
/* #undef HAVE_GETHOSTBYNAME_R_3_ARGS */
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyaddr_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
/* #undef HAVE_GETHOSTBYADDR_R_8_ARGS */
|
||||
/* #undef HAVE_GETHOSTBYADDR_R_7_ARGS */
|
||||
/* #undef HAVE_GETHOSTBYADDR_R_5_ARGS */
|
||||
|
||||
/* Defined if you have gmtime_r and localtime_r with a signature
|
||||
* of (struct time *, struct tm *)
|
||||
*/
|
||||
#define HAVE_GMTIME_R 1
|
||||
#define HAVE_LOCALTIME_R 1
|
||||
|
||||
/* Define to 'int' if <sys/socket.h> doesn't have it.
|
||||
*/
|
||||
/* #undef socklen_t */
|
||||
|
||||
/* Define if pcre.h must be included as <pcre/pcre.h>
|
||||
*/
|
||||
/* #undef PCRE_H_IN_SUBDIR */
|
||||
|
||||
/* Define if pcreposix.h must be included as <pcre/pcreposix.h>
|
||||
*/
|
||||
/* #undef PCREPOSIX_H_IN_SUBDIR */
|
||||
|
||||
|
||||
/* Define to 1 to use compression through the zlib library. */
|
||||
#define FEATURE_ZLIB 1
|
||||
|
||||
/* Define to 1 if you have the `access' function. */
|
||||
#define HAVE_ACCESS 1
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#define HAVE_ARPA_INET_H 1
|
||||
|
||||
/* Define to 1 if you have the `atexit' function. */
|
||||
#define HAVE_ATEXIT 1
|
||||
|
||||
/* Define to 1 if you have the `bcopy' function. */
|
||||
#define HAVE_BCOPY 1
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#define HAVE_DIRENT_H 1
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#define HAVE_ERRNO_H 1
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* Define to 1 if you have the `gethostbyaddr' function. */
|
||||
#define HAVE_GETHOSTBYADDR 1
|
||||
|
||||
/* Define to 1 if you have the `gethostbyaddr_r' function. */
|
||||
/* #undef HAVE_GETHOSTBYADDR_R */
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname' function. */
|
||||
#define HAVE_GETHOSTBYNAME 1
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname_r' function. */
|
||||
#define HAVE_GETHOSTBYNAME_R 1
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
#define HAVE_INET_NTOA 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `nsl' library (-lnsl). */
|
||||
/* #undef HAVE_LIBNSL */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define to 1 if you have the `localtime_r' function. */
|
||||
#define HAVE_LOCALTIME_R 1
|
||||
|
||||
/* Define to 1 if you have the `memchr' function. */
|
||||
#define HAVE_MEMCHR 1
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#define HAVE_MEMSET 1
|
||||
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
/* #undef HAVE_NDIR_H */
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
#define HAVE_NETDB_H 1
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#define HAVE_NETINET_IN_H 1
|
||||
|
||||
/* Define to 1 if you have the <OS.h> header file. */
|
||||
/* #undef HAVE_OS_H */
|
||||
|
||||
/* Define to 1 if you have the `poll' function. */
|
||||
#define HAVE_POLL 1
|
||||
|
||||
/* Define to 1 if you have the `putenv' function. */
|
||||
#define HAVE_PUTENV 1
|
||||
|
||||
/* Define to 1 if you have the `random' function. */
|
||||
/* #undef HAVE_RANDOM */
|
||||
|
||||
/* Define to 1 if you have the `regcomp' function. */
|
||||
#define HAVE_REGCOMP 1
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
#define HAVE_SELECT 1
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#define HAVE_SETLOCALE 1
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#define HAVE_SNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#define HAVE_SOCKET 1
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#define HAVE_STDDEF_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#define HAVE_STRCHR 1
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#define HAVE_STRDUP 1
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the `strftime' function. */
|
||||
#define HAVE_STRFTIME 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#define HAVE_STRLCAT 1
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#define HAVE_STRLCPY 1
|
||||
|
||||
/* Define to 1 if you have the `strptime' function. */
|
||||
#define HAVE_STRPTIME 1
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#define HAVE_STRSTR 1
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#define HAVE_STRTOUL 1
|
||||
|
||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
/* #undef HAVE_SYS_DIR_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#define HAVE_SYS_IOCTL_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
/* #undef HAVE_SYS_NDIR_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#define HAVE_SYS_SOCKET_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/timeb.h> header file. */
|
||||
#define HAVE_SYS_TIMEB_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
|
||||
/* Define to 1 if you have the `timegm' function. */
|
||||
/* #undef HAVE_TIMEGM */
|
||||
|
||||
/* Define to 1 if you have the `tzset' function. */
|
||||
#define HAVE_TZSET 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT ""
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME ""
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING ""
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME ""
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION ""
|
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#define RETSIGTYPE void
|
||||
|
||||
/* Define to 1 if the `setpgrp' function takes no argument. */
|
||||
#define SETPGRP_VOID 1
|
||||
|
||||
/* The size of `char *', as computed by sizeof. */
|
||||
#define SIZEOF_CHAR_P 4
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
#define SIZEOF_INT 4
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
/* The size of `long long', as computed by sizeof. */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
/* The size of `size_t', as computed by sizeof. */
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#define TIME_WITH_SYS_TIME 1
|
||||
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
/* #undef TM_IN_SYS_TIME */
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
/* #undef pid_t */
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to 'int' if <sys/socket.h> doesn't have it. */
|
||||
/* #undef socklen_t */
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with ANSI Standard C?)
|
||||
*/
|
||||
#ifndef __STDC__
|
||||
#define __STDC__ 1
|
||||
#endif /* ndef __STDC__ */
|
||||
|
||||
/*
|
||||
* Need to set up this define only for the Pthreads library for
|
||||
* Win32, available from http://sources.redhat.com/pthreads-win32/
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(_WIN32)
|
||||
#define __CLEANUP_C
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(_WIN32) */
|
||||
|
||||
/*
|
||||
* BEOS does not currently support POSIX threads.
|
||||
* This *should* be detected by ./configure, but let's be sure.
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(__BEOS__)
|
||||
#error BEOS does not support pthread - please run ./configure again with "--disable-pthread"
|
||||
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(__BEOS__) */
|
||||
|
||||
/*
|
||||
* On OpenBSD and maybe also FreeBSD, gcc doesn't define the cpp
|
||||
* symbol unix; it defines __unix__ and sometimes not even that:
|
||||
*/
|
||||
#if ( defined(__unix__) || defined(__NetBSD__) ) && !defined(unix)
|
||||
#define unix 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
|
||||
* under VC++, and it usually gives many wierd error messages. Let's make
|
||||
* the error messages understandable, by bailing out now.
|
||||
*/
|
||||
#ifdef _MSC_VER
|
||||
#error For MS VC++, please use vc_config_winthreads.h or vc_config_pthreads.h. You can usually do this by selecting the "Build", "Clean" menu option.
|
||||
#endif /* def _MSC_VER */
|
||||
|
||||
#endif /* CONFIG_H_INCLUDED */
|
|
@ -0,0 +1,743 @@
|
|||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
#ifndef CONFIG_H_INCLUDED
|
||||
#define CONFIG_H_INCLUDED
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/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
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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 $
|
||||
* Revision 1.36 2008/10/18 11:17:52 fabiankeil
|
||||
* Connection keep-alive support is ready for testing,
|
||||
* allow enabling it through the configure script.
|
||||
*
|
||||
* Revision 1.35 2008/04/06 15:18:33 fabiankeil
|
||||
* Oh well, rename the --enable-pcre-host-patterns option to
|
||||
* --enable-extended-host-patterns as it's not really PCRE syntax.
|
||||
*
|
||||
* Revision 1.34 2008/04/06 14:54:26 fabiankeil
|
||||
* Use PCRE syntax in host patterns when configured
|
||||
* with --enable-pcre-host-patterns.
|
||||
*
|
||||
* Revision 1.33 2006/12/17 19:15:26 fabiankeil
|
||||
* Added ./configure switch for FEATURE_GRACEFUL_TERMINATION.
|
||||
*
|
||||
* Revision 1.32 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.27.2.4 2003/12/17 16:34:40 oes
|
||||
* Cosmetics
|
||||
*
|
||||
* Revision 1.27.2.3 2003/03/27 16:03:19 oes
|
||||
* Another shot at Bug #707467
|
||||
*
|
||||
* Revision 1.27.2.2 2003/03/21 14:39:12 oes
|
||||
* Presumably fixed Bug #707467 by defining unix ifdef __unix__
|
||||
*
|
||||
* Revision 1.27.2.1 2002/08/10 11:22:31 oes
|
||||
* - Add two AC_DEFINEs that indicate if the pcre*.h headers
|
||||
* are located in a pcre/ subdir to the include path.
|
||||
*
|
||||
* Revision 1.27 2002/04/25 19:13:57 morcego
|
||||
* Removed RPM release number declaration on configure.in
|
||||
* Changed makefile to use given value for RPM_PACKAGEV when on uploading
|
||||
* targets (will produce an error, explaining who to do it, if no value
|
||||
* if provided).
|
||||
*
|
||||
* Revision 1.26 2002/04/11 11:00:21 oes
|
||||
* Applied Moritz' fix for socklen_t on Solaris
|
||||
*
|
||||
* Revision 1.25 2002/04/06 20:38:01 jongfoster
|
||||
* Renaming VC++ versions of config.h
|
||||
*
|
||||
* Revision 1.24 2002/04/04 00:36:36 gliptak
|
||||
* always use pcre for matching
|
||||
*
|
||||
* Revision 1.23 2002/04/03 22:28:03 gliptak
|
||||
* Removed references to gnu_regex
|
||||
*
|
||||
* Revision 1.22 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.21 2002/03/24 14:31:08 swa
|
||||
* remove more crappy files. set RPM
|
||||
* release version correctly.
|
||||
*
|
||||
* Revision 1.20 2002/03/24 13:46:44 swa
|
||||
* name change related issue.
|
||||
*
|
||||
* Revision 1.19 2002/03/24 13:25:42 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.18 2002/03/08 16:40:28 oes
|
||||
* Added FEATURE_NO_GIFS
|
||||
*
|
||||
* Revision 1.17 2002/03/04 17:52:44 oes
|
||||
* Deleted PID_FILE_PATH
|
||||
*
|
||||
* Revision 1.16 2002/01/10 12:36:18 oes
|
||||
* Moved HAVE_*_R to acconfig.h, where they belong.
|
||||
*
|
||||
* Revision 1.15 2001/12/30 14:07:31 steudten
|
||||
* - Add signal handling (unix)
|
||||
* - Add SIGHUP handler (unix)
|
||||
* - Add creation of pidfile (unix)
|
||||
* - Add action 'top' in rc file (RH)
|
||||
* - Add entry 'SIGNALS' to manpage
|
||||
* - Add exit message to logfile (unix)
|
||||
*
|
||||
* Revision 1.14 2001/10/23 21:24:09 jongfoster
|
||||
* Support for FEATURE_CGI_EDIT_ACTIONS
|
||||
*
|
||||
* Revision 1.13 2001/10/07 15:30:41 oes
|
||||
* Removed FEATURE_DENY_GZIP
|
||||
*
|
||||
* Revision 1.12 2001/09/13 19:56:37 jongfoster
|
||||
* Reverting to revision 1.10 - previous checking was majorly broken.
|
||||
*
|
||||
* Revision 1.10 2001/07/30 22:08:36 jongfoster
|
||||
* Tidying up #defines:
|
||||
* - All feature #defines are now of the form FEATURE_xxx
|
||||
* - Permanently turned off WIN_GUI_EDIT
|
||||
* - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
|
||||
*
|
||||
* Revision 1.9 2001/07/29 19:08:52 jongfoster
|
||||
* Changing _CONFIG_H to CONFIG_H_INCLUDED.
|
||||
* Also added protection against using a MinGW32 or CygWin version of
|
||||
* config.h from within MS Visual C++
|
||||
*
|
||||
* Revision 1.8 2001/07/29 17:09:17 jongfoster
|
||||
* Major changes to build system in order to fix these bugs:
|
||||
* - pthreads under Linux was broken - changed -lpthread to -pthread
|
||||
* - Compiling in MinGW32 mode under CygWin now correctly detects
|
||||
* which shared libraries are available
|
||||
* - Solaris support (?) (Not tested under Solaris yet)
|
||||
*
|
||||
* Revision 1.7 2001/07/25 22:53:59 jongfoster
|
||||
* Will #error if pthreads is enabled under BeOs
|
||||
*
|
||||
* Revision 1.6 2001/07/15 17:54:29 jongfoster
|
||||
* Renaming #define STATIC to STATIC_PCRE
|
||||
* Adding new #define FEATURE_PTHREAD that will be used to enable
|
||||
* POSIX threads support.
|
||||
*
|
||||
* Revision 1.5 2001/07/13 13:48:37 oes
|
||||
* - (Fix:) Copied CODE_STATUS #define from config.h.in
|
||||
* - split REGEX #define into REGEX_GNU and REGEX_PCRE
|
||||
* and removed PCRE.
|
||||
* (REGEX = REGEX_GNU || REGEX_PCRE per project.h)
|
||||
* - Moved STATIC (for pcre) here from Makefile.in
|
||||
* - Introduced STATIC_PCRS #define to allow for dynaimc linking with
|
||||
* libpcrs
|
||||
* - Removed PCRS #define, since pcrs is now needed for CGI anyway
|
||||
*
|
||||
* Revision 1.4 2001/05/29 09:50:24 jongfoster
|
||||
* Unified blocklist/imagelist/permissionslist.
|
||||
* File format is still under discussion, but the internal changes
|
||||
* are (mostly) done.
|
||||
*
|
||||
* Also modified interceptor behaviour:
|
||||
* - We now intercept all URLs beginning with one of the following
|
||||
* prefixes (and *only* these prefixes):
|
||||
* * http://i.j.b/
|
||||
* * http://ijbswa.sf.net/config/
|
||||
* * http://ijbswa.sourceforge.net/config/
|
||||
* - New interceptors "home page" - go to http://i.j.b/ to see it.
|
||||
* - Internal changes so that intercepted and fast redirect pages
|
||||
* are not replaced with an image.
|
||||
* - Interceptors now have the option to send a binary page direct
|
||||
* to the client. (i.e. ijb-send-banner uses this)
|
||||
* - Implemented show-url-info interceptor. (Which is why I needed
|
||||
* the above interceptors changes - a typical URL is
|
||||
* "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
|
||||
* The previous mechanism would not have intercepted that, and
|
||||
* if it had been intercepted then it then it would have replaced
|
||||
* it with an image.)
|
||||
*
|
||||
* Revision 1.3 2001/05/26 01:26:34 jongfoster
|
||||
* New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor.
|
||||
* This #define cannot be set from ./configure - there's no point, it
|
||||
* doesn't work yet. See feature request # 425722
|
||||
*
|
||||
* Revision 1.2 2001/05/22 17:43:35 oes
|
||||
*
|
||||
* - Enabled filtering banners by size rather than URL
|
||||
* by adding patterns that replace all standard banner
|
||||
* sizes with the "Junkbuster" gif to the re_filterfile
|
||||
*
|
||||
* - Enabled filtering WebBugs by providing a pattern
|
||||
* which kills all 1x1 images
|
||||
*
|
||||
* - Added support for PCRE_UNGREEDY behaviour to pcrs,
|
||||
* which is selected by the (nonstandard and therefore
|
||||
* capital) letter 'U' in the option string.
|
||||
* It causes the quantifiers to be ungreedy by default.
|
||||
* Appending a ? turns back to greedy (!).
|
||||
*
|
||||
* - Added a new interceptor ijb-send-banner, which
|
||||
* sends back the "Junkbuster" gif. Without imagelist or
|
||||
* MSIE detection support, or if tinygif = 1, or the
|
||||
* URL isn't recognized as an imageurl, a lame HTML
|
||||
* explanation is sent instead.
|
||||
*
|
||||
* - Added new feature, which permits blocking remote
|
||||
* script redirects and firing back a local redirect
|
||||
* to the browser.
|
||||
* The feature is conditionally compiled, i.e. it
|
||||
* can be disabled with --disable-fast-redirects,
|
||||
* plus it must be activated by a "fast-redirects"
|
||||
* line in the config file, has its own log level
|
||||
* and of course wants to be displayed by show-proxy-args
|
||||
* Note: Boy, all the #ifdefs in 1001 locations and
|
||||
* all the fumbling with configure.in and acconfig.h
|
||||
* were *way* more work than the feature itself :-(
|
||||
*
|
||||
* - Because a generic redirect template was needed for
|
||||
* this, tinygif = 3 now uses the same.
|
||||
*
|
||||
* - Moved GIFs, and other static HTTP response templates
|
||||
* to project.h
|
||||
*
|
||||
* - Many minor fixes
|
||||
*
|
||||
* - Removed some >400 CRs again (Jon, you really worked
|
||||
* a lot! ;-)
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:45 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
/*
|
||||
* Status of the code: "alpha", "beta" or "stable".
|
||||
*/
|
||||
#undef CODE_STATUS
|
||||
|
||||
/*
|
||||
* Should pcre be statically built in instead of linkling with libpcre?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcre and user preferences). The name is ugly, but pcre needs it.
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#undef STATIC_PCRE
|
||||
|
||||
/*
|
||||
* Should pcrs be statically built in instead of linkling with libpcrs?
|
||||
* (This is determined by configure depending on the availiability of
|
||||
* libpcrs and user preferences).
|
||||
* Don't bother to change this here! Use configure instead.
|
||||
*/
|
||||
#undef STATIC_PCRS
|
||||
|
||||
/*
|
||||
* Allows the use of an ACL to control access to the proxy by IP address.
|
||||
*/
|
||||
#undef FEATURE_ACL
|
||||
|
||||
/*
|
||||
* Enables the web-based configuration (actionsfile) editor. If you
|
||||
* have a shared proxy, you might want to turn this off.
|
||||
*/
|
||||
#undef FEATURE_CGI_EDIT_ACTIONS
|
||||
|
||||
/*
|
||||
* Allows the use of jar files to capture cookies.
|
||||
*/
|
||||
#undef FEATURE_COOKIE_JAR
|
||||
|
||||
/*
|
||||
* Locally redirect remote script-redirect URLs
|
||||
*/
|
||||
#undef FEATURE_FAST_REDIRECTS
|
||||
|
||||
/*
|
||||
* Bypass filtering for 1 page only
|
||||
*/
|
||||
#undef FEATURE_FORCE_LOAD
|
||||
|
||||
/*
|
||||
* Allow blocking using images as well as HTML.
|
||||
* If you do not define this then everything is blocked as HTML.
|
||||
*
|
||||
* Note that this is required if you want to use FEATURE_IMAGE_DETECT_MSIE.
|
||||
*/
|
||||
#undef FEATURE_IMAGE_BLOCKING
|
||||
|
||||
/*
|
||||
* Detect image requests automatically for MSIE. Will fall back to
|
||||
* other image-detection methods (i.e. "+image" permission) for other
|
||||
* browsers.
|
||||
*
|
||||
* You must also define FEATURE_IMAGE_BLOCKING to use this feature.
|
||||
*
|
||||
* 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 FEATURE_IMAGE_DETECT_MSIE
|
||||
|
||||
/*
|
||||
* Kills JavaScript popups - window.open, onunload, etc.
|
||||
*/
|
||||
#undef FEATURE_KILL_POPUPS
|
||||
|
||||
/*
|
||||
* Use PNG instead of GIF for built-in images
|
||||
*/
|
||||
#undef FEATURE_NO_GIFS
|
||||
|
||||
/*
|
||||
* Allow to shutdown Privoxy through the webinterface.
|
||||
*/
|
||||
#undef FEATURE_GRACEFUL_TERMINATION
|
||||
|
||||
/*
|
||||
* Allow PCRE syntax in host patterns.
|
||||
*/
|
||||
#undef FEATURE_EXTENDED_HOST_PATTERNS
|
||||
|
||||
/*
|
||||
* Keep outgoing connections alive if possible.
|
||||
*/
|
||||
#undef FEATURE_CONNECTION_KEEP_ALIVE
|
||||
|
||||
/*
|
||||
* Use POSIX threads instead of native threads.
|
||||
*/
|
||||
#undef FEATURE_PTHREAD
|
||||
|
||||
/*
|
||||
* Enables statistics function.
|
||||
*/
|
||||
#undef FEATURE_STATISTICS
|
||||
|
||||
/*
|
||||
* Allow Privoxy 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,
|
||||
* or use the handy "Disable" menu option in the Windows GUI.
|
||||
*/
|
||||
#undef FEATURE_TOGGLE
|
||||
|
||||
/*
|
||||
* Allows the use of trust files.
|
||||
*/
|
||||
#undef FEATURE_TRUST
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Makes the system libraries thread safe.
|
||||
*/
|
||||
#undef _REENTRANT
|
||||
|
||||
/*
|
||||
* Defined on Solaris only. Without this, many important functions are not
|
||||
* defined in the system headers.
|
||||
*/
|
||||
#undef __EXTENSIONS__
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with MultiThreading?)
|
||||
*/
|
||||
#undef __MT__
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyname_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
#undef HAVE_GETHOSTBYNAME_R_6_ARGS
|
||||
#undef HAVE_GETHOSTBYNAME_R_5_ARGS
|
||||
#undef HAVE_GETHOSTBYNAME_R_3_ARGS
|
||||
|
||||
/* If the (nonstandard and thread-safe) function gethostbyaddr_r
|
||||
* is available, select which signature to use
|
||||
*/
|
||||
#undef HAVE_GETHOSTBYADDR_R_8_ARGS
|
||||
#undef HAVE_GETHOSTBYADDR_R_7_ARGS
|
||||
#undef HAVE_GETHOSTBYADDR_R_5_ARGS
|
||||
|
||||
/* Defined if you have gmtime_r and localtime_r with a signature
|
||||
* of (struct time *, struct tm *)
|
||||
*/
|
||||
#undef HAVE_GMTIME_R
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
/* Define to 'int' if <sys/socket.h> doesn't have it.
|
||||
*/
|
||||
#undef socklen_t
|
||||
|
||||
/* Define if pcre.h must be included as <pcre/pcre.h>
|
||||
*/
|
||||
#undef PCRE_H_IN_SUBDIR
|
||||
|
||||
/* Define if pcreposix.h must be included as <pcre/pcreposix.h>
|
||||
*/
|
||||
#undef PCREPOSIX_H_IN_SUBDIR
|
||||
|
||||
|
||||
/* Define to 1 to use compression through the zlib library. */
|
||||
#undef FEATURE_ZLIB
|
||||
|
||||
/* Define to 1 if you have the `access' function. */
|
||||
#undef HAVE_ACCESS
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#undef HAVE_ARPA_INET_H
|
||||
|
||||
/* Define to 1 if you have the `atexit' function. */
|
||||
#undef HAVE_ATEXIT
|
||||
|
||||
/* Define to 1 if you have the `bcopy' function. */
|
||||
#undef HAVE_BCOPY
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_DIRENT_H
|
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */
|
||||
#undef HAVE_ERRNO_H
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#undef HAVE_GETCWD
|
||||
|
||||
/* Define to 1 if you have the `gethostbyaddr' function. */
|
||||
#undef HAVE_GETHOSTBYADDR
|
||||
|
||||
/* Define to 1 if you have the `gethostbyaddr_r' function. */
|
||||
#undef HAVE_GETHOSTBYADDR_R
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname' function. */
|
||||
#undef HAVE_GETHOSTBYNAME
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname_r' function. */
|
||||
#undef HAVE_GETHOSTBYNAME_R
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
#undef HAVE_INET_NTOA
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `nsl' library (-lnsl). */
|
||||
#undef HAVE_LIBNSL
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#undef HAVE_LOCALE_H
|
||||
|
||||
/* Define to 1 if you have the `localtime_r' function. */
|
||||
#undef HAVE_LOCALTIME_R
|
||||
|
||||
/* Define to 1 if you have the `memchr' function. */
|
||||
#undef HAVE_MEMCHR
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
#undef HAVE_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */
|
||||
#undef HAVE_NETDB_H
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define to 1 if you have the <OS.h> header file. */
|
||||
#undef HAVE_OS_H
|
||||
|
||||
/* Define to 1 if you have the `poll' function. */
|
||||
#undef HAVE_POLL
|
||||
|
||||
/* Define to 1 if you have the `putenv' function. */
|
||||
#undef HAVE_PUTENV
|
||||
|
||||
/* Define to 1 if you have the `random' function. */
|
||||
#undef HAVE_RANDOM
|
||||
|
||||
/* Define to 1 if you have the `regcomp' function. */
|
||||
#undef HAVE_REGCOMP
|
||||
|
||||
/* Define to 1 if you have the `select' function. */
|
||||
#undef HAVE_SELECT
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#undef HAVE_SNPRINTF
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#undef HAVE_SOCKET
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#undef HAVE_STRCHR
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#undef HAVE_STRDUP
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the `strftime' function. */
|
||||
#undef HAVE_STRFTIME
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Define to 1 if you have the `strptime' function. */
|
||||
#undef HAVE_STRPTIME
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#undef HAVE_STRTOUL
|
||||
|
||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_DIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/timeb.h> header file. */
|
||||
#undef HAVE_SYS_TIMEB_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define to 1 if you have the `timegm' function. */
|
||||
#undef HAVE_TIMEGM
|
||||
|
||||
/* Define to 1 if you have the `tzset' function. */
|
||||
#undef HAVE_TZSET
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#undef RETSIGTYPE
|
||||
|
||||
/* Define to 1 if the `setpgrp' function takes no argument. */
|
||||
#undef SETPGRP_VOID
|
||||
|
||||
/* The size of `char *', as computed by sizeof. */
|
||||
#undef SIZEOF_CHAR_P
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of `long long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG_LONG
|
||||
|
||||
/* The size of `size_t', as computed by sizeof. */
|
||||
#undef SIZEOF_SIZE_T
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef pid_t
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define to 'int' if <sys/socket.h> doesn't have it. */
|
||||
#undef socklen_t
|
||||
|
||||
/*
|
||||
* Defined always.
|
||||
* FIXME: Don't know what it does or why we need it.
|
||||
* (presumably something to do with ANSI Standard C?)
|
||||
*/
|
||||
#ifndef __STDC__
|
||||
#define __STDC__ 1
|
||||
#endif /* ndef __STDC__ */
|
||||
|
||||
/*
|
||||
* Need to set up this define only for the Pthreads library for
|
||||
* Win32, available from http://sources.redhat.com/pthreads-win32/
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(_WIN32)
|
||||
#define __CLEANUP_C
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(_WIN32) */
|
||||
|
||||
/*
|
||||
* BEOS does not currently support POSIX threads.
|
||||
* This *should* be detected by ./configure, but let's be sure.
|
||||
*/
|
||||
#if defined(FEATURE_PTHREAD) && defined(__BEOS__)
|
||||
#error BEOS does not support pthread - please run ./configure again with "--disable-pthread"
|
||||
|
||||
#endif /* defined(FEATURE_PTHREAD) && defined(__BEOS__) */
|
||||
|
||||
/*
|
||||
* On OpenBSD and maybe also FreeBSD, gcc doesn't define the cpp
|
||||
* symbol unix; it defines __unix__ and sometimes not even that:
|
||||
*/
|
||||
#if ( defined(__unix__) || defined(__NetBSD__) ) && !defined(unix)
|
||||
#define unix 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* It's too easy to accidentally use a Cygwin or MinGW32 version of config.h
|
||||
* under VC++, and it usually gives many wierd error messages. Let's make
|
||||
* the error messages understandable, by bailing out now.
|
||||
*/
|
||||
#ifdef _MSC_VER
|
||||
#error For MS VC++, please use vc_config_winthreads.h or vc_config_pthreads.h. You can usually do this by selecting the "Build", "Clean" menu option.
|
||||
#endif /* def _MSC_VER */
|
||||
|
||||
#endif /* CONFIG_H_INCLUDED */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,80 @@
|
|||
#ifndef CYGWIN_H_INCLUDED
|
||||
#define CYGWIN_H_INCLUDED
|
||||
#define CYGWIN_H_VERSION "$Id: cygwin.h,v 1.6 2006/07/18 14:48:45 david__schmidt Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/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
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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 $
|
||||
* Revision 1.6 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.4 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.3 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.2 2001/07/29 18:43:08 jongfoster
|
||||
* Changing #ifdef _FILENAME_H to FILENAME_H_INCLUDED, to conform to
|
||||
* ANSI C rules.
|
||||
*
|
||||
* Revision 1.1.1.1 2001/05/15 13:58:51 oes
|
||||
* Initial import of version 2.9.3 source tree
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
/* 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_INCLUDED */
|
||||
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
|
@ -0,0 +1,554 @@
|
|||
const char deanimate_rcs[] = "$Id: deanimate.c,v 1.19 2008/05/21 15:29:35 fabiankeil Exp $";
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/deanimate.c,v $
|
||||
*
|
||||
* Purpose : Declares functions to manipulate binary images on the
|
||||
* fly. High-level functions include:
|
||||
* - Deanimation of GIF images
|
||||
*
|
||||
* Functions declared include: gif_deanimate, buf_free,
|
||||
* buf_copy, buf_getbyte, gif_skip_data_block
|
||||
* and gif_extract_image
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001 - 2004, 2006 by the
|
||||
* SourceForge Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* Based on the GIF file format specification (see
|
||||
* http://tronche.com/computer-graphics/gif/gif89a.html)
|
||||
* and ideas from the Image::DeAnim Perl module by
|
||||
* Ken MacFarlane, <ksm+cpan@universal.dca.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: deanimate.c,v $
|
||||
* Revision 1.19 2008/05/21 15:29:35 fabiankeil
|
||||
* Fix gcc43 warnings.
|
||||
*
|
||||
* Revision 1.18 2008/03/28 15:13:38 fabiankeil
|
||||
* Remove inspect-jpegs action.
|
||||
*
|
||||
* Revision 1.17 2007/08/05 13:42:22 fabiankeil
|
||||
* #1763173 from Stefan Huehner: declare some more functions static.
|
||||
*
|
||||
* Revision 1.16 2007/07/14 08:01:58 fabiankeil
|
||||
* s@failiure@failure@
|
||||
*
|
||||
* Revision 1.15 2007/01/03 14:39:19 fabiankeil
|
||||
* Fix a gcc43 warning and mark the binbuffer
|
||||
* as immutable for buf_getbyte().
|
||||
*
|
||||
* Revision 1.14 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.12.2.1 2004/10/03 12:53:32 david__schmidt
|
||||
* Add the ability to check jpeg images for invalid
|
||||
* lengths of comment blocks. Defensive strategy
|
||||
* against the exploit:
|
||||
* Microsoft Security Bulletin MS04-028
|
||||
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||
* Allow Code Execution (833987)
|
||||
* Enabled with +inspect-jpegs in actions files.
|
||||
*
|
||||
* Revision 1.12 2002/05/12 21:36:29 jongfoster
|
||||
* Correcting function comments
|
||||
*
|
||||
* Revision 1.11 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.10 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.9 2002/03/13 00:27:04 jongfoster
|
||||
* Killing warnings
|
||||
*
|
||||
* Revision 1.8 2002/03/09 19:42:47 jongfoster
|
||||
* Fixing more warnings
|
||||
*
|
||||
* Revision 1.7 2002/03/08 17:46:04 jongfoster
|
||||
* Fixing int/size_t warnings
|
||||
*
|
||||
* Revision 1.6 2002/03/07 03:46:17 oes
|
||||
* Fixed compiler warnings
|
||||
*
|
||||
* Revision 1.5 2001/09/10 10:16:06 oes
|
||||
* Silenced compiler warnings
|
||||
*
|
||||
* Revision 1.4 2001/07/18 12:28:49 oes
|
||||
* - Added feature for extracting the first frame
|
||||
* to gif_deanimate
|
||||
* - Separated image buffer extension into buf_extend
|
||||
* - Extended gif deanimation to GIF87a (untested!)
|
||||
* - Cosmetics
|
||||
*
|
||||
* Revision 1.3 2001/07/15 13:57:50 jongfoster
|
||||
* Adding #includes string.h and miscutil.h
|
||||
*
|
||||
* Revision 1.2 2001/07/13 13:46:20 oes
|
||||
* Introduced GIF deanimation feature
|
||||
*
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "errlog.h"
|
||||
#include "project.h"
|
||||
#include "deanimate.h"
|
||||
#include "miscutil.h"
|
||||
|
||||
const char deanimate_h_rcs[] = DEANIMATE_H_VERSION;
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : buf_free
|
||||
*
|
||||
* Description : Safely frees a struct binbuffer
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : buf = Pointer to the binbuffer to be freed
|
||||
*
|
||||
* Returns : N/A
|
||||
*
|
||||
*********************************************************************/
|
||||
void buf_free(struct binbuffer *buf)
|
||||
{
|
||||
if (buf == NULL) return;
|
||||
|
||||
if (buf->buffer != NULL)
|
||||
{
|
||||
free(buf->buffer);
|
||||
}
|
||||
|
||||
free(buf);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : buf_extend
|
||||
*
|
||||
* Description : Ensure that a given binbuffer can hold a given amount
|
||||
* of bytes, by reallocating its buffer if necessary.
|
||||
* Allocate new mem in chunks of 1024 bytes, so we don't
|
||||
* have to realloc() too often.
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : buf = Pointer to the binbuffer
|
||||
* 2 : length = Desired minimum size
|
||||
*
|
||||
*
|
||||
* Returns : 0 on success, 1 on failure.
|
||||
*
|
||||
*********************************************************************/
|
||||
static int buf_extend(struct binbuffer *buf, size_t length)
|
||||
{
|
||||
char *newbuf;
|
||||
|
||||
if (buf->offset + length > buf->size)
|
||||
{
|
||||
buf->size = ((buf->size + length + (size_t)1023) & ~(size_t)1023);
|
||||
newbuf = (char *)realloc(buf->buffer, buf->size);
|
||||
|
||||
if (newbuf == NULL)
|
||||
{
|
||||
freez(buf->buffer);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
buf->buffer = newbuf;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : buf_copy
|
||||
*
|
||||
* Description : Safely copies a given amount of bytes from one
|
||||
* struct binbuffer to another, advancing the
|
||||
* offsets appropriately.
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : src = Pointer to the source binbuffer
|
||||
* 2 : dst = Pointer to the destination binbuffer
|
||||
* 3 : length = Number of bytes to be copied
|
||||
*
|
||||
* Returns : 0 on success, 1 on failure.
|
||||
*
|
||||
*********************************************************************/
|
||||
static int buf_copy(struct binbuffer *src, struct binbuffer *dst, size_t length)
|
||||
{
|
||||
|
||||
/*
|
||||
* Sanity check: Can't copy more data than we have
|
||||
*/
|
||||
if (src->offset + length > src->size)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ensure that dst can hold the new data
|
||||
*/
|
||||
if (buf_extend(dst, length))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now that it's safe, memcpy() the desired amount of
|
||||
* data from src to dst and adjust the offsets
|
||||
*/
|
||||
memcpy(dst->buffer + dst->offset, src->buffer + src->offset, length);
|
||||
src->offset += length;
|
||||
dst->offset += length;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : buf_getbyte
|
||||
*
|
||||
* Description : Safely gets a byte from a given binbuffer at a
|
||||
* given offset
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : src = Pointer to the source binbuffer
|
||||
* 2 : offset = Offset to the desired byte
|
||||
*
|
||||
* Returns : The byte on success, or 0 on failure
|
||||
*
|
||||
*********************************************************************/
|
||||
static unsigned char buf_getbyte(const struct binbuffer *src, size_t offset)
|
||||
{
|
||||
if (src->offset + offset < src->size)
|
||||
{
|
||||
return (unsigned char)*(src->buffer + src->offset + offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
return '\0';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : gif_skip_data_block
|
||||
*
|
||||
* Description : Safely advances the offset of a given struct binbuffer
|
||||
* that contains a GIF image and whose offset is
|
||||
* positioned at the start of a data block, behind
|
||||
* that block.
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : buf = Pointer to the binbuffer
|
||||
*
|
||||
* Returns : 0 on success, or 1 on failure
|
||||
*
|
||||
*********************************************************************/
|
||||
static int gif_skip_data_block(struct binbuffer *buf)
|
||||
{
|
||||
unsigned char c;
|
||||
|
||||
/*
|
||||
* Data blocks are sequences of chunks, which are headed
|
||||
* by a one-byte length field, with the last chunk having
|
||||
* zero length.
|
||||
*/
|
||||
while((c = buf_getbyte(buf, 0)) != '\0')
|
||||
{
|
||||
buf->offset += (size_t)c + 1;
|
||||
if (buf->offset >= buf->size - 1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
buf->offset++;
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : gif_extract_image
|
||||
*
|
||||
* Description : Safely extracts an image data block from a given
|
||||
* struct binbuffer that contains a GIF image and whose
|
||||
* offset is positioned at the start of a data block
|
||||
* into a given destination binbuffer.
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : src = Pointer to the source binbuffer
|
||||
* 2 : dst = Pointer to the destination binbuffer
|
||||
*
|
||||
* Returns : 0 on success, or 1 on failure
|
||||
*
|
||||
*********************************************************************/
|
||||
static int gif_extract_image(struct binbuffer *src, struct binbuffer *dst)
|
||||
{
|
||||
unsigned char c;
|
||||
|
||||
/*
|
||||
* Remember the colormap flag and copy the image head
|
||||
*/
|
||||
c = buf_getbyte(src, 9);
|
||||
if (buf_copy(src, dst, 10))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the image has a local colormap, copy it.
|
||||
*/
|
||||
if (c & 0x80)
|
||||
{
|
||||
int map_length = 3 * (1 << ((c & 0x07) + 1));
|
||||
if (map_length <= 0)
|
||||
{
|
||||
log_error(LOG_LEVEL_DEANIMATE,
|
||||
"colormap length = %d (%c)?", map_length, c);
|
||||
return 1;
|
||||
}
|
||||
if (buf_copy(src, dst, (size_t)map_length))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (buf_copy(src, dst, 1)) return 1;
|
||||
|
||||
/*
|
||||
* Copy the image chunk by chunk.
|
||||
*/
|
||||
while((c = buf_getbyte(src, 0)) != '\0')
|
||||
{
|
||||
if (buf_copy(src, dst, 1 + (size_t) c)) return 1;
|
||||
}
|
||||
if (buf_copy(src, dst, 1)) return 1;
|
||||
|
||||
/*
|
||||
* Trim and rewind the dst buffer
|
||||
*/
|
||||
if (NULL == (dst->buffer = (char *)realloc(dst->buffer, dst->offset))) return 1;
|
||||
dst->size = dst->offset;
|
||||
dst->offset = 0;
|
||||
|
||||
return(0);
|
||||
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* Function : gif_deanimate
|
||||
*
|
||||
* Description : Deanimate a given GIF image, i.e. given a GIF with
|
||||
* an (optional) image block and an arbitrary number
|
||||
* of image extension blocks, produce an output GIF with
|
||||
* only one image block that contains the last image
|
||||
* (extenstion) block of the original.
|
||||
* Also strip Comments, Application extenstions, etc.
|
||||
*
|
||||
* Parameters :
|
||||
* 1 : src = Pointer to the source binbuffer
|
||||
* 2 : dst = Pointer to the destination binbuffer
|
||||
* 3 : get_first_image = Flag: If set, get the first image
|
||||
* If unset (default), get the last
|
||||
*
|
||||
* Returns : 0 on success, or 1 on failure
|
||||
*
|
||||
*********************************************************************/
|
||||
int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_image)
|
||||
{
|
||||
unsigned char c;
|
||||
struct binbuffer *image;
|
||||
|
||||
if (NULL == src || NULL == dst)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
c = buf_getbyte(src, 10);
|
||||
|
||||
/*
|
||||
* Check & copy GIF header
|
||||
*/
|
||||
if (strncmp(src->buffer, "GIF89a", 6) && strncmp(src->buffer, "GIF87a", 6))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (buf_copy(src, dst, 13))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Look for global colormap and copy if found.
|
||||
*/
|
||||
if(c & 0x80)
|
||||
{
|
||||
int map_length = 3 * (1 << ((c & 0x07) + 1));
|
||||
if (map_length <= 0)
|
||||
{
|
||||
log_error(LOG_LEVEL_DEANIMATE,
|
||||
"colormap length = %d (%c)?", map_length, c);
|
||||
return 1;
|
||||
}
|
||||
if (buf_copy(src, dst, (size_t)map_length))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Reserve a buffer for the current image block
|
||||
*/
|
||||
if (NULL == (image = (struct binbuffer *)zalloc(sizeof(*image))))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse the GIF block by block and copy the relevant
|
||||
* parts to dst
|
||||
*/
|
||||
while(src->offset < src->size)
|
||||
{
|
||||
switch(buf_getbyte(src, 0))
|
||||
{
|
||||
/*
|
||||
* End-of-GIF Marker: Append current image and return
|
||||
*/
|
||||
case 0x3b:
|
||||
goto write;
|
||||
|
||||
/*
|
||||
* Image block: Extract to current image buffer.
|
||||
*/
|
||||
case 0x2c:
|
||||
image->offset = 0;
|
||||
if (gif_extract_image(src, image)) goto failed;
|
||||
if (get_first_image) goto write;
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Extension block: Look at next byte and decide
|
||||
*/
|
||||
case 0x21:
|
||||
switch (buf_getbyte(src, 1))
|
||||
{
|
||||
/*
|
||||
* Image extension: Copy extension header and image
|
||||
* to the current image buffer
|
||||
*/
|
||||
case 0xf9:
|
||||
image->offset = 0;
|
||||
if (buf_copy(src, image, 8) || buf_getbyte(src, 0) != 0x2c) goto failed;
|
||||
if (gif_extract_image(src, image)) goto failed;
|
||||
if (get_first_image) goto write;
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Application extension: Skip
|
||||
*/
|
||||
case 0xff:
|
||||
if ((src->offset += 14) >= src->size || gif_skip_data_block(src)) goto failed;
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Comment extension: Skip
|
||||
*/
|
||||
case 0xfe:
|
||||
if ((src->offset += 2) >= src->size || gif_skip_data_block(src)) goto failed;
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Plain text extension: Skip
|
||||
*/
|
||||
case 0x01:
|
||||
if ((src->offset += 15) >= src->size || gif_skip_data_block(src)) goto failed;
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Ooops, what type of extension is that?
|
||||
*/
|
||||
default:
|
||||
goto failed;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Ooops, what type of block is that?
|
||||
*/
|
||||
default:
|
||||
goto failed;
|
||||
|
||||
}
|
||||
} /* -END- while src */
|
||||
|
||||
/*
|
||||
* Either we got here by goto, or because the GIF is
|
||||
* bogus and EOF was reached before an end-of-gif marker
|
||||
* was found.
|
||||
*/
|
||||
|
||||
failed:
|
||||
buf_free(image);
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* Append the current image to dst and return
|
||||
*/
|
||||
|
||||
write:
|
||||
if (buf_copy(image, dst, image->size)) goto failed;
|
||||
if (buf_extend(dst, 1)) goto failed;
|
||||
*(dst->buffer + dst->offset++) = 0x3b;
|
||||
buf_free(image);
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
|
@ -0,0 +1,126 @@
|
|||
#ifndef DEANIMATE_H_INCLUDED
|
||||
#define DEANIMATE_H_INCLUDED
|
||||
#define DEANIMATE_H_VERSION "$Id: deanimate.h,v 1.12 2008/03/28 15:13:39 fabiankeil Exp $"
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/deanimate.h,v $
|
||||
*
|
||||
* Purpose : Declares functions to manipulate binary images on the
|
||||
* fly. High-level functions include:
|
||||
* - Deanimation of GIF images
|
||||
*
|
||||
* Functions declared include: gif_deanimate and buf_free.
|
||||
*
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001 - 2004 by the the
|
||||
* SourceForge Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* Based on ideas from the Image::DeAnim Perl module by
|
||||
* Ken MacFarlane, <ksm+cpan@universal.dca.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: deanimate.h,v $
|
||||
* Revision 1.12 2008/03/28 15:13:39 fabiankeil
|
||||
* Remove inspect-jpegs action.
|
||||
*
|
||||
* Revision 1.11 2007/01/12 15:41:00 fabiankeil
|
||||
* Remove some white space at EOL.
|
||||
*
|
||||
* Revision 1.10 2006/07/18 14:48:45 david__schmidt
|
||||
* Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
* with what was really the latest development (the v_3_0_branch branch)
|
||||
*
|
||||
* Revision 1.8.2.1 2004/10/03 12:53:32 david__schmidt
|
||||
* Add the ability to check jpeg images for invalid
|
||||
* lengths of comment blocks. Defensive strategy
|
||||
* against the exploit:
|
||||
* Microsoft Security Bulletin MS04-028
|
||||
* Buffer Overrun in JPEG Processing (GDI+) Could
|
||||
* Allow Code Execution (833987)
|
||||
* Enabled with +inspect-jpegs in actions files.
|
||||
*
|
||||
* Revision 1.8 2002/03/26 22:29:54 swa
|
||||
* we have a new homepage!
|
||||
*
|
||||
* Revision 1.7 2002/03/24 13:25:43 swa
|
||||
* name change related issues
|
||||
*
|
||||
* Revision 1.6 2002/03/08 17:46:04 jongfoster
|
||||
* Fixing int/size_t warnings
|
||||
*
|
||||
* Revision 1.5 2002/03/07 03:46:17 oes
|
||||
* Fixed compiler warnings
|
||||
*
|
||||
* Revision 1.4 2001/07/29 18:50:04 jongfoster
|
||||
* Fixing "extern C" block, and renaming #define _DEANIMATE_H
|
||||
*
|
||||
* Revision 1.3 2001/07/18 12:29:05 oes
|
||||
* Updated prototype for gif_deanimate
|
||||
*
|
||||
* Revision 1.2 2001/07/13 13:46:20 oes
|
||||
* Introduced GIF deanimation feature
|
||||
*
|
||||
*
|
||||
*********************************************************************/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* A struct that holds a buffer, a read/write offset,
|
||||
* and the buffer's capacity.
|
||||
*/
|
||||
struct binbuffer
|
||||
{
|
||||
char *buffer;
|
||||
size_t offset;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
/*
|
||||
* Function prototypes
|
||||
*/
|
||||
extern int gif_deanimate(struct binbuffer *src, struct binbuffer *dst, int get_first_image);
|
||||
extern void buf_free(struct binbuffer *buf);
|
||||
|
||||
/*
|
||||
* Revision control strings from this header and associated .c file
|
||||
*/
|
||||
extern const char deanimate_rcs[];
|
||||
extern const char deanimate_h_rcs[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* ndef DEANIMATE_H_INCLUDED */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
tab-width: 3
|
||||
end:
|
||||
*/
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,560 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!-- $Id: gpl.html,v 1.4 2002/04/08 20:39:43 swa Exp $
|
||||
|
||||
See copyright details at end of file
|
||||
|
||||
After changing this file, please run it through "HTML Tidy"
|
||||
(from http://www.w3.org/People/Raggett/tidy/)
|
||||
It should have no warnings or errors.
|
||||
-->
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>The GNU General Public License</title>
|
||||
<meta name="description" content=
|
||||
"GNU General Public License, as used by Junkbuster">
|
||||
<meta name="keywords" content="">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
h2 { text-align: Center; font-family: arial, helvetica, sans-serif }
|
||||
p.sans { font-family: arial, helvetica, sans-serif }
|
||||
b.dot { color: #FF0000 }
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#f8f8f0" link="#000078" alink="#ff0022" vlink=
|
||||
"#787878">
|
||||
<p class="sans"><a href="http://www.privoxy.org/">
|
||||
Website</a> <b class="dot">·</b> <a href="ijbman.html">
|
||||
Manual</a> <b class="dot">·</b> <a href="ijbfaq.html">
|
||||
FAQ</a> <b class="dot">·</b> <b>GPL</b></p>
|
||||
|
||||
<h1 align="center"><a name="top_of_page">Internet J<small>UNK<i
|
||||
style="color: #FF0000">BUSTER</i></small> License</a></h1>
|
||||
|
||||
<h1>This document is out of date</h1>
|
||||
|
||||
<p><b>Development of Junkbuster is ongoing and this document is
|
||||
no longer current. However, it may provide some assistance. If
|
||||
you have problems, please use the <a href=
|
||||
"http://groups.yahoo.com/group/junkbuster-users/">Yahoo Groups
|
||||
mailing list</a> (which includes an archive of mail), the
|
||||
SourceForge.net <a href=
|
||||
"http://sourceforge.net/projects/ijbswa/">project page</a>, or
|
||||
see the project's <a href="http://www.privoxy.org/">home
|
||||
page</a>. Please also bear in mind that versions 2.9.x of
|
||||
Junkbuster are development releases, and are not production
|
||||
quality.</b></p>
|
||||
|
||||
<h3 align="center">The GNU General Public License</h3>
|
||||
|
||||
<p class="sans"><a name="notus"><b>We did not write the GPL:
|
||||
the <a href="http://www.fsf.org/fsf/fsf.html">Free Software
|
||||
Foundation</a> did</b></a></p>
|
||||
|
||||
<h3><img border="0" width="14" height="14" src="fb.gif" alt=
|
||||
"*"> The GPL allows copying and changing of copyrighted
|
||||
documents</h3>
|
||||
|
||||
<p><a name="fsf">The Free Software Foundation</a> <a href=
|
||||
"http://www.fsf.org/fsf/fsf.html">(FSF)</a> is a non-profit
|
||||
institution that designed the GNU General Public License (GPL)
|
||||
to promote the publication of free software. The GPL is used by
|
||||
thousands of programmers who want to give others the right to
|
||||
copy and modify the source code of their programs. Millions of
|
||||
people benefit from this.</p>
|
||||
|
||||
<p><a name="junkbuster">We use the GPL</a> to allow everyone to
|
||||
use, copy and modify the Internet Junkbuster as they wish. <a
|
||||
name="separate">Companies can use it for commercial
|
||||
purposes,</a> but they are not permitted to use it in products
|
||||
that they claim as their property.</p>
|
||||
|
||||
<p><a name="text">The GPL</a> can also be used on documents
|
||||
written in human languages. This documentation for the Internet
|
||||
Junkbuster is also under the GPL. This means that you do not
|
||||
have to break copyright laws in order to print a page or email
|
||||
a screen of the text to someone, for example.</p>
|
||||
|
||||
<p><a name="rest">The</a> remainder of this page is the text of
|
||||
the GPL. As legal documents go it's relatively clear, but
|
||||
unfortunately it's fairly long because it has to cover a lot of
|
||||
details. The HTML formatting is ours, and should not be
|
||||
misinterpreted as changing the license in any way.</p>
|
||||
|
||||
<p align="center"><a href="#top_of_page"><img border="0" width=
|
||||
"250" height="15" src="top.gif" alt=
|
||||
"--- Back to Top of Page ---"></a></p>
|
||||
|
||||
<h2><a name="v2">Version 2, June 1991</a></h2>
|
||||
|
||||
<blockquote>
|
||||
<a name="crn">Copyright 1989, 1991</a><br>
|
||||
<a name="address">Free Software Foundation, Inc.</a><br>
|
||||
675 Mass Ave.<br>
|
||||
Cambridge, MA 02139<br>
|
||||
USA
|
||||
</blockquote>
|
||||
<a name="changing">Everyone</a>
|
||||
|
||||
<p>is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.</p>
|
||||
|
||||
<h3><a name="pream"><img border="0" width="14" height="14" src=
|
||||
"fb.gif" alt="*"></a> Preamble</h3>
|
||||
|
||||
<p>The licenses for most software are designed to take away
|
||||
your freedom to share and change it. By contrast, the GNU
|
||||
General Public License is intended to guarantee your freedom to
|
||||
share and change free software--to make sure the software is
|
||||
free for all its users. This General Public License applies to
|
||||
most of the Free Software Foundation's software and to any
|
||||
other program whose authors commit to using it. (Some other
|
||||
Free Software Foundation software is covered by the GNU Library
|
||||
General Public License instead.) You can apply it to your
|
||||
programs, too.</p>
|
||||
|
||||
<p><a name="freedom">When we speak of free software,</a> we are
|
||||
referring to freedom, not price. Our General Public Licenses
|
||||
are designed to make sure that you have the freedom to
|
||||
distribute copies of free software (and charge for this service
|
||||
if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these
|
||||
things.</p>
|
||||
|
||||
<p><a name="forbid">To protect your rights,</a> we need to make
|
||||
restrictions that forbid anyone to deny you these rights or to
|
||||
ask you to surrender the rights. These restrictions translate
|
||||
to certain responsibilities for you if you distribute copies of
|
||||
the software, or if you modify it.</p>
|
||||
|
||||
<p><a name="allrights">For example,</a> if you distribute
|
||||
copies of such a program, whether gratis or for a fee, you must
|
||||
give the recipients all the rights that you have. You must make
|
||||
sure that they, too, receive or can get the source code. And
|
||||
you must show them these terms so they know their rights.</p>
|
||||
|
||||
<p><a name="steps">We protect your rights with two steps:</a>
|
||||
(1) copyright the software, and (2) offer you this license
|
||||
which gives you legal permission to copy, distribute and/or
|
||||
modify the software.</p>
|
||||
|
||||
<p><a name="protection">Also,</a> for each author's protection
|
||||
and ours, we want to make certain that everyone understands
|
||||
that there is no warranty for this free software. If the
|
||||
software is modified by someone else and passed on, we want its
|
||||
recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the
|
||||
original authors' reputations.</p>
|
||||
|
||||
<p><a name="threat">Finally,</a> any free program is threatened
|
||||
constantly by software patents. We wish to avoid the danger
|
||||
that redistributors of a free program will individually obtain
|
||||
patent licenses, in effect making the program proprietary. To
|
||||
prevent this, we have made it clear that any patent must be
|
||||
licensed for everyone's free use or not licensed at all.</p>
|
||||
|
||||
<p><a name="terms">The precise terms and conditions</a> for
|
||||
copying, distribution and modification follow.</p>
|
||||
|
||||
<h3><a name="tnc"><img border="0" width="14" height="14" src=
|
||||
"fb.gif" alt="*"></a> GNU General Public License: Terms
|
||||
and Conditions for Copying, Distribution and Modification</h3>
|
||||
|
||||
<p><a name="applies">O.</a> This License applies to any program
|
||||
or other work which contains a notice placed by the copyright
|
||||
holder saying it may be distributed under the terms of this
|
||||
General Public License. The "Program", below, refers to any
|
||||
such program or work, and a "work based on the Program" means
|
||||
either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of
|
||||
it, either verbatim or with modifications and/or translated
|
||||
into another language. (Hereinafter, translation is included
|
||||
without limitation in the term "modification".) Each licensee
|
||||
is addressed as "you".</p>
|
||||
|
||||
<p><a name="scope">Activities</a> other than copying,
|
||||
distribution and modification are not covered by this License;
|
||||
they are outside its scope. The act of running the Program is
|
||||
not restricted, and the output from the Program is covered only
|
||||
if its contents constitute a work based on the Program
|
||||
(independent of having been made by running the Program).</p>
|
||||
|
||||
<p><a name="depends">Whether that is true depends on what the
|
||||
Program does.</a><br>
|
||||
</p>
|
||||
|
||||
<ol type="1">
|
||||
<li>
|
||||
<a name="verbatim">You may copy</a> and distribute verbatim
|
||||
copies of the Program's source code as you receive it, in
|
||||
any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright
|
||||
notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of
|
||||
any warranty; and give any other recipients of the Program
|
||||
a copy of this License along with the Program.
|
||||
|
||||
<p><a name="fee">You may charge a fee</a> for the physical
|
||||
act of transferring a copy, and you may at your option
|
||||
offer warranty protection in exchange for a fee.</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a name="modify">You may modify</a> your copy or copies of
|
||||
the Program or any portion of it, thus forming a work based
|
||||
on the Program, and copy and distribute such modifications
|
||||
or work under the terms of Section 1 above, provided that
|
||||
you also meet all of these conditions:<br>
|
||||
|
||||
|
||||
<ol type="a">
|
||||
<li><a name="notices">You must cause</a> the modified
|
||||
files to carry prominent notices stating that you changed
|
||||
the files and the date of any change.</li>
|
||||
|
||||
<li><a name="nocharge">You must</a> cause any work that
|
||||
you distribute or publish, that in whole or in part
|
||||
contains or is derived from the Program or any part
|
||||
thereof, to be licensed as a whole at no charge to all
|
||||
third parties under the terms of this License.</li>
|
||||
|
||||
<li><a name="interactive">If the modified program</a>
|
||||
normally reads commands interactively when run, you must
|
||||
cause it, when started running for such interactive use
|
||||
in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice
|
||||
and a notice that there is no warranty (or else, saying
|
||||
that you provide a warranty) and that users may
|
||||
redistribute the program under these conditions, and
|
||||
telling the user how to view a copy of this License.
|
||||
(Exception: if the Program itself is interactive but does
|
||||
not normally print such an announcement, your work based
|
||||
on the Program is not required to print an
|
||||
announcement.)</li>
|
||||
</ol>
|
||||
|
||||
<p><a name="sections">These requirements</a> apply to the
|
||||
modified work as a whole. If identifiable sections of that
|
||||
work are not derived from the Program, and can be
|
||||
reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply
|
||||
to those sections when you distribute them as separate
|
||||
works. But when you distribute the same sections as part of
|
||||
a whole which is a work based on the Program, the
|
||||
distribution of the whole must be on the terms of this
|
||||
License, whose permissions for other licensees extend to
|
||||
the entire whole, and thus to each and every part
|
||||
regardless of who wrote it.</p>
|
||||
|
||||
<p><a name="intent">Thus,</a> it is not the intent of this
|
||||
section to claim rights or contest your rights to work
|
||||
written entirely by you; rather, the intent is to exercise
|
||||
the right to control the distribution of derivative or
|
||||
collective works based on the Program.</p>
|
||||
|
||||
<p><a name="aggregation">In addition,</a> mere aggregation
|
||||
of another work not based on the Program with the Program
|
||||
(or with a work based on the Program) on a volume of a
|
||||
storage or distribution medium does not bring the other
|
||||
work under the scope of this License.</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a name="exeutable">You may copy</a> and distribute the
|
||||
Program (or a work based on it, under Section 2) in object
|
||||
code or executable form under the terms of Sections 1 and 2
|
||||
above provided that you also do one of the following:<br>
|
||||
|
||||
|
||||
<ol type="a">
|
||||
<li><a name="medium">Accompany it</a> with the complete
|
||||
corresponding machine-readable source code, which must be
|
||||
distributed under the terms of Sections 1 and 2 above on
|
||||
a medium customarily used for software interchange;
|
||||
or,</li>
|
||||
|
||||
<li><a name="written">Accompany it with a written
|
||||
offer,</a> valid for at least three years, to give any
|
||||
third party, for a charge no more than your cost of
|
||||
physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code,
|
||||
to be distributed under the terms of Sections 1 and 2
|
||||
above on a medium customarily used for software
|
||||
interchange; or,</li>
|
||||
|
||||
<li><a name="distrib">Accompany it</a> with the
|
||||
information you received as to the offer to distribute
|
||||
corresponding source code. (This alternative is allowed
|
||||
only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form
|
||||
with such an offer, in accord with Subsection b
|
||||
above.)</li>
|
||||
</ol>
|
||||
|
||||
<p><a name="preferred">The source code</a> for a work means
|
||||
the preferred form of the work for making modifications to
|
||||
it. For an executable work, complete source code means all
|
||||
the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts
|
||||
used to control compilation and installation of the
|
||||
executable. However, as a special exception, the source
|
||||
code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the
|
||||
major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that
|
||||
component itself accompanies the executable.</p>
|
||||
|
||||
<p><a name="access">If distribution of executable or object
|
||||
code is made</a> by offering access to copy from a
|
||||
designated place, then offering equivalent access to copy
|
||||
the source code from the same place counts as distribution
|
||||
of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object
|
||||
code.</p>
|
||||
</li>
|
||||
|
||||
<li><a name="otherwise">You may not copy,</a> modify,
|
||||
sublicense, or distribute the Program except as expressly
|
||||
provided under this License. Any attempt otherwise to copy,
|
||||
modify, sublicense or distribute the Program is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from
|
||||
you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full
|
||||
compliance.</li>
|
||||
|
||||
<li><a name="voluntary">You are not required</a> to accept
|
||||
this License, since you have not signed it. However, nothing
|
||||
else grants you permission to modify or distribute the
|
||||
Program or its derivative works. These actions are prohibited
|
||||
by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on
|
||||
the Program), you indicate your acceptance of this License to
|
||||
do so, and all its terms and conditions for copying,
|
||||
distributing or modifying the Program or works based on
|
||||
it.</li>
|
||||
|
||||
<li><a name="redistrib">Each time you redistribute</a> the
|
||||
Program (or any work based on the Program), the recipient
|
||||
automatically receives a license from the original licensor
|
||||
to copy, distribute or modify the Program subject to these
|
||||
terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights
|
||||
granted herein. You are not responsible for enforcing
|
||||
compliance by third parties to this License.</li>
|
||||
|
||||
<li>
|
||||
<a name="patent">If, as a consequence of a court
|
||||
judgment</a> or allegation of patent infringement or for
|
||||
any other reason (not limited to patent issues), conditions
|
||||
are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License,
|
||||
they do not excuse you from the conditions of this License.
|
||||
If you cannot distribute so as to satisfy simultaneously
|
||||
your obligations under this License and any other pertinent
|
||||
obligations, then as a consequence you may not distribute
|
||||
the Program at all. For example, if a patent license would
|
||||
not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through
|
||||
you, then the only way you could satisfy both it and this
|
||||
License would be to refrain entirely from distribution of
|
||||
the Program.
|
||||
|
||||
<p><a name="invalid">If any portion</a> of this section is
|
||||
held invalid or unenforceable under any particular
|
||||
circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in
|
||||
other circumstances.</p>
|
||||
|
||||
<p><a name="induce">It is not the purpose</a> of this
|
||||
section to induce you to infringe any patents or other
|
||||
property right claims or to contest validity of any such
|
||||
claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which
|
||||
is implemented by public license practices. Many people
|
||||
have made generous contributions to the wide range of
|
||||
software distributed through that system in reliance on
|
||||
consistent application of that system; it is up to the
|
||||
author/donor to decide if he or she is willing to
|
||||
distribute software through any other system and a licensee
|
||||
cannot impose that choice.</p>
|
||||
|
||||
<p><a name="clarify">This section</a> is intended to make
|
||||
thoroughly clear what is believed to be a consequence of
|
||||
the rest of this License.</p>
|
||||
</li>
|
||||
|
||||
<li><a name="geog">If the distribution</a> and/or use of the
|
||||
Program is restricted in certain countries either by patents
|
||||
or by copyrighted interfaces, the original copyright holder
|
||||
who places the Program under this License may add an explicit
|
||||
geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License
|
||||
incorporates the limitation as if written in the body of this
|
||||
License.</li>
|
||||
|
||||
<li><a name="revise">The Free Software Foundation</a> may
|
||||
publish revised and/or new versions of the General Public
|
||||
License from time to time. Such new versions will be similar
|
||||
in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns. Each version is given a
|
||||
distinguishing version number. If the Program specifies a
|
||||
version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms
|
||||
and conditions either of that version or of any later version
|
||||
published by the Free Software Foundation. If the Program
|
||||
does not specify a version number of this License, you may
|
||||
choose any version ever published by the Free Software
|
||||
Foundation.</li>
|
||||
|
||||
<li>
|
||||
<a name="permission">If you wish to incorporate parts</a>
|
||||
of the Program into other free programs whose distribution
|
||||
conditions are different, write to the author to ask for
|
||||
permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation;
|
||||
we sometimes make exceptions for this. Our decision will be
|
||||
guided by the two goals of preserving the free status of
|
||||
all derivatives of our free software and of promoting the
|
||||
sharing and reuse of software generally.
|
||||
|
||||
<p><a name="nowarr">NO WARRANTY</a></p>
|
||||
</li>
|
||||
|
||||
<li><a name="foc">BECAUSE THE PROGRAM IS LICENSED FREE OF
|
||||
CHARGE,</a> THERE IS NO WARRANTY FOR THE PROGRAM, TO THE
|
||||
EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
||||
EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
|
||||
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
|
||||
SERVICING, REPAIR OR CORRECTION.</li>
|
||||
|
||||
<li><a name="liable">IN NO EVENT UNLESS REQUIRED</a> BY
|
||||
APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT
|
||||
HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
|
||||
DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</li>
|
||||
</ol>
|
||||
|
||||
<p>END OF TERMS AND CONDITIONS<br>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
<h3><a name="append"><img border="0" width="14" height="14"
|
||||
src="fb.gif" alt="*"></a> Appendix: How to Apply These
|
||||
Terms to Your New Programs</h3>
|
||||
|
||||
<p>If you develop a new program, and you want it to be of the
|
||||
greatest possible use to the public, the best way to achieve
|
||||
this is to make it free software which everyone can
|
||||
redistribute and change under these terms.</p>
|
||||
|
||||
<p><a name="attach">To do so,</a> attach the following notices
|
||||
to the program. It is safest to attach them to the start of
|
||||
each source file to most effectively convey the exclusion of
|
||||
warranty; and each file should have at least the "copyright"
|
||||
line and a pointer to where the full notice is found.</p>
|
||||
|
||||
<blockquote>
|
||||
<one line to give the program's name and a brief idea of
|
||||
what it does.> Copyright (C) 19yy <name of author>
|
||||
|
||||
<p><a name="free">This program is free software;</a> 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.</p>
|
||||
|
||||
<p><a name="merchant">This program</a> 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.</p>
|
||||
|
||||
<p><a name="ifnot">You should</a> 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.</p>
|
||||
</blockquote>
|
||||
|
||||
<p><a name="contact">Also add</a> information on how to contact
|
||||
you by electronic and paper mail.</p>
|
||||
|
||||
<p><a name="short">If the program is interactive,</a> make it
|
||||
output a short notice like this when it starts in an
|
||||
interactive mode:</p>
|
||||
|
||||
<blockquote>
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||||
type `show w'. This is free software, and you are welcome to
|
||||
redistribute it under certain conditions; type `show c' for
|
||||
details.
|
||||
</blockquote>
|
||||
|
||||
<p><a name="hypo">The hypothetical</a> commands `show w' and
|
||||
`show c' should show the appropriate parts of the General
|
||||
Public License. Of course, the commands you use may be called
|
||||
something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.</p>
|
||||
|
||||
<p><a name="disclaimer">You should also get your employer</a>
|
||||
(if you work as a programmer) or your school, if any, to sign a
|
||||
"copyright disclaimer" for the program, if necessary. Here is a
|
||||
sample; alter the names:</p>
|
||||
|
||||
<blockquote>
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in
|
||||
the program `Gnomovision' (which makes passes at compilers)
|
||||
written by James Hacker. <signature of Ty Coon>, 1
|
||||
April 1989<br>
|
||||
Ty Coon, President of Vice
|
||||
</blockquote>
|
||||
|
||||
<p><a name="library">This General Public License</a> does not
|
||||
permit incorporating your program into proprietary programs. If
|
||||
your program is a subroutine library, you may consider it more
|
||||
useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library
|
||||
General Public License instead of this License.</p>
|
||||
|
||||
<p align="center"><a href="#top_of_page"><img border="0" width=
|
||||
"250" height="15" src="top.gif" alt=
|
||||
"--- Back to Top of Page ---"></a></p>
|
||||
|
||||
<p class="sans"><a href="http://www.privoxy.org/">
|
||||
Website</a> <b class="dot">·</b> <a href="ijbman.html">
|
||||
Manual</a> <b class="dot">·</b> <a href="ijbfaq.html">
|
||||
FAQ</a> <b class="dot">·</b> <b>GPL</b></p>
|
||||
|
||||
<p class="sans"><small><small><a href="gpl.html#text">
|
||||
Copyright</a> © 1996-8 <a href=
|
||||
"http://www.junkbusters.com/">Junkbusters</a> <a href=
|
||||
"http://www.junkbusters.com/ht/en/legal.html#marks">®</a>
|
||||
Corporation. <a href="gpl.html#text">Copyright</a> © 2001
|
||||
<a href="http://sourceforge.net/projects/ijbswa/">Jon
|
||||
Foster</a>. Copying and distribution permitted under the <a
|
||||
href="gpl.html">GNU</a> General Public License. The text of the
|
||||
GNU GPL itself is copyrighted by the FSF, and may be copied but
|
||||
not modified.</small></small></p>
|
||||
|
||||
<p><small><code><a href=
|
||||
"http://sourceforge.net/projects/ijbswa/">
|
||||
http://sourceforge.net/projects/ijbswa/</a></code></small></p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,488 @@
|
|||
.\" Copyright (c) 2001-2003 Andreas S. Oesterhelt <oes@oesterhelt.org>
|
||||
.\"
|
||||
.\" This is free documentation; 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.
|
||||
.\"
|
||||
.\" The GNU General Public License's references to "object code"
|
||||
.\" and "executables" are to be interpreted as the output of any
|
||||
.\" document formatting or typesetting system, including
|
||||
.\" intermediate and printed output.
|
||||
.\"
|
||||
.\" This manual 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 manual; if not, write to the Free
|
||||
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
.\" MA 02111, USA.
|
||||
.\"
|
||||
.TH PCRS 3 "2 December 2003" "pcrs-0.0.3"
|
||||
.SH NAME
|
||||
pcrs - Perl-compatible regular substitution.
|
||||
.SH SYNOPSIS
|
||||
.br
|
||||
.B "#include <pcrs.h>"
|
||||
.PP
|
||||
.br
|
||||
.BI "pcrs_job *pcrs_compile(const char *" pattern ","
|
||||
.ti +5n
|
||||
.BI "const char *" substitute ", const char *" options ,
|
||||
.ti +5n
|
||||
.BI "int *" errptr );
|
||||
.PP
|
||||
.br
|
||||
.BI "pcrs_job *pcrs_compile_command(const char *" command ,
|
||||
.ti +5n
|
||||
.BI "int *" errptr );
|
||||
.PP
|
||||
.br
|
||||
.BI "int pcrs_execute(pcrs_job *" job ", char *" subject ,
|
||||
.ti +5n
|
||||
.BI "int " subject_length ", char **" result ,
|
||||
.ti +5n
|
||||
.BI "int *" result_length );
|
||||
.PP
|
||||
.br
|
||||
.BI "int pcrs_execute_list (pcrs_job *" joblist ", char *" subject ,
|
||||
.ti +5n
|
||||
.BI "int " subject_length ", char **" result ,
|
||||
.ti +5n
|
||||
.BI "int *" result_length );
|
||||
.PP
|
||||
.br
|
||||
.BI "pcrs_job *pcrs_free_job(pcrs_job *" job );
|
||||
.PP
|
||||
.br
|
||||
.BI "void pcrs_free_joblist(pcrs_job *" joblist );
|
||||
.PP
|
||||
.br
|
||||
.BI "char *pcrs_strerror(int " err );
|
||||
.PP
|
||||
.br
|
||||
|
||||
.SH DESCRIPTION
|
||||
|
||||
The
|
||||
.SM PCRS
|
||||
library is a supplement to the
|
||||
.SB PCRE(3)
|
||||
library that implements
|
||||
.RB "regular expression based substitution, like provided by " Perl(1) "'s 's'"
|
||||
operator. It uses the same syntax and semantics as Perl 5, with just a few
|
||||
differences (see below).
|
||||
|
||||
In a first step, the information on a substitution, i.e. the pattern, the
|
||||
substitute and the options are compiled from Perl syntax to an internal form
|
||||
.RB "called " pcrs_job " by using either the " pcrs_compile() " or "
|
||||
.BR pcrs_compile_command() " functions."
|
||||
|
||||
Once the job is compiled, it can be used on subjects, which are arbitrary
|
||||
memory areas containing string or binary data, by calling
|
||||
.BR pcrs_execute() ". Jobs can be chained to joblists and whole"
|
||||
.RB "joblists can be applied to a subject using " pcrs_execute_list() .
|
||||
|
||||
There are also convenience functions for freeing the jobs and for errno-to-string
|
||||
.RB "conversion, namely " pcrs_free_job() ", " pcrs_free_joblist() " and "
|
||||
.BR pcrs_strerror() .
|
||||
|
||||
.SH COMPILING JOBS
|
||||
|
||||
.RB "The function " pcrs_compile() " is called to compile a " pcrs_job
|
||||
.RI "from a " pattern ", " substitute " and " options " string."
|
||||
.RB "The resulting " "pcrs_job" " structure is dynamically allocated and it"
|
||||
.RB "is the caller's responsibility to call " "pcrs_free_job()" " when it's no longer needed."
|
||||
|
||||
.BR "pcrs_compile_command()" " is a convenience wrapper function that parses a Perl"
|
||||
.IR "command" " of the form"
|
||||
.BI "s/" "pattern" "/" "substitute" "/[" "options" "]"
|
||||
.RB "into its components and then calls " "pcrs_compile()" ". As in Perl, you"
|
||||
.RB "are not bound to the '" "/" "' character: Whatever"
|
||||
.RB "follows the '" "s" "' will be used as the delimiter. Patterns or substitutes"
|
||||
that contain the delimiter need to quote it:
|
||||
\fBs/th\\/is/th\\/at/\fR
|
||||
.RB "will replace " "th/is" " by " "th/at" " and can be written more simply as"
|
||||
.BR "s|th/is|th/at|" "."
|
||||
|
||||
.IR "pattern" ", " "substitute" ", " "options" " and " "command" " must be"
|
||||
.RI "zero-terminated C strings. " "substitute" " and " "options" " may be"
|
||||
.BR "NULL" ", in which case they are treated like the empty string."
|
||||
|
||||
.SS "Return value and diagnostics"
|
||||
On success, both functions return a pointer to the compiled job.
|
||||
.RB "On failure, " "NULL"
|
||||
.RI "is returned. In that case, the pcrs error code is written to *" "err" "."
|
||||
|
||||
.SS Patterns
|
||||
.RI "For the syntax of the " "pattern" ", see the "
|
||||
.BR "PCRE(3)" " manual page."
|
||||
|
||||
.SS Substitutes
|
||||
.RI "The " "substitute" " uses"
|
||||
.RB "Perl syntax as documented in the " "perlre(1)" " manual page, with"
|
||||
some exceptions:
|
||||
|
||||
Most notably and evidently, since
|
||||
.SM PCRS
|
||||
is not Perl, variable interpolation or Perl command substitution won't work.
|
||||
Special variables that do get interpolated, are:
|
||||
.TP
|
||||
.B "$1, $2, ..., $n"
|
||||
Like in Perl, these variables refer to what the nth capturing subpattern
|
||||
in the pattern matched.
|
||||
.TP
|
||||
.B "$& and $0"
|
||||
.RB "refer to the whole match. Note that " "$0" " is deprecated in recent"
|
||||
Perl versions and now refers to the program name.
|
||||
.TP
|
||||
.B "$+"
|
||||
refers to what the last capturing subpattern matched.
|
||||
.TP
|
||||
.BR "$` and $'" " (backtick and tick)"
|
||||
.RI "refer to the areas of the " "subject" " before and after the match, respectively."
|
||||
.RB "Note that, like in Perl, the " "unmodified" " subject is used, even"
|
||||
if a global substitution previously matched.
|
||||
|
||||
.PP
|
||||
Perl4-style references to subpattern matches of the form
|
||||
\fB\\1, \\2, ...\fR
|
||||
.RB "which only exist in Perl5 for backwards compatibility, are " "not"
|
||||
supported.
|
||||
|
||||
Also, since the substitute is a double-quoted string in Perl, you
|
||||
might expect all Perl syntax for special characters to apply. In fact,
|
||||
only the following are supported:
|
||||
|
||||
.TP
|
||||
\fB\\n\fR
|
||||
newline (0x0a)
|
||||
.TP
|
||||
\fB\\r\fR
|
||||
carriage return (0x0d)
|
||||
.TP
|
||||
\fB\\t\fR
|
||||
horizontal tab (0x09)
|
||||
.TP
|
||||
\fB\\f\fR
|
||||
form feed (0x0c)
|
||||
.TP
|
||||
\fB\\b\fR
|
||||
backspace (0x08)
|
||||
.TP
|
||||
\fB\\a\fR
|
||||
alarm, bell (0x07)
|
||||
.TP
|
||||
\fB\\e\fR
|
||||
escape (0x1b)
|
||||
.TP
|
||||
\fB\\0\fR
|
||||
binary zero (0x00)
|
||||
|
||||
.SS "Options"
|
||||
.RB "The options " "gmisx" " are supported. " "e" " is not, since it would"
|
||||
.RB "require a Perl interpreter and neither is " o ", because the pattern
|
||||
is explicitly compiled, anyway. Additionally,
|
||||
.SM PCRS
|
||||
.RB "honors the options " "U" " and " "T" "."
|
||||
Where
|
||||
.SM PCRE
|
||||
.RB "options are mentioned below, refer to " PCRE(3) " for the subtle differences"
|
||||
to Perl behaviour.
|
||||
|
||||
.TP
|
||||
.B g
|
||||
.RB "Replace " all " instances of"
|
||||
.IR pattern " in " subject ,
|
||||
not just the first one.
|
||||
|
||||
.TP
|
||||
.B i
|
||||
.RI "Match the " pattern " without respect to case. This translates to"
|
||||
.SM PCRE_CASELESS.
|
||||
|
||||
.TP
|
||||
.B m
|
||||
.RI "Treat the " subject " as consisting of multiple lines, i.e."
|
||||
.RB ' ^ "' matches immediately after, and '" $ "' immediately before each newline."
|
||||
Translates to
|
||||
.SM PCRE_MULTILINE.
|
||||
|
||||
.TP
|
||||
.B s
|
||||
.RI "Treat the " subject " as consisting of one single line, i.e."
|
||||
.RB "let the scope of the '" . "' metacharacter include newlines."
|
||||
Translates to
|
||||
.SM PCRE_DOTALL.
|
||||
|
||||
.TP
|
||||
.B x
|
||||
.RI "Allow extended regular expression syntax in the " pattern ","
|
||||
.RB "enabling whitespace and comments in complex patterns."
|
||||
Translates to
|
||||
.SM PCRE_EXTENDED.
|
||||
|
||||
.TP
|
||||
.B U
|
||||
.RB "Switch the default behaviour of the '" * "' and '" + "' quantifiers"
|
||||
.RB "to ungreedy. Note that appending a '" ? "' switches back to greedy(!)."
|
||||
.RB "The explicit in-pattern switches " (?U) " and " (?-U) " remain unaffected."
|
||||
Translates to
|
||||
.SM PCRE_UNGREEDY.
|
||||
|
||||
.TP
|
||||
.B T
|
||||
.RI "Consider the " substitute " trivial, i.e. do not interpret any references"
|
||||
or special character escape sequences in the substitute. Handy for large
|
||||
user-supplied substitutes, which would otherwise have to be examined and properly
|
||||
quoted.
|
||||
|
||||
.PP
|
||||
Unsupported options are silently ignored.
|
||||
|
||||
.SH EXECUTING JOBS
|
||||
|
||||
.RI "Calling " pcrs_execute() " produces a modified copy of the " subject ", in which"
|
||||
.RB "the first (or all, if the '" g "' option was given when compiling the job)"
|
||||
.RI "occurance(s) of the job's " pattern " in the " subject " is replaced by the job's"
|
||||
.IR substitute .
|
||||
|
||||
.RI "The first " subject_length " bytes following " subject " are processed, so"
|
||||
.RI "a " subject_length " that exceeds the actual " subject " is dangerous."
|
||||
.RI "Note that for zero-terminated C strings, you should set " subject_length " to"
|
||||
.BI strlen( subject ) \fR,
|
||||
so that the dollar metacharacter matches at the end of the string, not after
|
||||
the string-terminating null byte. For convenience, an extra null byte is
|
||||
appended to the result so it can again be used as a string.
|
||||
|
||||
.RI "The " subject " itself is left untouched, and the " *result " is dynamically"
|
||||
.RB "allocated, so it is the caller's responsibility to " free() " it when it's"
|
||||
no longer needed.
|
||||
|
||||
.RI "The result's length (excluding the extra null byte) is written to " *result_length "."
|
||||
|
||||
.RB "If the job matched, the " PCRS_SUCCESS " flag in"
|
||||
.IB job ->flags
|
||||
is set.
|
||||
|
||||
|
||||
.SS String subjects
|
||||
If your
|
||||
|
||||
.SS Return value and diagnostics
|
||||
|
||||
.RB "On success, " pcrs_execute() " returns the number of substitutions that"
|
||||
were made, which is limited to 0 or 1 for non-global searches.
|
||||
.RI "On failure, a negative error code is returned and " result " is set"
|
||||
.RB "to " NULL .
|
||||
|
||||
.SH FREEING JOBS
|
||||
.RB "It is not sufficient to call " free() " on a " pcrs_job ", because it "
|
||||
contains pointers to other dynamically allocated structures.
|
||||
.RB "Use " pcrs_free_job() " instead. It is safe to pass " NULL " pointers "
|
||||
.RB "(or pointers to invalid " pcrs_job "s that contain " NULL " pointers"
|
||||
.RB "to dependant structures) to " pcrs_free_job() "."
|
||||
|
||||
.SS Return value
|
||||
.RB "The value of the job's " next " pointer."
|
||||
|
||||
|
||||
.SH CHAINING JOBS
|
||||
|
||||
.SM PCRS
|
||||
.RB "supports to some extent the chaining of multiple " pcrs_job " structures by"
|
||||
.RB "means of their " next " member."
|
||||
|
||||
Chaining the jobs is up to you, but once you have built a linked list of jobs,
|
||||
.RI "you can execute a whole " joblist " on a given subject by"
|
||||
.RB "a single call to " pcrs_execute_list() ", which will sequentially traverse"
|
||||
.RB "the linked list until it reaches a " NULL " pointer, and call " pcrs_execute()
|
||||
.RI "for each job it encounters, feeding the " result " and " result_length " of each"
|
||||
.RI "call into the next as the " subject " and " subject_length ". As in the single"
|
||||
.RI "job case, the original " subject " remains untouched, but all interim " result "s"
|
||||
.RB "are of course " free() "d. The return value is the accumulated number of matches"
|
||||
.RI "for all jobs in the " joblist "."
|
||||
.RI "Note that while this is handy, it reduces the diagnostic value of " err ", since "
|
||||
you won't know which job failed.
|
||||
|
||||
.RI "In analogy, you can free all jobs in a given " joblist " by calling"
|
||||
.BR pcrs_free_joblist() .
|
||||
|
||||
.SH QUOTING
|
||||
The quote character is (surprise!) '\fB\\\fR'. It quotes the delimiter in a
|
||||
.IR command ", the"
|
||||
.RB ' $ "' in a"
|
||||
.IR substitute ", and, of course, itself. Note that the"
|
||||
.RB ' $ "' doesn't need to be quoted if it isn't followed by " [0-9+'`&] "."
|
||||
|
||||
.RI "For quoting in the " pattern ", please refer to"
|
||||
.BR PCRE(3) .
|
||||
|
||||
.SH DIAGNOSTICS
|
||||
|
||||
.RB "When " compiling " a job either via the " pcrs_compile() " or " pcrs_compile_command()
|
||||
.RB "functions, you know that something went wrong when you are returned a " NULL " pointer."
|
||||
.RI "In that case, or in the event of non-fatal warnings, the integer pointed to by " err
|
||||
contains a nonzero error code, which is either a passed-through
|
||||
.SM PCRE
|
||||
error code or one generated by
|
||||
.SM PCRS.
|
||||
Under normal circumstances, it can take the following values:
|
||||
.TP
|
||||
.B PCRE_ERROR_NOMEMORY
|
||||
While compiling the pattern,
|
||||
.SM PCRE
|
||||
ran out of memory.
|
||||
.TP
|
||||
.B PCRS_ERR_NOMEM
|
||||
While compiling the job,
|
||||
.SM PCRS
|
||||
ran out of memory.
|
||||
.TP
|
||||
.B PCRS_ERR_CMDSYNTAX
|
||||
.BR pcrs_compile_command() " didn't find four tokens while parsing the"
|
||||
.IR command .
|
||||
.TP
|
||||
.B PCRS_ERR_STUDY
|
||||
A
|
||||
.SM PCRE
|
||||
.RB "error occured while studying the compiled pattern. Since " pcre_study()
|
||||
only provides textual diagnostic information, the details are lost.
|
||||
.TP
|
||||
.B PCRS_WARN_BADREF
|
||||
.RI "The " substitute " contains a reference to a capturing subpattern that"
|
||||
.RI "has a higher index than the number of capturing subpatterns in the " pattern
|
||||
or that exceeds the current hard limit of 33 (See LIMITATIONS below). As in Perl,
|
||||
this is non-fatal and results in substitutions with the empty string.
|
||||
|
||||
.PP
|
||||
.RB "When " executing " jobs via " pcrs_execute() " or " pcrs_execute_list() ","
|
||||
.RI "a negative return code indicates an error. In that case, *" result
|
||||
.RB "is " NULL ". Possible error codes are:"
|
||||
.TP
|
||||
.B PCRE_ERROR_NOMEMORY
|
||||
While matching the pattern,
|
||||
.SM PCRE
|
||||
ran out of memory. This can only happen if there are more than 33 backrefrences
|
||||
.RI "in the " pattern "(!)"
|
||||
.BR and " memory is too tight to extend storage for more."
|
||||
.TP
|
||||
.B PCRS_ERR_NOMEM
|
||||
While executing the job,
|
||||
.SM PCRS
|
||||
ran out of memory.
|
||||
.TP
|
||||
.B PCRS_ERR_BADJOB
|
||||
.RB "The " pcrs_job "* passed to " pcrs_execute " was NULL, or the"
|
||||
.RB "job is bogus (it contains " NULL " pointers to the compiled
|
||||
pattern, extra, or substitute).
|
||||
|
||||
.PP
|
||||
If you see any other
|
||||
.SM PCRE
|
||||
error code passed through, you've either messed with the compiled job
|
||||
or found a bug in
|
||||
.SM PCRS.
|
||||
Please send me an email.
|
||||
|
||||
.RB "Ah, and don't look for " PCRE_ERROR_NOMATCH ", since this"
|
||||
is not an error in the context of
|
||||
.SM PCRS.
|
||||
.RI "Should there be no match, an exact copy of the " subject " is"
|
||||
.RI "found at *" result " and the return code is 0 (matches)."
|
||||
|
||||
All error codes can be translated into human readable text by means
|
||||
.RB "of the " pcrs_strerror() " function."
|
||||
|
||||
|
||||
.SH EXAMPLE
|
||||
A trivial command-line test program for
|
||||
.SM PCRS
|
||||
might look like:
|
||||
|
||||
.nf
|
||||
#include <pcrs.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int Argc, char **Argv)
|
||||
{
|
||||
pcrs_job *job;
|
||||
char *result;
|
||||
size_t newsize;
|
||||
int err;
|
||||
|
||||
if (Argc != 3)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s s/pattern/substitute/[options] subject\\n", Argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (NULL == (job = pcrs_compile_command(Argv[1], &err)))
|
||||
{
|
||||
fprintf(stderr, "%s: compile error: %s (%d).\\n", Argv[0], pcrs_strerror(err), err);
|
||||
}
|
||||
|
||||
if (0 > (err = pcrs_execute(job, Argv[2], strlen(Argv[2]), &result, &newsize)))
|
||||
{
|
||||
fprintf(stderr, "%s: exec error: %s (%d).\\n", Argv[0], pcrs_strerror(err), err);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Result: *%s*\\n", result);
|
||||
free(result);
|
||||
}
|
||||
|
||||
pcrs_free_job(job);
|
||||
return(err < 0);
|
||||
|
||||
}
|
||||
|
||||
.fi
|
||||
|
||||
|
||||
.SH LIMITATIONS
|
||||
The number of matches that a global job can have is only limited by the
|
||||
available memory. An initial storage for 40 matches is reserved, which
|
||||
is dynamically resized by the factor 1.6 whenever it is exhausted.
|
||||
|
||||
The number of capturing subpatterns is currently limited to 33, which
|
||||
is a Bad Thing[tm]. It should be dynamically expanded until it reaches the
|
||||
.SM PCRE
|
||||
limit of 99.
|
||||
.br
|
||||
This limitation is particularly embarassing since
|
||||
.SM PCRE
|
||||
3.5 has raised the capturing subpattern limit to 65K.
|
||||
|
||||
All of the above values can be adjusted in the "Capacity" section
|
||||
.RB "of " pcrs.h "."
|
||||
|
||||
The Perl-style escape sequences for special characters \\\fInnn\fR,
|
||||
\\x\fInn\fR, and \\c\fIX\fR are currently unsupported.
|
||||
|
||||
.SH BUGS
|
||||
This library has only been tested in the context of one application
|
||||
and should be considered high risk.
|
||||
|
||||
.SH HISTORY
|
||||
.SM PCRS
|
||||
was originally written for the Privoxy project
|
||||
(http://www.privoxy.org/).
|
||||
|
||||
.SH SEE ALSO
|
||||
.B PCRE(3), perl(1), perlre(1)
|
||||
|
||||
.SH AUTHOR
|
||||
|
||||
.SM PCRS
|
||||
is Copyright 2000 - 2003 by Andreas Oesterhelt <andreas@oesterhelt.org> and is
|
||||
licensed under the terms of the GNU Lesser General Public License (LGPL),
|
||||
version 2.1, which should be included in this distribution, with the exception
|
||||
that the permission to replace that license with the GNU General Public
|
||||
License (GPL) given in section 3 is restricted to version 2 of the GPL.
|
||||
|
||||
If it is missing from this distribution, the LGPL can be obtained from
|
||||
http://www.gnu.org/licenses/lgpl.html or by mail: Write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
@ -0,0 +1,67 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/authors.sgml,v $
|
||||
|
||||
Purpose : AUTHORS file for Privoxy
|
||||
|
||||
$Id: authors.sgml,v 2.11 2009/02/12 16:08:26 fabiankeil Exp $
|
||||
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation. You have been warned!
|
||||
Failure to abide by this rule will result in the revocation of your license
|
||||
to live a peaceful existence!
|
||||
========================================================================
|
||||
|
||||
===================================================================
|
||||
READ: Document Note: This file generates the AUTHORS file in the
|
||||
top level source directory. See p-authors.sgml for list of developers
|
||||
and contributors, etc. They were split from here for use in man page.
|
||||
===================================================================
|
||||
|
||||
-->
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity authors SYSTEM "p-authors.sgml">
|
||||
<!entity p-version "3.0.11">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % p-stable "INCLUDE">
|
||||
<!entity % p-text "INCLUDE"> <!-- define we are a text only doc -->
|
||||
<!entity % p-authors-formal "INCLUDE"> <!-- include additional text, etc -->
|
||||
]>
|
||||
|
||||
<article id="index">
|
||||
|
||||
<![%dummy;[
|
||||
<para>
|
||||
<comment>
|
||||
This is here to keep vim syntax file from breaking :/
|
||||
If I knew enough to fix it, I would.
|
||||
PLEASE DO NOT REMOVE! HB: hal@foobox.net
|
||||
</comment>
|
||||
</para>
|
||||
]]>
|
||||
|
||||
<literallayout>
|
||||
Authors of <application>Privoxy</application> v2.9.x and 3.x
|
||||
===========================================================================
|
||||
</literallayout>
|
||||
|
||||
<!-- include boilerplate p-authors.sgml -->
|
||||
&authors;
|
||||
<!-- end boilerplate -->
|
||||
|
||||
<para>
|
||||
If we've missed you off this list, please let us know!
|
||||
</para>
|
||||
|
||||
<literallayout>
|
||||
Privoxy team. <ulink url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>
|
||||
<email>ijbswa-developers@lists.sourceforge.net</email>
|
||||
</literallayout>
|
||||
|
||||
</article>
|
|
@ -0,0 +1,256 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/buildsource.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: buildsource.sgml,v 2.18 2009/02/23 09:03:12 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
user-manual
|
||||
INSTALL
|
||||
|
||||
-->
|
||||
<para>
|
||||
To build <application>Privoxy</application> from source,
|
||||
<ulink url="http://www.gnu.org/software/autoconf/autoconf.html">autoconf</ulink>,
|
||||
<ulink
|
||||
url="http://www.gnu.org/software/make/make.html">GNU make
|
||||
(gmake)</ulink>, and, of course, a C compiler like <ulink
|
||||
url="http://www.gnu.org/software/gcc/gcc.html">gcc</ulink> are required.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When building from a source tarball,
|
||||
<!--
|
||||
no longer available ...
|
||||
<ulink
|
||||
url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.gz">nightly CVS
|
||||
tarball</ulink>),
|
||||
--> first unpack the source:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
tar xzvf privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]>-src.tar.gz
|
||||
cd privoxy-&p-version;<![%p-not-stable;[-beta]]><![%p-stable;[-stable]]>
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For retrieving the current CVS sources, you'll need a CVS client installed.
|
||||
Note that sources from CVS are typically development quality, and may not be
|
||||
stable, or well tested. To download CVS source, check the Sourceforge
|
||||
documentation, which might give commands like:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
|
||||
cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
|
||||
cd current
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This will create a directory named <filename>current/</filename>, which will
|
||||
contain the source tree.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can also check out any <application>Privoxy</application>
|
||||
<quote>branch</quote>, just exchange the <application>current</application>
|
||||
name with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs
|
||||
tree).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is also strongly recommended to not run <application>Privoxy</application>
|
||||
as root. You should configure/install/run <application>Privoxy</application> as
|
||||
an unprivileged user, preferably by creating a <quote>privoxy</quote> user
|
||||
and group just for this purpose. See your local documentation for the correct
|
||||
command line to do add new users and groups (something like
|
||||
<command>adduser</command>, but the command syntax may vary from platform
|
||||
to platform).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<filename>/etc/passwd</filename> might then look like:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen> privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
And then <filename>/etc/group</filename>, like:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen> privoxy:*:7777:</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Some binary packages may do this for you.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Then, to build from either unpacked tarball or CVS source:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
autoheader
|
||||
autoconf
|
||||
./configure # (--help to see options)
|
||||
make # (the make from GNU, sometimes called gmake)
|
||||
su # Possibly required
|
||||
make -n install # (to see where all the files will go)
|
||||
make -s install # (to really install, -s to silence output)</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Using GNU <command>make</command>, you can have the first four steps
|
||||
automatically done for you by just typing:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
make
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
in the freshly downloaded or unpacked source directory.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To build an executable with security enhanced features so that
|
||||
users cannot easily bypass the proxy (e.g. <quote>Go There Anyway</quote>), or
|
||||
alter their own configurations, <command>configure</command> like this:
|
||||
</para>
|
||||
<para>
|
||||
<screen>
|
||||
./configure --disable-toggle --disable-editor --disable-force</screen>
|
||||
</para>
|
||||
<para>
|
||||
Then build as above. In Privoxy 3.0.7 and later, all of these options
|
||||
can also be disabled through the configuration file.
|
||||
</para>
|
||||
<para>
|
||||
<emphasis>WARNING:</emphasis> If installing as root, the install will fail
|
||||
unless a non-root user or group is specified, or a <literal>privoxy</literal>
|
||||
user and group already exist on the system. If a non-root user is specified,
|
||||
and no group, then the installation will try to also use a group of the same name
|
||||
as <quote>user</quote>. If a group is specified (and no user), then the
|
||||
support files will be installed as writable by that group, and owned by the
|
||||
user running the installation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>configure</command> accepts <literal>--with-user</literal> and
|
||||
<literal>--with-group</literal> options for setting user and group ownership
|
||||
of the configuration files (which need to be writable by the daemon). The
|
||||
specified <emphasis>user must already exist</emphasis>. When starting
|
||||
<application>Privoxy</application>, it must be run as this same user to
|
||||
insure write access to configuration and log files!
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Alternately, you can specify <literal>user</literal> and <literal>group</literal>
|
||||
on the <command>make</command> command line, but be sure both already exist:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screen>
|
||||
make -s install USER=privoxy GROUP=privoxy</screen>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The default installation path for <command>make install</command> is
|
||||
<filename>/usr/local</filename>. This may of course be customized with
|
||||
the various <command>./configure</command> path options. If you are doing
|
||||
an install to anywhere besides <filename>/usr/local</filename>, be
|
||||
sure to set the appropriate paths with the correct configure options
|
||||
(<command>./configure --help</command>). Non-privileged users must of course
|
||||
have write access permissions to wherever the target installation is going.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you do install to <filename>/usr/local</filename>, the install will use
|
||||
<literal>sysconfdir=$prefix/etc/privoxy</literal> by default. All other
|
||||
destinations, and the direct usage of <literal>--sysconfdir</literal> flag
|
||||
behave like normal, i.e. will not add the extra <filename>privoxy</filename>
|
||||
directory. This is for a safer install, as there may already exist another
|
||||
program that uses a file with the <quote>config</quote> name, and thus makes
|
||||
<filename>/usr/local/etc</filename> cleaner.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If installing to <filename>/usr/local</filename>, the documentation will go
|
||||
by default to <filename>$prefix/share/doc</filename>. But if this directory
|
||||
doesn't exist, it will then try <filename>$prefix/doc</filename> and install
|
||||
there before creating a new <filename>$prefix/share/doc</filename> just for
|
||||
<application>Privoxy</application>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Again, if the installs goes to <filename>/usr/local</filename>, the
|
||||
<literal>localstatedir</literal> (ie: <filename>var/</filename>) will default
|
||||
to <filename>/var</filename> instead of <literal>$prefix/var</literal> so
|
||||
the logs will go to <filename>/var/log/privoxy/</filename>, and the pid file
|
||||
will be created in <filename>/var/run/privoxy.pid</filename>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>make install</command> will attempt to set the correct values
|
||||
in <filename>config</filename> (main configuration file). You should
|
||||
check this to make sure all values are correct. If appropriate,
|
||||
an init script will be installed, but it is up to the user to determine
|
||||
how and where to start <application>Privoxy</application>. The init
|
||||
script should be checked for correct paths and values, if anything other than
|
||||
a default install is done.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If install finds previous versions of local configuration files, most of
|
||||
these will not be overwritten, and the new ones will be installed with a
|
||||
<quote>new</quote> extension. default.action and default.filter
|
||||
<emphasis>will be overwritten</emphasis>. You will then need
|
||||
to manually update the other installed configuration files as needed. The
|
||||
default template files <emphasis>will</emphasis> be overwritten. If you have
|
||||
customized, local templates, these should be stored safely in a separate
|
||||
directory and defined in <filename>config</filename> by the
|
||||
<quote>templdir</quote> directive. It is of course wise to always back-up any
|
||||
important configuration files <quote>just in case</quote>. If a previous
|
||||
version of <application>Privoxy</application> is already running, you will
|
||||
have to restart it manually.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For more detailed instructions on how to build Redhat RPMs,
|
||||
Windows self-extracting installers, building on platforms with
|
||||
special requirements etc, please consult the <ulink
|
||||
url="http://www.privoxy.org/developer-manual/newrelease.html">developer manual</ulink>.
|
||||
</para>
|
||||
|
||||
<!-- print for README only -->
|
||||
<!-- Actually this is now in INSTALL -->
|
||||
<![%p-readme;[
|
||||
<para>
|
||||
The simplest command line to start <application>Privoxy</application> is
|
||||
<command>$path/privoxy --user=privoxy $path/etc/privoxy/config</command>.
|
||||
See <command>privoxy --usage</command>, or the man page, for other options,
|
||||
and configuration.
|
||||
</para>
|
||||
]]>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity config SYSTEM "p-config.sgml">
|
||||
<!entity p-version "3.0.11">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % user-man "IGNORE">
|
||||
<!entity % config-file "IGNORE">
|
||||
<!entity my-app "<application>Privoxy</application>">
|
||||
]>
|
||||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/config.sgml,v $
|
||||
|
||||
Purpose : config file generation
|
||||
|
||||
$Id: config.sgml,v 2.12 2009/02/12 16:08:26 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation.
|
||||
========================================================================
|
||||
|
||||
This file is used to generate the main Privoxy config file. It is mostly
|
||||
content included from p-config.sgml (where all the data is). See that
|
||||
file for more comments.
|
||||
|
||||
-->
|
||||
|
||||
<article>
|
||||
<!-- include config.sgml -->
|
||||
&config;
|
||||
<!-- end include -->
|
||||
</article>
|
|
@ -0,0 +1,262 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/contacting.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: contacting.sgml,v 2.14 2008/04/26 11:38:51 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
This file is included into:
|
||||
|
||||
faq
|
||||
developer-manual
|
||||
README
|
||||
user-manual
|
||||
webserver/index.sgml
|
||||
announce.sgml
|
||||
|
||||
-->
|
||||
|
||||
<!-- READ: -->
|
||||
<!-- Careful of the literallayout tags and finished formatting -->
|
||||
|
||||
<para>
|
||||
We value your feedback. In fact, we rely on it to improve
|
||||
<application>Privoxy</application> and its configuration.
|
||||
However, please note the following hints, so we can
|
||||
provide you with the best support:
|
||||
</para>
|
||||
|
||||
<sect2 id="contact-support"><title>Get Support</title>
|
||||
<para>
|
||||
For casual users, our
|
||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">support forum at SourceForge</ulink>
|
||||
is probably best suited:
|
||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=211118">http://sourceforge.net/tracker/?group_id=11118&atid=211118</ulink>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
All users are of course welcome to discuss their issues on the <ulink
|
||||
url="http://lists.sourceforge.net/lists/listinfo/ijbswa-users">users
|
||||
mailing list</ulink>, where the developers also hang around.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Please don't sent private support requests to individual Privoxy
|
||||
developers, either use the mailing lists or the support trackers.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||
addresses have to be accepted manually by a moderator. This may cause a
|
||||
delay of several days and if you use a subject that doesn't clearly
|
||||
mention Privoxy or one of its features, your message may be accidentally
|
||||
discarded as spam.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you aren't subscribed, you should therefore spend a few seconds
|
||||
to come up with a proper subject. Additionally you should make it clear
|
||||
that you want to get CC'd. Otherwise some responses will be directed to
|
||||
the mailing list only, and you won't see them.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="reporting"><title>Reporting Problems</title>
|
||||
<para>
|
||||
<quote>Problems</quote> for our purposes, come in two forms:
|
||||
</para>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Configuration issues, such as ads that slip through, or sites that
|
||||
don't function properly due to one <application>Privoxy</application>
|
||||
<quote>action</quote> or another being turned <quote>on</quote>.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
<quote>Bugs</quote> in the programming code that makes up
|
||||
<application>Privoxy</application>, such as that might cause a crash.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
||||
<sect3 id="contact-ads"><title>Reporting Ads or Other Configuration Problems</title>
|
||||
<para>
|
||||
Please send feedback on ads that slipped through, innocent images that were
|
||||
blocked, sites that don't work properly, and other configuration related problem of
|
||||
<filename>default.action</filename> file, to
|
||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=460288">
|
||||
http://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>,
|
||||
the Actions File Tracker.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
New, improved <filename>default.action</filename> files may occasionally be made
|
||||
available based on your feedback. These will be announced on the <ulink
|
||||
url="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce">ijbswa-announce</ulink>
|
||||
list and available from our the <ulink
|
||||
url="http://sourceforge.net/project/showfiles.php?group_id=11118">files section</ulink> of
|
||||
our <ulink url="http://sf.net/projects/ijbswa/">project page</ulink>.
|
||||
</para>
|
||||
</sect3>
|
||||
|
||||
|
||||
<sect3 id="contact-bugs"><title>Reporting Bugs</title>
|
||||
<para>
|
||||
Please report all bugs through our bug tracker:
|
||||
<ulink url="http://sourceforge.net/tracker/?group_id=11118&atid=111118">http://sourceforge.net/tracker/?group_id=11118&atid=111118</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Before doing so, please make sure that the bug has <emphasis>not already been submitted</emphasis>
|
||||
and observe the additional hints at the top of the <ulink
|
||||
url="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118">submit
|
||||
form</ulink>. If already submitted, please feel free to add any info to the
|
||||
original report that might help to solve the issue.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Please try to verify that it is a <application>Privoxy</application> bug,
|
||||
and not a browser or site bug or documented behaviour that just happens
|
||||
to be different than what you expected. If unsure,
|
||||
try <ulink url="http://config.privoxy.org/toggle?set=disable">toggling
|
||||
off</ulink> <application>Privoxy</application>, and see if the problem persists.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you are using your own custom configuration, please try
|
||||
the stock configs to see if the problem is configuration related.
|
||||
If you're having problems with a feature that is disabled by default,
|
||||
please ask around on the mailing list if others can reproduce the problem.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you aren't using the latest Privoxy version, the bug may have been found
|
||||
and fixed in the meantime. We would appreciate if you could take the time
|
||||
to <ulink url="http://www.privoxy.org/user-manual/installation.html">upgrade
|
||||
to the latest version</ulink> (or even the latest CVS snapshot) and verify
|
||||
that your bug still exists.
|
||||
</para>
|
||||
<para>
|
||||
Please be sure to provide the following information:
|
||||
</para>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The exact <application>Privoxy</application> version you are using
|
||||
(if you got the source from CVS, please also provide the source code revisions
|
||||
as shown in <ulink url="http://config.privoxy.org/show-version">http://config.privoxy.org/show-version</ulink>).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The operating system and versions you run
|
||||
<application>Privoxy</application> on, (e.g. <application>Windows
|
||||
XP SP2</application>), if you are using a Unix flavor,
|
||||
sending the output of <quote>uname -a</quote> should do,
|
||||
in case of GNU/Linux, please also name the distribution.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The name, platform, and version of the <application>browser</application>
|
||||
you were using (e.g. <application>Internet Explorer v5.5</application> for Mac).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
The URL where the problem occurred, or some way for us to duplicate the
|
||||
problem (e.g. <literal>http://somesite.example.com/?somethingelse=123</literal>).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Whether your version of <application>Privoxy</application> is one supplied
|
||||
by the <application>Privoxy</application> developers via SourceForge,
|
||||
or if you got your copy somewhere else.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Whether you are using <application>Privoxy</application> in tandem with
|
||||
another proxy such as <application>Tor</application>. If so, please
|
||||
temporary disable the other proxy to see if the symptoms change.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Whether you are using a personal firewall product. If so, does
|
||||
<application>Privoxy</application> work without it?
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Any other pertinent information to help identify the problem such as config
|
||||
or log file excerpts (yes, you should have log file entries for each
|
||||
action taken).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You don't have to tell us your actual name when filing a problem
|
||||
report, but please use a nickname so we can differentiate between
|
||||
your messages and the ones entered by other "anonymous" users that
|
||||
may respond to your request if they have the same problem or already
|
||||
found a solution.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Please also check the status of your request a few days after submitting
|
||||
it, as we may request additional information. If you use a SF id,
|
||||
you should automatically get a mail when someone responds to your request.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <ulink url="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT">appendix
|
||||
of the Privoxy User Manual</ulink> also has helpful information
|
||||
on understanding <literal>actions</literal>, and <literal>action</literal> debugging.
|
||||
</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contact-feature"><title>Request New Features</title>
|
||||
<para>
|
||||
You are welcome to submit ideas on new features or other proposals
|
||||
for improvement through our feature request tracker at
|
||||
<ulink url="http://sourceforge.net/tracker/?atid=361118&group_id=11118">http://sourceforge.net/tracker/?atid=361118&group_id=11118</ulink>.
|
||||
</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contact-other"><title>Other</title>
|
||||
<para>
|
||||
For any other issues, feel free to use the mailing lists. Technically interested users
|
||||
and people who wish to contribute to the project are also welcome on the developers list!
|
||||
You can find an overview of all <application>Privoxy</application>-related mailing lists,
|
||||
including list archives, at:
|
||||
<ulink url="http://sourceforge.net/mail/?group_id=11118">http://sourceforge.net/mail/?group_id=11118</ulink>.
|
||||
</para>
|
||||
</sect2>
|
|
@ -0,0 +1,47 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/copyright.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: copyright.sgml,v 2.10 2009/02/10 16:13:30 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
privoxy-man-page
|
||||
user-manual
|
||||
developer-manual
|
||||
faq
|
||||
|
||||
**************************************************************
|
||||
NOTE: the &my-copy entity must be defined in any file that will
|
||||
include this file. (This is a workaround for docbook2man not
|
||||
handling the standard © entity in the man page processing.)
|
||||
**************************************************************
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
GFDL:
|
||||
http://www.gnu.org/licenses/fdl.html
|
||||
-->
|
||||
|
||||
<para>
|
||||
Copyright &my-copy; 2001-2009 by Privoxy Developers <email>ijbswa-developers@lists.sourceforge.net</email>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Some source code is based on code Copyright &my-copy; 1997 by Anonymous Coders
|
||||
and Junkbusters, Inc. and licensed under the <citetitle>GNU General Public
|
||||
License</citetitle>.
|
||||
</para>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,71 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/history.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: history.sgml,v 2.7 2009/02/22 11:05:21 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
user-manual
|
||||
developer-manual
|
||||
faq
|
||||
webserver/index.sgml
|
||||
|
||||
-->
|
||||
|
||||
<para>
|
||||
A long time ago, there was the
|
||||
<ulink url="http://www.junkbusters.com/ijb.html"><application>Internet Junkbuster</application></ulink>,
|
||||
by Anonymous Coders and <ulink url="http://www.junkbusters.com/">Junkbusters
|
||||
Corporation</ulink>. This saved many users a lot of pain in the early days of
|
||||
web advertising and user tracking.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
But the web, its protocols and standards, and with it, the techniques for
|
||||
forcing ads on users, give up autonomy over their browsing, and
|
||||
for tracking them, keeps evolving. Unfortunately, the <application>Internet
|
||||
Junkbuster</application> did not. Version 2.0.2, published in 1998, was
|
||||
(and is) the last official
|
||||
<ulink url="http://www.junkbusters.com/ijbdist.html#release">release</ulink>
|
||||
available from <ulink url="http://www.junkbusters.com">Junkbusters Corporation</ulink>.
|
||||
Fortunately, it had been released under the GNU
|
||||
<ulink url="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GPL</ulink>,
|
||||
which allowed further development by others.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
So Stefan Waldherr started maintaining an improved version of the
|
||||
software, to which eventually a number of people contributed patches.
|
||||
It could already replace banners with a transparent image, and had a first
|
||||
version of pop-up killing, but it was still very closely based on the
|
||||
original, with all its limitations, such as the lack of HTTP/1.1 support,
|
||||
flexible per-site configuration, or content modification. The last release
|
||||
from this effort was version 2.0.2-10, published in 2000.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Then, some
|
||||
<ulink url="http://www.privoxy.org/user-manual/copyright.html#AUTHORS">developers</ulink>
|
||||
picked up the thread, and started turning the software inside out, upside down,
|
||||
and then reassembled it, adding many
|
||||
<ulink url="http://www.privoxy.org/user-manual/introduction.html#FEATURES">new
|
||||
features</ulink> along the way.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The result of this is <application>Privoxy</application>, whose first
|
||||
stable version, 3.0, was released August, 2002.
|
||||
<!-- Cautious!!!!!!!!! ;) -->
|
||||
</para>
|
|
@ -0,0 +1,106 @@
|
|||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity buildsource SYSTEM "buildsource.sgml">
|
||||
<!entity p-version "3.0.11">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-stable "INCLUDE">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % p-alpha "IGNORE">
|
||||
<!entity % p-beta "IGNORE">
|
||||
<!entity % p-text "INCLUDE"> <!-- define we are a text only doc -->
|
||||
<!entity % p-doc "IGNORE"> <!-- and never a text doc -->
|
||||
<!entity % p-readme "INCLUDE"> <!-- This is now in INSTALL -->
|
||||
]>
|
||||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
|
||||
|
||||
Purpose : INSTALL file for Privoxy
|
||||
|
||||
$Id: install.sgml,v 2.11 2009/02/12 16:08:26 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation. You have been warned!
|
||||
Failure to abide by this rule will result in the revocation of your license
|
||||
to live a peaceful existence!
|
||||
========================================================================
|
||||
|
||||
===================================================================
|
||||
READ: Document Note: This file generates the INSTALL file in the top level
|
||||
source directory. It is generated as only a plain text file. The current
|
||||
markup is not suitable for other formats. Build from Makefile with 'make
|
||||
dok-readme'.
|
||||
===================================================================
|
||||
|
||||
-->
|
||||
<article id="index">
|
||||
<artheader>
|
||||
<![%dummy;[
|
||||
<para>
|
||||
<comment>
|
||||
This is here to keep vim syntax file from breaking :/
|
||||
If I knew enough to fix it, I would.
|
||||
PLEASE DO NOT REMOVE! HB: hal@foobox.net
|
||||
</comment>
|
||||
</para>
|
||||
]]>
|
||||
<abstract>
|
||||
<para>
|
||||
<literal>
|
||||
<msgtext>
|
||||
<literallayout>
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/doc/source/install.sgml,v $
|
||||
*
|
||||
* Purpose : INSTALL file to help with installing from source.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2009 the
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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/licenses/old-licenses/gpl-2.0.html
|
||||
* or write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA
|
||||
*
|
||||
*********************************************************************/
|
||||
</literallayout>
|
||||
</msgtext>
|
||||
</literal>
|
||||
</para>
|
||||
|
||||
</abstract>
|
||||
</artheader>
|
||||
|
||||
<para>
|
||||
<msgtext>
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<!-- include buildsource.sgml boilerplate: -->
|
||||
&buildsource;
|
||||
<!-- end boilderplate -->
|
||||
</msgtext>
|
||||
</para>
|
||||
|
||||
|
||||
</article>
|
|
@ -0,0 +1,420 @@
|
|||
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
|
||||
<!ENTITY % html "IGNORE">
|
||||
<![%html;[
|
||||
<!ENTITY % print "IGNORE">
|
||||
<!ENTITY docbook.dsl SYSTEM "none/html/docbook.dsl" CDATA dsssl>
|
||||
]]>
|
||||
<!ENTITY % print "INCLUDE">
|
||||
<![%print;[
|
||||
<!ENTITY docbook.dsl SYSTEM "none/print/docbook.dsl" CDATA dsssl>
|
||||
]]>
|
||||
]>
|
||||
|
||||
<!--
|
||||
|
||||
;; borrowed from the LDP stylesheet, with modifications, HB.
|
||||
;; Added support for css 03/20/02, and other mods.
|
||||
|
||||
-->
|
||||
|
||||
<style-sheet>
|
||||
|
||||
<style-specification id="print" use="docbook">
|
||||
<style-specification-body>
|
||||
|
||||
;; ==============================
|
||||
;; customize the print stylesheet
|
||||
;; ==============================
|
||||
;;
|
||||
;; see http://docbook.sourceforge.net/projects/dsssl/doc/print.html
|
||||
;;
|
||||
|
||||
(define %indent-screen-lines%
|
||||
;; Indent lines in a 'Screen'?
|
||||
#t)
|
||||
|
||||
(define %callout-fancy-bug%
|
||||
;; Use fancy callout bugs?
|
||||
#t)
|
||||
|
||||
(define %chap-app-running-heads%
|
||||
;; Generate running headers and footers on chapter-level elements?
|
||||
#t)
|
||||
|
||||
(define %chap-app-running-head-autolabel%
|
||||
;; Put chapter labels in running heads?
|
||||
#t)
|
||||
|
||||
;; this is necessary because right now jadetex does not understand
|
||||
;; symbolic entities, whereas things work well with numeric entities.
|
||||
(declare-characteristic preserve-sdata?
|
||||
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
|
||||
#f)
|
||||
|
||||
;; put the legal notice in a separate file
|
||||
(define %generate-legalnotice-link%
|
||||
#t)
|
||||
|
||||
;; use graphics in admonitions, and have their path be "stylesheet-images"
|
||||
;; NO: they do not yet look very good
|
||||
(define %admon-graphics-path%
|
||||
"./stylesheet-images/")
|
||||
|
||||
(define %admon-graphics%
|
||||
#f)
|
||||
|
||||
(define %funcsynopsis-decoration%
|
||||
;; make funcsynopsis look pretty
|
||||
#t)
|
||||
|
||||
;;(define %shade-verbatim%
|
||||
;; #t)
|
||||
|
||||
(define %section-autolabel% #t)
|
||||
;; For enumerated sections (1.1, 1.1.1, 1.2, etc.)
|
||||
|
||||
;; HB changed TOC depth to 3 levels.
|
||||
(define (toc-depth nd)
|
||||
3)
|
||||
|
||||
;; HB added 03/20/02, see dbparam.dsl ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define %body-attr%
|
||||
;; REFENTRY body-attr
|
||||
;; PURP What attributes should be hung off of BODY?
|
||||
;; DESC
|
||||
;; A list of the the BODY attributes that should be generated.
|
||||
;; The format is a list of lists, each interior list contains the
|
||||
;; name and value of a BODY attribute.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
(list
|
||||
(list "BGCOLOR" "#EEEEEE")
|
||||
(list "TEXT" "#000000")
|
||||
(list "LINK" "#0000FF")
|
||||
(list "VLINK" "#840084")
|
||||
(list "ALINK" "#0000FF")))
|
||||
|
||||
(define %stylesheet%
|
||||
;; REFENTRY stylesheet
|
||||
;; PURP Name of the stylesheet to use
|
||||
;; DESC
|
||||
;; The name of the stylesheet to place in the HTML LINK TAG, or '#f' to
|
||||
;; suppress the stylesheet LINK.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"../p_doc.css")
|
||||
|
||||
(define %stylesheet-type%
|
||||
;; REFENTRY stylesheet-type
|
||||
;; PURP The type of the stylesheet to use
|
||||
;; DESC
|
||||
;; The type of the stylesheet to place in the HTML LINK TAG.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"text/css")
|
||||
|
||||
(define %css-liststyle-alist%
|
||||
;; REFENTRY css-liststyle-alist
|
||||
;; PURP Map DocBook OVERRIDE and MARK attributes to CSS
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then the list-style-type property of
|
||||
;; list items will be set to reflect the list item style selected in the
|
||||
;; DocBook instance. This associative list maps the style type names used
|
||||
;; in your instance to the appropriate CSS names. If no mapping exists,
|
||||
;; the name from the instance will be used.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
'(("bullet" "disc")
|
||||
("box" "square")))
|
||||
|
||||
(define %css-decoration%
|
||||
;; REFENTRY css-decoration
|
||||
;; PURP Enable CSS decoration of elements
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then HTML elements produced by the
|
||||
;; stylesheet may be decorated with STYLE attributes. For example, the
|
||||
;; LI tags produced for list items may include a fragment of CSS in the
|
||||
;; STYLE attribute which sets the CSS property "list-style-type".
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
#t)
|
||||
|
||||
;; swa1
|
||||
|
||||
(define %generate-part-toc%
|
||||
#f)
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#t)
|
||||
|
||||
(define %generate-part-toc-on-titlepage%
|
||||
;; Should the Part TOC appear on the Part title page?
|
||||
#f)
|
||||
|
||||
;;Do you want a separate page for the title?
|
||||
(define %generate-article-titlepage-on-separate-page%
|
||||
#t)
|
||||
|
||||
;;Do you want the article toc on the titlepage or separate?
|
||||
(define %generate-article-toc-on-titlepage%
|
||||
#f)
|
||||
|
||||
;;Titlepage Separate?
|
||||
;; This is the one that makes TOC only on first page!! hal.
|
||||
(define (chunk-skip-first-element-list)
|
||||
'())
|
||||
|
||||
(define %body-start-indent%
|
||||
;; Default indent of body text
|
||||
2pi)
|
||||
|
||||
(define %para-indent-firstpara%
|
||||
;; First line start-indent for the first paragraph
|
||||
0pt)
|
||||
|
||||
;; swa2
|
||||
|
||||
(define %para-indent%
|
||||
;; First line start-indent for paragraphs (other than the first)
|
||||
0pt)
|
||||
|
||||
(define %block-start-indent%
|
||||
;; Extra start-indent for block-elements
|
||||
2pt)
|
||||
|
||||
;;Define distance between paragraphs
|
||||
(define %para-sep%
|
||||
(/ %bf-size% 2.0))
|
||||
|
||||
;; with swa2 no effects
|
||||
|
||||
;; swa3
|
||||
|
||||
;;Define distance between block elements (figures, tables, etc.).
|
||||
(define %block-sep%
|
||||
(* %para-sep% 1.0))
|
||||
;; (* %para-sep% 2.0))
|
||||
|
||||
(define %hyphenation%
|
||||
;; Allow automatic hyphenation?
|
||||
#t)
|
||||
|
||||
(define %left-margin% 5pi)
|
||||
(define %right-margin% 5pi)
|
||||
(define %top-margin% 5pi)
|
||||
(define %bottom-margin% 5pi)
|
||||
(define %footer-margin% 2pi)
|
||||
(define %header-margin% 2pi)
|
||||
|
||||
(define %line-spacing-factor% 1.3)
|
||||
;; Factor used to calculate leading
|
||||
;; The leading is calculated by multiplying the current font size by the
|
||||
;; '%line-spacing-factor%'. For example, if the font size is 10pt and
|
||||
;; the '%line-spacing-factor%' is 1.1, then the text will be
|
||||
;; printed "10-on-11".
|
||||
|
||||
(define %head-before-factor%
|
||||
;; Factor used to calculate space above a title
|
||||
;; The space before a title is calculated by multiplying the font size
|
||||
;; used in the title by the '%head-before-factor%'.
|
||||
;; 0.75)
|
||||
0.5)
|
||||
|
||||
(define %head-after-factor%
|
||||
;; Factor used to calculate space below a title
|
||||
;; The space after a title is calculated by multiplying the font size used
|
||||
;; in the title by the '%head-after-factor%'.
|
||||
0.5)
|
||||
|
||||
(define %input-whitespace-treatment% 'collapse)
|
||||
|
||||
(define ($generate-article-lot-list$)
|
||||
;; Which Lists of Titles should be produced for Articles?
|
||||
(list ))
|
||||
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
|
||||
<!--
|
||||
;; ===================================================
|
||||
;; customize the html stylesheet; borrowed from Cygnus
|
||||
;; at http://sourceware.cygnus.com/ (cygnus-both.dsl)
|
||||
;; ===================================================
|
||||
-->
|
||||
|
||||
<style-specification id="html" use="docbook">
|
||||
<style-specification-body>
|
||||
|
||||
;; this is necessary because right now jadetex does not understand
|
||||
;; symbolic entities, whereas things work well with numeric entities.
|
||||
(declare-characteristic preserve-sdata?
|
||||
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
|
||||
#f)
|
||||
|
||||
;; put the legal notice in a separate file
|
||||
(define %generate-legalnotice-link%
|
||||
#t)
|
||||
|
||||
;; use graphics in admonitions, and have their path be "stylesheet-images"
|
||||
;; NO: they do not yet look very good
|
||||
(define %admon-graphics-path%
|
||||
"./stylesheet-images/")
|
||||
|
||||
(define %admon-graphics%
|
||||
#f)
|
||||
|
||||
(define %funcsynopsis-decoration%
|
||||
;; make funcsynopsis look pretty
|
||||
#t)
|
||||
|
||||
(define %html-ext%
|
||||
".html")
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#t)
|
||||
|
||||
;; HB added next three statements 05/03/02.
|
||||
;;Do you want a separate page for the title?
|
||||
(define %generate-article-titlepage-on-separate-page%
|
||||
#t)
|
||||
|
||||
;;Do you want the article toc on the titlepage or separate?
|
||||
(define %generate-article-toc-on-titlepage%
|
||||
#t)
|
||||
|
||||
;;Titlepage Separate?
|
||||
;; This is the one that makes TOC only on first page!! hal.
|
||||
(define (chunk-skip-first-element-list)
|
||||
'())
|
||||
|
||||
(define %root-filename%
|
||||
;; The filename of the root HTML document (e.g, "index").
|
||||
"index")
|
||||
|
||||
(define %generate-part-toc%
|
||||
#t)
|
||||
|
||||
(define %shade-verbatim%
|
||||
#t)
|
||||
|
||||
(define %use-id-as-filename%
|
||||
;; Use ID attributes as name for component HTML files?
|
||||
#t)
|
||||
|
||||
(define %graphic-default-extension%
|
||||
"gif")
|
||||
|
||||
(define %section-autolabel% #t)
|
||||
;; For enumerated sections (1.1, 1.1.1, 1.2, etc.)
|
||||
|
||||
;; HB changed TOC depth to 3 levels.
|
||||
(define (toc-depth nd)
|
||||
3)
|
||||
|
||||
;; HB added 03/20/02, see dbparam.dsl ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define %body-attr%
|
||||
;; REFENTRY body-attr
|
||||
;; PURP What attributes should be hung off of BODY?
|
||||
;; DESC
|
||||
;; A list of the the BODY attributes that should be generated.
|
||||
;; The format is a list of lists, each interior list contains the
|
||||
;; name and value of a BODY attribute.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
(list
|
||||
(list "BGCOLOR" "#EEEEEE")
|
||||
(list "TEXT" "#000000")
|
||||
(list "LINK" "#0000FF")
|
||||
(list "VLINK" "#840084")
|
||||
(list "ALINK" "#0000FF")))
|
||||
|
||||
(define %stylesheet%
|
||||
;; REFENTRY stylesheet
|
||||
;; PURP Name of the stylesheet to use
|
||||
;; DESC
|
||||
;; The name of the stylesheet to place in the HTML LINK TAG, or '#f' to
|
||||
;; suppress the stylesheet LINK.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"../p_doc.css")
|
||||
|
||||
(define %stylesheet-type%
|
||||
;; REFENTRY stylesheet-type
|
||||
;; PURP The type of the stylesheet to use
|
||||
;; DESC
|
||||
;; The type of the stylesheet to place in the HTML LINK TAG.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"text/css")
|
||||
|
||||
(define %css-liststyle-alist%
|
||||
;; REFENTRY css-liststyle-alist
|
||||
;; PURP Map DocBook OVERRIDE and MARK attributes to CSS
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then the list-style-type property of
|
||||
;; list items will be set to reflect the list item style selected in the
|
||||
;; DocBook instance. This associative list maps the style type names used
|
||||
;; in your instance to the appropriate CSS names. If no mapping exists,
|
||||
;; the name from the instance will be used.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
'(("bullet" "disc")
|
||||
("box" "square")))
|
||||
|
||||
(define %css-decoration%
|
||||
;; REFENTRY css-decoration
|
||||
;; PURP Enable CSS decoration of elements
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then HTML elements produced by the
|
||||
;; stylesheet may be decorated with STYLE attributes. For example, the
|
||||
;; LI tags produced for list items may include a fragment of CSS in the
|
||||
;; STYLE attribute which sets the CSS property "list-style-type".
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
#t)
|
||||
|
||||
;; HB added 2008-01-19
|
||||
(define %html-header-tags%
|
||||
'(("META" ("HTTP-EQUIV" "Content-Type") ("CONTENT" "text/html;
|
||||
charset=ISO-8859-1"))))
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
|
||||
<style-specification id="html-notoc" use="html">
|
||||
<style-specification-body>
|
||||
|
||||
;; ===================================================
|
||||
;; Vairant without TOC for the Homepage --oes 24/05/02
|
||||
;; ===================================================
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#f)
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
<external-specification id="docbook" document="docbook.dsl">
|
||||
|
||||
</style-sheet>
|
|
@ -0,0 +1,420 @@
|
|||
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
|
||||
<!ENTITY % html "IGNORE">
|
||||
<![%html;[
|
||||
<!ENTITY % print "IGNORE">
|
||||
<!ENTITY docbook.dsl SYSTEM "@DKPREFIX@/html/docbook.dsl" CDATA dsssl>
|
||||
]]>
|
||||
<!ENTITY % print "INCLUDE">
|
||||
<![%print;[
|
||||
<!ENTITY docbook.dsl SYSTEM "@DKPREFIX@/print/docbook.dsl" CDATA dsssl>
|
||||
]]>
|
||||
]>
|
||||
|
||||
<!--
|
||||
|
||||
;; borrowed from the LDP stylesheet, with modifications, HB.
|
||||
;; Added support for css 03/20/02, and other mods.
|
||||
|
||||
-->
|
||||
|
||||
<style-sheet>
|
||||
|
||||
<style-specification id="print" use="docbook">
|
||||
<style-specification-body>
|
||||
|
||||
;; ==============================
|
||||
;; customize the print stylesheet
|
||||
;; ==============================
|
||||
;;
|
||||
;; see http://docbook.sourceforge.net/projects/dsssl/doc/print.html
|
||||
;;
|
||||
|
||||
(define %indent-screen-lines%
|
||||
;; Indent lines in a 'Screen'?
|
||||
#t)
|
||||
|
||||
(define %callout-fancy-bug%
|
||||
;; Use fancy callout bugs?
|
||||
#t)
|
||||
|
||||
(define %chap-app-running-heads%
|
||||
;; Generate running headers and footers on chapter-level elements?
|
||||
#t)
|
||||
|
||||
(define %chap-app-running-head-autolabel%
|
||||
;; Put chapter labels in running heads?
|
||||
#t)
|
||||
|
||||
;; this is necessary because right now jadetex does not understand
|
||||
;; symbolic entities, whereas things work well with numeric entities.
|
||||
(declare-characteristic preserve-sdata?
|
||||
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
|
||||
#f)
|
||||
|
||||
;; put the legal notice in a separate file
|
||||
(define %generate-legalnotice-link%
|
||||
#t)
|
||||
|
||||
;; use graphics in admonitions, and have their path be "stylesheet-images"
|
||||
;; NO: they do not yet look very good
|
||||
(define %admon-graphics-path%
|
||||
"./stylesheet-images/")
|
||||
|
||||
(define %admon-graphics%
|
||||
#f)
|
||||
|
||||
(define %funcsynopsis-decoration%
|
||||
;; make funcsynopsis look pretty
|
||||
#t)
|
||||
|
||||
;;(define %shade-verbatim%
|
||||
;; #t)
|
||||
|
||||
(define %section-autolabel% #t)
|
||||
;; For enumerated sections (1.1, 1.1.1, 1.2, etc.)
|
||||
|
||||
;; HB changed TOC depth to 3 levels.
|
||||
(define (toc-depth nd)
|
||||
3)
|
||||
|
||||
;; HB added 03/20/02, see dbparam.dsl ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define %body-attr%
|
||||
;; REFENTRY body-attr
|
||||
;; PURP What attributes should be hung off of BODY?
|
||||
;; DESC
|
||||
;; A list of the the BODY attributes that should be generated.
|
||||
;; The format is a list of lists, each interior list contains the
|
||||
;; name and value of a BODY attribute.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
(list
|
||||
(list "BGCOLOR" "#EEEEEE")
|
||||
(list "TEXT" "#000000")
|
||||
(list "LINK" "#0000FF")
|
||||
(list "VLINK" "#840084")
|
||||
(list "ALINK" "#0000FF")))
|
||||
|
||||
(define %stylesheet%
|
||||
;; REFENTRY stylesheet
|
||||
;; PURP Name of the stylesheet to use
|
||||
;; DESC
|
||||
;; The name of the stylesheet to place in the HTML LINK TAG, or '#f' to
|
||||
;; suppress the stylesheet LINK.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"../p_doc.css")
|
||||
|
||||
(define %stylesheet-type%
|
||||
;; REFENTRY stylesheet-type
|
||||
;; PURP The type of the stylesheet to use
|
||||
;; DESC
|
||||
;; The type of the stylesheet to place in the HTML LINK TAG.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"text/css")
|
||||
|
||||
(define %css-liststyle-alist%
|
||||
;; REFENTRY css-liststyle-alist
|
||||
;; PURP Map DocBook OVERRIDE and MARK attributes to CSS
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then the list-style-type property of
|
||||
;; list items will be set to reflect the list item style selected in the
|
||||
;; DocBook instance. This associative list maps the style type names used
|
||||
;; in your instance to the appropriate CSS names. If no mapping exists,
|
||||
;; the name from the instance will be used.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
'(("bullet" "disc")
|
||||
("box" "square")))
|
||||
|
||||
(define %css-decoration%
|
||||
;; REFENTRY css-decoration
|
||||
;; PURP Enable CSS decoration of elements
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then HTML elements produced by the
|
||||
;; stylesheet may be decorated with STYLE attributes. For example, the
|
||||
;; LI tags produced for list items may include a fragment of CSS in the
|
||||
;; STYLE attribute which sets the CSS property "list-style-type".
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
#t)
|
||||
|
||||
;; swa1
|
||||
|
||||
(define %generate-part-toc%
|
||||
#f)
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#t)
|
||||
|
||||
(define %generate-part-toc-on-titlepage%
|
||||
;; Should the Part TOC appear on the Part title page?
|
||||
#f)
|
||||
|
||||
;;Do you want a separate page for the title?
|
||||
(define %generate-article-titlepage-on-separate-page%
|
||||
#t)
|
||||
|
||||
;;Do you want the article toc on the titlepage or separate?
|
||||
(define %generate-article-toc-on-titlepage%
|
||||
#f)
|
||||
|
||||
;;Titlepage Separate?
|
||||
;; This is the one that makes TOC only on first page!! hal.
|
||||
(define (chunk-skip-first-element-list)
|
||||
'())
|
||||
|
||||
(define %body-start-indent%
|
||||
;; Default indent of body text
|
||||
2pi)
|
||||
|
||||
(define %para-indent-firstpara%
|
||||
;; First line start-indent for the first paragraph
|
||||
0pt)
|
||||
|
||||
;; swa2
|
||||
|
||||
(define %para-indent%
|
||||
;; First line start-indent for paragraphs (other than the first)
|
||||
0pt)
|
||||
|
||||
(define %block-start-indent%
|
||||
;; Extra start-indent for block-elements
|
||||
2pt)
|
||||
|
||||
;;Define distance between paragraphs
|
||||
(define %para-sep%
|
||||
(/ %bf-size% 2.0))
|
||||
|
||||
;; with swa2 no effects
|
||||
|
||||
;; swa3
|
||||
|
||||
;;Define distance between block elements (figures, tables, etc.).
|
||||
(define %block-sep%
|
||||
(* %para-sep% 1.0))
|
||||
;; (* %para-sep% 2.0))
|
||||
|
||||
(define %hyphenation%
|
||||
;; Allow automatic hyphenation?
|
||||
#t)
|
||||
|
||||
(define %left-margin% 5pi)
|
||||
(define %right-margin% 5pi)
|
||||
(define %top-margin% 5pi)
|
||||
(define %bottom-margin% 5pi)
|
||||
(define %footer-margin% 2pi)
|
||||
(define %header-margin% 2pi)
|
||||
|
||||
(define %line-spacing-factor% 1.3)
|
||||
;; Factor used to calculate leading
|
||||
;; The leading is calculated by multiplying the current font size by the
|
||||
;; '%line-spacing-factor%'. For example, if the font size is 10pt and
|
||||
;; the '%line-spacing-factor%' is 1.1, then the text will be
|
||||
;; printed "10-on-11".
|
||||
|
||||
(define %head-before-factor%
|
||||
;; Factor used to calculate space above a title
|
||||
;; The space before a title is calculated by multiplying the font size
|
||||
;; used in the title by the '%head-before-factor%'.
|
||||
;; 0.75)
|
||||
0.5)
|
||||
|
||||
(define %head-after-factor%
|
||||
;; Factor used to calculate space below a title
|
||||
;; The space after a title is calculated by multiplying the font size used
|
||||
;; in the title by the '%head-after-factor%'.
|
||||
0.5)
|
||||
|
||||
(define %input-whitespace-treatment% 'collapse)
|
||||
|
||||
(define ($generate-article-lot-list$)
|
||||
;; Which Lists of Titles should be produced for Articles?
|
||||
(list ))
|
||||
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
|
||||
<!--
|
||||
;; ===================================================
|
||||
;; customize the html stylesheet; borrowed from Cygnus
|
||||
;; at http://sourceware.cygnus.com/ (cygnus-both.dsl)
|
||||
;; ===================================================
|
||||
-->
|
||||
|
||||
<style-specification id="html" use="docbook">
|
||||
<style-specification-body>
|
||||
|
||||
;; this is necessary because right now jadetex does not understand
|
||||
;; symbolic entities, whereas things work well with numeric entities.
|
||||
(declare-characteristic preserve-sdata?
|
||||
"UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
|
||||
#f)
|
||||
|
||||
;; put the legal notice in a separate file
|
||||
(define %generate-legalnotice-link%
|
||||
#t)
|
||||
|
||||
;; use graphics in admonitions, and have their path be "stylesheet-images"
|
||||
;; NO: they do not yet look very good
|
||||
(define %admon-graphics-path%
|
||||
"./stylesheet-images/")
|
||||
|
||||
(define %admon-graphics%
|
||||
#f)
|
||||
|
||||
(define %funcsynopsis-decoration%
|
||||
;; make funcsynopsis look pretty
|
||||
#t)
|
||||
|
||||
(define %html-ext%
|
||||
".html")
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#t)
|
||||
|
||||
;; HB added next three statements 05/03/02.
|
||||
;;Do you want a separate page for the title?
|
||||
(define %generate-article-titlepage-on-separate-page%
|
||||
#t)
|
||||
|
||||
;;Do you want the article toc on the titlepage or separate?
|
||||
(define %generate-article-toc-on-titlepage%
|
||||
#t)
|
||||
|
||||
;;Titlepage Separate?
|
||||
;; This is the one that makes TOC only on first page!! hal.
|
||||
(define (chunk-skip-first-element-list)
|
||||
'())
|
||||
|
||||
(define %root-filename%
|
||||
;; The filename of the root HTML document (e.g, "index").
|
||||
"index")
|
||||
|
||||
(define %generate-part-toc%
|
||||
#t)
|
||||
|
||||
(define %shade-verbatim%
|
||||
#t)
|
||||
|
||||
(define %use-id-as-filename%
|
||||
;; Use ID attributes as name for component HTML files?
|
||||
#t)
|
||||
|
||||
(define %graphic-default-extension%
|
||||
"gif")
|
||||
|
||||
(define %section-autolabel% #t)
|
||||
;; For enumerated sections (1.1, 1.1.1, 1.2, etc.)
|
||||
|
||||
;; HB changed TOC depth to 3 levels.
|
||||
(define (toc-depth nd)
|
||||
3)
|
||||
|
||||
;; HB added 03/20/02, see dbparam.dsl ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define %body-attr%
|
||||
;; REFENTRY body-attr
|
||||
;; PURP What attributes should be hung off of BODY?
|
||||
;; DESC
|
||||
;; A list of the the BODY attributes that should be generated.
|
||||
;; The format is a list of lists, each interior list contains the
|
||||
;; name and value of a BODY attribute.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
(list
|
||||
(list "BGCOLOR" "#EEEEEE")
|
||||
(list "TEXT" "#000000")
|
||||
(list "LINK" "#0000FF")
|
||||
(list "VLINK" "#840084")
|
||||
(list "ALINK" "#0000FF")))
|
||||
|
||||
(define %stylesheet%
|
||||
;; REFENTRY stylesheet
|
||||
;; PURP Name of the stylesheet to use
|
||||
;; DESC
|
||||
;; The name of the stylesheet to place in the HTML LINK TAG, or '#f' to
|
||||
;; suppress the stylesheet LINK.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"../p_doc.css")
|
||||
|
||||
(define %stylesheet-type%
|
||||
;; REFENTRY stylesheet-type
|
||||
;; PURP The type of the stylesheet to use
|
||||
;; DESC
|
||||
;; The type of the stylesheet to place in the HTML LINK TAG.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
"text/css")
|
||||
|
||||
(define %css-liststyle-alist%
|
||||
;; REFENTRY css-liststyle-alist
|
||||
;; PURP Map DocBook OVERRIDE and MARK attributes to CSS
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then the list-style-type property of
|
||||
;; list items will be set to reflect the list item style selected in the
|
||||
;; DocBook instance. This associative list maps the style type names used
|
||||
;; in your instance to the appropriate CSS names. If no mapping exists,
|
||||
;; the name from the instance will be used.
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
'(("bullet" "disc")
|
||||
("box" "square")))
|
||||
|
||||
(define %css-decoration%
|
||||
;; REFENTRY css-decoration
|
||||
;; PURP Enable CSS decoration of elements
|
||||
;; DESC
|
||||
;; If '%css-decoration%' is turned on then HTML elements produced by the
|
||||
;; stylesheet may be decorated with STYLE attributes. For example, the
|
||||
;; LI tags produced for list items may include a fragment of CSS in the
|
||||
;; STYLE attribute which sets the CSS property "list-style-type".
|
||||
;; /DESC
|
||||
;; AUTHOR N/A
|
||||
;; /REFENTRY
|
||||
#t)
|
||||
|
||||
;; HB added 2008-01-19
|
||||
(define %html-header-tags%
|
||||
'(("META" ("HTTP-EQUIV" "Content-Type") ("CONTENT" "text/html;
|
||||
charset=ISO-8859-1"))))
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
|
||||
<style-specification id="html-notoc" use="html">
|
||||
<style-specification-body>
|
||||
|
||||
;; ===================================================
|
||||
;; Vairant without TOC for the Homepage --oes 24/05/02
|
||||
;; ===================================================
|
||||
|
||||
(define %generate-article-toc%
|
||||
;; Should a Table of Contents be produced for Articles?
|
||||
;; If true, a Table of Contents will be generated for each 'Article'.
|
||||
#f)
|
||||
|
||||
</style-specification-body>
|
||||
</style-specification>
|
||||
|
||||
<external-specification id="docbook" document="docbook.dsl">
|
||||
|
||||
</style-sheet>
|
|
@ -0,0 +1,50 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/license.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: license.sgml,v 2.6 2008/05/23 15:09:48 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
privoxy-man-page
|
||||
user-manual
|
||||
developer-manual
|
||||
faq
|
||||
webserver/index.sgml
|
||||
|
||||
-->
|
||||
|
||||
<para>
|
||||
<application>Privoxy</application> is free software; you can
|
||||
redistribute it and/or modify it under the terms of the
|
||||
<citetitle>GNU General Public License</citetitle>, version 2,
|
||||
as published by the Free Software Foundation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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 <ulink
|
||||
url="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">
|
||||
<citetitle>GNU General Public License</citetitle></ulink> for details.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You should have received a copy of the <citetitle>GNU GPL</citetitle>
|
||||
along with this program; if not, write to the <address> Free Software
|
||||
Foundation, Inc. <street>51 Franklin Street, Fifth Floor</street>
|
||||
<city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>
|
||||
<country>USA</country> </address>
|
||||
</para>
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/newfeatures.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: newfeatures.sgml,v 2.10 2009/02/14 17:37:13 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
user-manual
|
||||
faq
|
||||
|
||||
-->
|
||||
<para>
|
||||
<itemizedlist>
|
||||
|
||||
<!--
|
||||
<listitem>
|
||||
<para>
|
||||
FIXME: complete the list of features. change the order: most important
|
||||
features to the top of the list. prefix new features with "NEW".
|
||||
</para>
|
||||
</listitem>
|
||||
-->
|
||||
<listitem>
|
||||
<para>
|
||||
Can keep outgoing connections alive and reuse them later on.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Supports tagging which allows to change the behaviour
|
||||
based on client and server headers.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Can be run as an "intercepting" proxy, which obviates the need to
|
||||
configure browsers individually.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Sophisticated actions and filters for manipulating both server and client
|
||||
headers.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Can be chained with other proxies.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Integrated browser based configuration and control utility at <ulink
|
||||
url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
||||
(shortcut: <ulink url="http://p.p/">http://p.p/</ulink>). Browser-based
|
||||
tracing of rule and filter effects. Remote toggling.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Web page filtering (text replacements, removes banners based on size,
|
||||
invisible <quote>web-bugs</quote>, JavaScript and HTML annoyances,
|
||||
pop-up windows, etc.)
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Modularized configuration that allows for standard settings and
|
||||
user settings to reside in separate files, so that installing updated
|
||||
actions files won't overwrite individual user settings.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Support for Perl Compatible Regular Expressions in the configuration files, and
|
||||
a more sophisticated and flexible configuration syntax.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Improved cookie management features (e.g. session based cookies).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
GIF de-animation.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Bypass many click-tracking scripts (avoids script redirection).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Multi-threaded (POSIX and native threads).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Auto-detection and re-reading of config file changes.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Improved signal handling, and a true daemon mode (Unix).
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Every feature now controllable on a per-site or per-location basis, configuration
|
||||
more powerful and versatile over-all.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
Many smaller new features added, limitations and bugs removed.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</para>
|
|
@ -0,0 +1,159 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/p-authors.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: p-authors.sgml,v 2.34 2009/02/08 18:13:26 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
privoxy-man-page
|
||||
AUTHORS
|
||||
user-manual
|
||||
|
||||
-->
|
||||
<![%p-authors-formal;[
|
||||
<para>
|
||||
Current Privoxy Team:
|
||||
</para>
|
||||
]]>
|
||||
|
||||
<literallayout>
|
||||
Fabian Keil, lead developer
|
||||
David Schmidt, developer
|
||||
<![%p-authors-formal;[
|
||||
]]>
|
||||
|
||||
Hal Burgiss
|
||||
Mark Miller
|
||||
Gerry Murphy
|
||||
Lee Rian
|
||||
Roland Rosenfeld
|
||||
Jörg Strohmayer
|
||||
<![%p-authors-formal;[
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
Former Privoxy Team Members:
|
||||
</para>
|
||||
|
||||
<literallayout>
|
||||
Johny Agotnes
|
||||
Rodrigo Barbosa
|
||||
Moritz Barsnick
|
||||
Ian Cummings
|
||||
Brian Dessent
|
||||
Jon Foster
|
||||
Karsten Hopp
|
||||
Alexander Lazic
|
||||
Daniel Leite
|
||||
Gábor Lipták
|
||||
Adam Lock
|
||||
Guy Laroche
|
||||
Justin McMurtry
|
||||
Andreas Oesterhelt
|
||||
Haroon Rafique
|
||||
Georg Sauthoff
|
||||
Thomas Steudten
|
||||
Rodney Stromlund
|
||||
Sviatoslav Sviridov
|
||||
Sarantis Paskalis
|
||||
Stefan Waldherr
|
||||
]]>
|
||||
</literallayout>
|
||||
<![%p-authors-formal;[
|
||||
<para>
|
||||
Thanks to the many people who have tested Privoxy, reported bugs, provided
|
||||
patches, made suggestions or contributed in some way. These include (in
|
||||
alphabetical order):
|
||||
</para>
|
||||
<literallayout>
|
||||
Ken Arromdee
|
||||
Devin Bayer
|
||||
Gergely Bor
|
||||
Reiner Buehl
|
||||
Andrew J. Caines
|
||||
Clifford Caoile
|
||||
Frédéric Crozat
|
||||
Michael T. Davis
|
||||
Mattes Dolak
|
||||
Matthias Drochner
|
||||
Peter E.
|
||||
Florian Effenberger
|
||||
Markus Elfring
|
||||
Dean Gaudet
|
||||
Stephen Gildea
|
||||
Daniel Griscom
|
||||
Felix Gröbert
|
||||
Aaron Hamid
|
||||
Darel Henman
|
||||
Magnus Holmgren
|
||||
Eric M. Hopper
|
||||
Ralf Horstmann
|
||||
Stefan Huehner
|
||||
Peter Hyman
|
||||
Derek Jennings
|
||||
Petr Kadlec
|
||||
David Laight
|
||||
Bert van Leeuwen
|
||||
Don Libes
|
||||
Paul Lieverse
|
||||
Toby Lyward
|
||||
Wil Mahan
|
||||
Jindrich Makovicka
|
||||
David Mediavilla
|
||||
Raphael Moll
|
||||
Amuro Namie
|
||||
Adam Piggott
|
||||
Dan Price
|
||||
Roberto Ragusa
|
||||
Félix Rauch
|
||||
Maynard Riley
|
||||
Chung-chieh Shan
|
||||
Spinor S.
|
||||
Bart Schelstraete
|
||||
Oliver Stoeneberg
|
||||
Peter Thoenen
|
||||
Martin Thomas
|
||||
Bobby G. Vinyard
|
||||
Jochen Voss
|
||||
Glenn Washburn
|
||||
Song Weijia
|
||||
Jörg Weinmann
|
||||
Darren Wiebe
|
||||
Anduin Withers
|
||||
Oliver Yeoh
|
||||
Jamie Zawinski
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
Privoxy is based in part on code originally developed by
|
||||
Junkbusters Corp. and Anonymous Coders.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Privoxy heavily relies on Philip Hazel's PCRE.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The code to filter compressed content makes use of zlib
|
||||
which is written by Jean-loup Gailly and Mark Adler.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
On systems that lack snprintf(), Privoxy is using a version
|
||||
written by Mark Martinec. On systems that lack strptime(),
|
||||
Privoxy is using the one from the GNU C Library written
|
||||
by Ulrich Drepper.
|
||||
</para>
|
||||
]]>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,352 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/privoxy-man-page.sgml,v $
|
||||
|
||||
Purpose : Manual Page
|
||||
This file belongs into
|
||||
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
||||
|
||||
$Id: privoxy-man-page.sgml,v 2.29 2009/02/19 02:20:22 hal9 Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation.
|
||||
========================================================================
|
||||
|
||||
Doc NOTES: This is some tricky markup! There are some quirks
|
||||
to how this markup is handled. It is not always so co-operative.
|
||||
Please don't change the markup unless you can verify the changes
|
||||
will improve finished output!
|
||||
|
||||
literallayout tags are particularly sensitive to where they are placed.
|
||||
The 'replaceable' and 'command' tags are used here somewhat unconventionally,
|
||||
since it seems to generate the proper formatting (at least for me :).
|
||||
|
||||
Create man page: 'make man'
|
||||
|
||||
Requires docbook2man (short perl script), see CVS
|
||||
http://sources.redhat.com/docbook-tools/. Also requires openjade and SGMLSpm
|
||||
perl module.
|
||||
|
||||
For man page references, see:
|
||||
http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/using.html
|
||||
http://docbook.org/tdg/en/html/ch02.html#making-refentry
|
||||
|
||||
-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"[
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity p-intro SYSTEM "privoxy.sgml">
|
||||
<!entity seealso SYSTEM "seealso.sgml">
|
||||
<!entity copyright SYSTEM "copyright.sgml">
|
||||
<!entity license SYSTEM "license.sgml">
|
||||
<!entity authors SYSTEM "p-authors.sgml">
|
||||
<!entity p-version "3.0.11">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % p-stable "INCLUDE">
|
||||
<!entity % p-text "IGNORE"> <!-- define we are not a text only doc -->
|
||||
<!entity % p-authors-formal "IGNORE"> <!-- exclude additional formating -->
|
||||
<!entity my-copy "(C)"> <!-- db2man barfs on copyright symbol -->
|
||||
<!entity % seealso-extra "IGNORE"> <!-- for excluding sections of seealso -->
|
||||
]>
|
||||
|
||||
<refentry id="privoxy">
|
||||
<refentryinfo>
|
||||
<date>2009-02-15</date>
|
||||
</refentryinfo>
|
||||
<refmeta>
|
||||
<refentrytitle>privoxy</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo>
|
||||
Privoxy &p-version;<![%p-not-stable;[ &p-status;]]>
|
||||
</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname><application>privoxy</application></refname>
|
||||
<refpurpose>Privacy Enhancing Proxy</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>privoxy</command>
|
||||
<arg><option>--help</option></arg>
|
||||
<arg><option>--version</option></arg>
|
||||
<arg><option>--no-daemon</option></arg>
|
||||
<arg><option>--pidfile </option><replaceable class="parameter">pidfile</replaceable></arg>
|
||||
<arg><option>--user </option><replaceable class="parameter">user[.group]</replaceable></arg>
|
||||
<arg><option>--chroot</option></arg>
|
||||
<arg><option>--pre-chroot-nslookup </option><replaceable class="parameter">hostname</replaceable></arg>
|
||||
<arg><replaceable class="parameter">configfile</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Options</title>
|
||||
<para>
|
||||
<command>Privoxy</command> may be invoked with the following command line
|
||||
options:
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>--help</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print brief usage info and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--version</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print version info and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--no-daemon</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Don't become a daemon, i.e. don't fork and become process group
|
||||
leader, don't detach from controlling tty, and do all logging there.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--pidfile <replaceable class="parameter">pidfile</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
On startup, write the process ID to <replaceable class="parameter">pidfile</replaceable>.
|
||||
Delete the <replaceable class="parameter">pidfile</replaceable> on exit.
|
||||
Failure to create or delete the <replaceable class="parameter">pidfile</replaceable>
|
||||
is non-fatal. If no <command>--pidfile</command> option is given, no PID file will be used.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--user <replaceable class="parameter">user[.group]</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<!-- Note: replaceable is maybe the wrong tag, but generates -->
|
||||
<!-- correct looking man output. -->
|
||||
After (optionally) writing the PID file, assume the user ID of
|
||||
<replaceable class="parameter">user</replaceable> and the GID of
|
||||
<replaceable class="parameter">group</replaceable>, or, if the optional
|
||||
<replaceable class="parameter">group</replaceable> was not given, the default group of
|
||||
<replaceable class="parameter">user</replaceable>. Exit if the privileges are not
|
||||
sufficient to do so.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>--chroot</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Before changing to the user ID given in the --user option, chroot to
|
||||
that user's home directory, i.e. make the kernel pretend to the
|
||||
<command>Privoxy</command> process that the directory tree starts
|
||||
there. If set up carefully, this can limit the impact of possible
|
||||
vulnerabilities in <command>Privoxy</command> to the files contained in
|
||||
that hierarchy.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>--pre-chroot-nslookup <replaceable class="parameter">hostname</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Initialize the resolver library using <replaceable class="parameter">hostname</replaceable>
|
||||
before chroot'ing. On some systems this reduces the number of files
|
||||
that must be copied into the chroot tree.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>
|
||||
If the <filename>configfile</filename> is not specified on the command line,
|
||||
<command>Privoxy</command> will look for a file named
|
||||
<filename>config</filename> in the current directory. If no
|
||||
<filename>configfile</filename> is found, <command>Privoxy</command> will
|
||||
fail to start.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Description</title>
|
||||
<!-- Include privoxy.sgml boilerplate: -->
|
||||
&p-intro;
|
||||
<!-- end boilerplate -->
|
||||
</refsect1>
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Installation and Usage</title>
|
||||
<para>
|
||||
Browsers can either be individually configured to use
|
||||
<command>Privoxy</command> as a HTTP proxy (recommended),
|
||||
or <command>Privoxy</command> can be combined with a packet
|
||||
filter to build an intercepting proxy
|
||||
(see <filename>config</filename>). The default setting is for
|
||||
localhost, on port 8118 (configurable in the main config file). To set the
|
||||
HTTP proxy in Firefox, go through: <command>Tools</command>;
|
||||
<command>Options</command>; <command>General</command>;
|
||||
<command>Connection Settings</command>;
|
||||
<command>Manual Proxy Configuration</command>.
|
||||
</para>
|
||||
<para>
|
||||
For Internet Explorer, go through: <command>Tools</command>;
|
||||
<command>Internet Properties</command>; <command>Connections</command>;
|
||||
<command>LAN Settings</command>.
|
||||
</para>
|
||||
<para>
|
||||
The Secure (SSL) Proxy should also be set to the same values, otherwise
|
||||
https: URLs will not be proxied. Note: <command>Privoxy</command> can only
|
||||
proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols.
|
||||
HTTPS presents some limitations, and not all features will work with HTTPS
|
||||
connections.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For other browsers, check the documentation.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Configuration</title>
|
||||
<para>
|
||||
<command>Privoxy</command> can be configured with the various configuration
|
||||
files. The default configuration files are: <filename>config</filename>,
|
||||
<filename>default.filter</filename>, <filename>default.action</filename> and
|
||||
<filename>default.action</filename>. <filename>user.action</filename> should
|
||||
be used for locally defined exceptions to the default rules in
|
||||
<filename>match-all.action</filename> and <filename>default.action</filename>,
|
||||
and <filename>user.filter</filename> for locally defined filters. These are
|
||||
well commented. On Unix and Unix-like systems, these are located in
|
||||
<filename>/etc/privoxy/</filename> by default.
|
||||
</para>
|
||||
<para>
|
||||
<command>Privoxy</command> uses the concept of <command>actions</command>
|
||||
in order to manipulate the data stream between the browser and remote sites.
|
||||
There are various actions available with specific functions for such things
|
||||
as blocking web sites, managing cookies, etc. These actions can be invoked
|
||||
individually or combined, and used against individual URLs, or groups of URLs
|
||||
that can be defined using wildcards and regular expressions. The result is
|
||||
that the user has greatly enhanced control and freedom.
|
||||
</para>
|
||||
<para>
|
||||
The actions list (ad blocks, etc) can also be configured with your
|
||||
web browser at <ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
|
||||
(assuming the configuration allows it).
|
||||
<command>Privoxy's</command> configuration parameters can also be viewed at
|
||||
the same page. In addition, <command>Privoxy</command> can be toggled on/off.
|
||||
This is an internal page, and does not require Internet access.
|
||||
</para>
|
||||
<para>
|
||||
See the <ulink
|
||||
url="http://www.privoxy.org/user-manual/"><citetitle>User Manual</citetitle></ulink> for a detailed
|
||||
explanation of installation, general usage, all configuration options, new
|
||||
features and notes on upgrading.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Files</title>
|
||||
<!-- this is a cheesy way to do this, but WTF. -->
|
||||
<literallayout>
|
||||
<filename>/usr/sbin/privoxy</filename>
|
||||
<filename>/etc/privoxy/config</filename>
|
||||
<filename>/etc/privoxy/match-all.action</filename>
|
||||
<filename>/etc/privoxy/default.action</filename>
|
||||
<filename>/etc/privoxy/user.action</filename>
|
||||
<filename>/etc/privoxy/default.filter</filename>
|
||||
<filename>/etc/privoxy/user.filter</filename>
|
||||
<filename>/etc/privoxy/trust</filename>
|
||||
<filename>/etc/privoxy/templates/*</filename>
|
||||
<filename>/var/log/privoxy/logfile</filename>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
Various other files should be included, but may vary depending on platform
|
||||
and build configuration. Additional documentation should be included in the local
|
||||
documentation directory.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Signals</title>
|
||||
<para>
|
||||
<!-- command tag is used here to get proper looking format -->
|
||||
<command>Privoxy</command> terminates on the <command>SIGINT</command>,
|
||||
<command>SIGTERM</command> and <command>SIGABRT</command> signals. Log
|
||||
rotation scripts may cause a re-opening of the logfile by sending a
|
||||
<command>SIGHUP</command> to <command>Privoxy</command>. Note that unlike
|
||||
other daemons, <command>Privoxy</command> does not need to be made aware of
|
||||
config file changes by <command>SIGHUP</command> -- it will detect them
|
||||
automatically.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Notes</title>
|
||||
<![%p-not-stable;[
|
||||
<para>
|
||||
This is a &p-status; version of <command>Privoxy</command>. Not
|
||||
all features are well tested.
|
||||
</para>]]>
|
||||
<para>
|
||||
Please see the <citetitle>User Manual</citetitle> on how to contact the
|
||||
developers, for feature requests, reporting problems, and other questions.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>See Also</title>
|
||||
<!-- Include seealso.sgml boilerplate: -->
|
||||
&seealso;
|
||||
<!-- end boilerplate -->
|
||||
</refsect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Development Team</title>
|
||||
<!-- Include p-authors.sgml boilerplate: -->
|
||||
&authors;
|
||||
<!-- end boilerplate -->
|
||||
</refsect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<refsect1><title>Copyright and License</title>
|
||||
|
||||
<refsect2><title>Copyright</title>
|
||||
<!-- Include copyright.sgml boilerplate: -->
|
||||
©right;
|
||||
<!-- end boilerplate -->
|
||||
</refsect2>
|
||||
|
||||
<refsect2><title>License</title>
|
||||
<!-- Include license.sgml boilerplate: -->
|
||||
&license;
|
||||
<!-- end boilerplate -->
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
|
@ -0,0 +1,44 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/privoxy.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: privoxy.sgml,v 2.9 2009/03/21 12:42:49 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
privoxy-man-page
|
||||
user-manual
|
||||
faq
|
||||
developer-manual
|
||||
README
|
||||
webserver/index.sgml
|
||||
|
||||
-->
|
||||
|
||||
<para>
|
||||
Privoxy is a non-caching web proxy with advanced filtering capabilities
|
||||
for enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||
flexible configuration and can be customized to suit individual needs and tastes.
|
||||
It has application for both stand-alone systems and multi-user networks.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Privoxy is Free Software and licensed under the GPL2.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||
<ulink url="http://www.privoxy.org/faq/general.html#DONATE">Donations are welcome</ulink>.
|
||||
</para>
|
|
@ -0,0 +1,268 @@
|
|||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity supported SYSTEM "supported.sgml">
|
||||
<!entity p-intro SYSTEM "privoxy.sgml">
|
||||
<!entity contacting SYSTEM "contacting.sgml">
|
||||
<!entity buildsource SYSTEM "buildsource.sgml">
|
||||
<!entity p-version "3.0.12">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % p-stable "INCLUDE">
|
||||
<!entity % p-text "INCLUDE"> <!-- define we are a text only doc -->
|
||||
<!entity % p-doc "IGNORE"> <!-- and never a text doc -->
|
||||
<!entity % p-readme "INCLUDE"> <!-- all your README belong to us -->
|
||||
]>
|
||||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/readme.sgml,v $
|
||||
|
||||
Purpose : README for Privoxy
|
||||
|
||||
$Id: readme.sgml,v 2.26 2009/03/21 11:32:38 hal9 Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation. You have been warned!
|
||||
Failure to abide by this rule will result in the revocation of your license
|
||||
to live a peaceful existence!
|
||||
========================================================================
|
||||
|
||||
===================================================================
|
||||
READ: Document Note: This file generates the README in the top level
|
||||
source directory. It is generated as only a plain text file. The
|
||||
current markup is not suitable for other formats. Build from
|
||||
Makefile with 'make dok-readme'.
|
||||
===================================================================
|
||||
|
||||
READ:
|
||||
|
||||
======================================================================
|
||||
NOTE: The left margin spacing is *important* when using 'literallayout'
|
||||
WYSISWYG!!! Don't mess this up!!! Careful with linebreaks too, ie
|
||||
the para tag forces a linebreak. Tags need to be carefully placed as a result
|
||||
to avoid extra blank lines, etc.
|
||||
======================================================================
|
||||
|
||||
For stable releases, change
|
||||
|
||||
entity % p-not-stable "INCLUDE"
|
||||
|
||||
to
|
||||
|
||||
entity % p-not-stable "IGNORE"
|
||||
|
||||
in the DTD at the top. This will toggle various text 'off'. BOTH
|
||||
MUST be toggled in this case or you will get both text referencing
|
||||
stable and unstable versions. You only want one or the other!
|
||||
|
||||
-->
|
||||
<article id="index">
|
||||
<artheader>
|
||||
<![%dummy;[
|
||||
<para>
|
||||
<comment>
|
||||
This is here to keep vim syntax file from breaking :/
|
||||
If I knew enough to fix it, I would.
|
||||
PLEASE DO NOT REMOVE! HB: hal@foobox.net
|
||||
</comment>
|
||||
</para>
|
||||
]]>
|
||||
<abstract>
|
||||
<para>
|
||||
<literal>
|
||||
<msgtext>
|
||||
<literallayout>
|
||||
/*********************************************************************
|
||||
*
|
||||
* File : $Source: /cvsroot/ijbswa/current/doc/source/readme.sgml,v $
|
||||
*
|
||||
* Purpose : README file to give a short intro.
|
||||
*
|
||||
* Copyright : Written by and Copyright (C) 2001-2009 the SourceForge
|
||||
* Privoxy team. http://www.privoxy.org/
|
||||
*
|
||||
* 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.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA
|
||||
*
|
||||
*********************************************************************/
|
||||
</literallayout>
|
||||
</msgtext>
|
||||
</literal>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<!-- include some conditional text -->
|
||||
This README is included with <![%p-not-stable;[ the development version of]]>
|
||||
Privoxy &p-version;. See http://www.privoxy.org/ for more information. The current code maturity
|
||||
level is <quote>&p-status;</quote><![%p-not-stable;[, but seems stable to us :)]]>.
|
||||
</para>
|
||||
</abstract>
|
||||
</artheader>
|
||||
|
||||
<!-- Include privoxy.sgml boilerplate: -->
|
||||
&p-intro;
|
||||
<!-- end boilerplate -->
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="importantchanges" ><title>IMPORTANT CHANGES</title>
|
||||
<para>
|
||||
March 2009, Privoxy 3.0.12 is released.
|
||||
</para>
|
||||
<para>
|
||||
This is primarily a bug fix release. See the "ChangeLog", and the "What's
|
||||
New" section and the "Upgrader's Notes" in <citetitle>the User
|
||||
Manual</citetitle> for details.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
February 2009, Privoxy 3.0.11 is released.
|
||||
</para>
|
||||
<para>
|
||||
As usual there are changes that effect the configuration. See the "ChangeLog",
|
||||
and the "What's New" section and the "Upgrader's Notes" in
|
||||
<citetitle>the User Manual</citetitle> for details and specifics.
|
||||
</para>
|
||||
<para>
|
||||
This is a stable release, and marks a departure for Privoxy development.
|
||||
</para>
|
||||
<para>
|
||||
Previously, odd numbered releases were considered beta versions and
|
||||
were only released at the end of the development cycle when the code
|
||||
was already believed to be stable. Usually it was, so the stable release
|
||||
contained pretty much the same code, but got a higher version number.
|
||||
In the future we intend to release several snapshots between stable releases.
|
||||
There will probably still be about two stable releases per year,
|
||||
but hopefully about six snapshots instead of the two betas we have now.
|
||||
The intentions is to make testing without CVS access easier.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="install" ><title>INSTALL</title>
|
||||
<para>
|
||||
See the <filename>INSTALL</filename> file in this directory, for installing
|
||||
from raw source, and the <citetitle>User Manual</citetitle>, for all other
|
||||
installation types.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="run"><title>RUN</title>
|
||||
<para>
|
||||
privoxy [--help] [--version]
|
||||
[--no-daemon] [--pidfile PIDFILE] [--user USER[.GROUP]] [--chroot] [--pre-chroot-nslookup
|
||||
HOSTNAME ][config_file]
|
||||
</para>
|
||||
<para>
|
||||
See the man page or <citetitle>User Manual</citetitle> for an explanation of each option, and
|
||||
other configuration and usage issues.
|
||||
</para>
|
||||
<para>
|
||||
If no config_file is specified on the command line, Privoxy will look for a
|
||||
file named 'config' in the current directory (except Win32 which will look
|
||||
for 'config.txt'). If no config_file is found, Privoxy will fail to start.
|
||||
</para>
|
||||
<para>
|
||||
Or for Red Hat and Fedora based distributions: /etc/rc.d/init.d/privoxy start
|
||||
</para>
|
||||
<para>
|
||||
Or Debian and Ubuntu: /etc/init.d/privoxy start
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="configuration"><title>CONFIGURATION</title>
|
||||
<para>
|
||||
See: 'config', 'default.action', 'user.action', 'default.filter', and
|
||||
'user.filter'. 'user.action' and 'user.filter' are for personal and local
|
||||
configuration preferences. These are all well commented. Most of the magic is
|
||||
in '*.action' files. 'user.action' should be used for any actions
|
||||
customizations. On Unix-like systems, these files are typically installed in
|
||||
/etc/privoxy. On Windows, then wherever the executable itself is installed.
|
||||
There are many significant changes and advances from earlier versions. The
|
||||
<citetitle>User Manual</citetitle> has an explanation of all configuration
|
||||
options, and examples: http://www.privoxy.org/user-manual/.
|
||||
</para>
|
||||
<para>
|
||||
Be sure to set your browser(s) for HTTP/HTTPS Proxy at <IP>:<Port>, or
|
||||
whatever you specify in the config file under 'listen-address'. DEFAULT is
|
||||
localhost:8118. Note that Privoxy ONLY proxies HTTP (and HTTPS) traffic. Do not try it
|
||||
with FTP or other protocols for the simple reason it does not work.
|
||||
</para>
|
||||
<para>
|
||||
The actions list can be configured via the web interface accessed via
|
||||
http://p.p/, as well other options.
|
||||
</para>
|
||||
<![%p-not-stable;[
|
||||
<para>
|
||||
All configuration files are subject to unannounced changes during the
|
||||
development process.
|
||||
</para>
|
||||
]]>
|
||||
</sect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="documentation"><title>DOCUMENTATION</title>
|
||||
<para>
|
||||
There should be documentation in the 'doc' subdirectory<![%p-not-stable;[, but it
|
||||
may not be completed at this point]]>. In particular, see the
|
||||
<citetitle>User Manual</citetitle> there,
|
||||
the <citetitle>FAQ</citetitle>, and those interested in Privoxy development, should look at
|
||||
<citetitle>developer-manual</citetitle>.
|
||||
</para>
|
||||
<para>
|
||||
<![%p-not-stable;[
|
||||
The most up to date source of information on the current development version,
|
||||
may still be either comments in the source code, or the included
|
||||
configuration files. ]]>The source and configuration files are all well
|
||||
commented. The main configuration files are: 'config', 'default.action', and
|
||||
'default.filter'<![%p-not-stable;[ in the top-level source directory]]>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Included documentation may vary according to platform and packager. All
|
||||
documentation is posted on http://www.privoxy.org, in case you don't have it,
|
||||
or can't find it.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 id="contact"><title>CONTACTING THE DEVELOPERS, BUG REPORTING AND FEATURE REQUESTS</title>
|
||||
<!-- Include contacting.sgml boilerplate: -->
|
||||
&contacting;
|
||||
<!-- end boilerplate -->
|
||||
</sect1>
|
||||
|
||||
<!-- <para> -->
|
||||
<!-- <LiteralLayout> -->
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
<!-- ijbswa-developers@lists.sourceforge.net -->
|
||||
<!-- </LiteralLayout> -->
|
||||
<!-- </para> -->
|
||||
<!-- <para> -->
|
||||
<!-- $Id: readme.sgml,v 2.26 2009/03/21 11:32:38 hal9 Exp $ -->
|
||||
<!-- </para> -->
|
||||
|
||||
</article>
|
|
@ -0,0 +1,113 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/seealso.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: seealso.sgml,v 2.12 2009/02/23 10:42:58 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
privoxy-man-page
|
||||
user-manual
|
||||
faq
|
||||
developer-manual
|
||||
|
||||
NOTE: 04/05/02, HB Removed tags. They were causing docbook2man
|
||||
to barf.
|
||||
|
||||
-->
|
||||
|
||||
<para>
|
||||
Other references and sites of interest to <application>Privoxy</application>
|
||||
users:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink
|
||||
url="http://www.privoxy.org/">http://www.privoxy.org/</ulink>,
|
||||
the <application>Privoxy</application> Home page.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink
|
||||
url="http://www.privoxy.org/faq/">http://www.privoxy.org/faq/</ulink>,
|
||||
the <application>Privoxy</application> FAQ.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink
|
||||
url="http://www.privoxy.org/developer-manual/">http://www.privoxy.org/developer-manual/</ulink>,
|
||||
the <application>Privoxy</application> developer manual.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="https://sourceforge.net/projects/ijbswa/">https://sourceforge.net/projects/ijbswa/</ulink>,
|
||||
the Project Page for <application>Privoxy</application> on
|
||||
<ulink url="http://sourceforge.net">SourceForge</ulink>.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>,
|
||||
the web-based user interface. <application>Privoxy</application> must be
|
||||
running for this to work. Shortcut: <ulink url="http://p.p/">http://p.p/</ulink>
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="https://sourceforge.net/tracker/?group_id=11118&atid=460288">https://sourceforge.net/tracker/?group_id=11118&atid=460288</ulink>, to submit <quote>misses</quote> and other
|
||||
configuration related suggestions to the developers.
|
||||
</member>
|
||||
</simplelist>
|
||||
<![%seealso-extra;[
|
||||
<!-- This part only goes into user-manual -->
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="http://www.junkbusters.com/ht/en/cookies.html">http://www.junkbusters.com/ht/en/cookies.html</ulink>,
|
||||
an explanation how cookies are used to track web users.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="http://www.junkbusters.com/ijb.html">http://www.junkbusters.com/ijb.html</ulink>,
|
||||
the original Internet Junkbuster.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="http://www.squid-cache.org/">http://www.squid-cache.org/</ulink>, a popular
|
||||
caching proxy, which is often used together with <application>Privoxy</application>.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="http://www.pps.jussieu.fr/~jch/software/polipo/">http://www.pps.jussieu.fr/~jch/software/polipo/</ulink>,
|
||||
<application>Polipo</application> is a caching proxy with advanced features
|
||||
like pipelining, multiplexing and caching of partial instances. In many setups
|
||||
it can be used as <application>Squid</application> replacement.
|
||||
</member>
|
||||
</simplelist>
|
||||
<simplelist>
|
||||
<member>
|
||||
<ulink url="https://www.torproject.org/">https://www.torproject.org/</ulink>,
|
||||
<application>Tor</application> can help anonymize web browsing,
|
||||
web publishing, instant messaging, IRC, SSH, and other applications.
|
||||
</member>
|
||||
</simplelist>
|
||||
]]>
|
||||
</para>
|
|
@ -0,0 +1,46 @@
|
|||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/supported.sgml,v $
|
||||
|
||||
Purpose : Entity included in other project documents.
|
||||
|
||||
$Id: supported.sgml,v 2.9 2008/01/17 01:49:51 hal9 Exp $
|
||||
|
||||
Copyright (C) 2001-2008 Privoxy Developers http://www.privoxy.org/
|
||||
See LICENSE.
|
||||
|
||||
======================================================================
|
||||
This file used for inclusion with other documents only.
|
||||
======================================================================
|
||||
|
||||
If you make changes to this file, please verify the finished
|
||||
docs all display as intended.
|
||||
|
||||
This file is included into:
|
||||
|
||||
user-manual
|
||||
faq
|
||||
newfeatures
|
||||
announce
|
||||
|
||||
-->
|
||||
<para>
|
||||
At present, <application>Privoxy</application> is known to run on
|
||||
Windows(95, 98, ME, 2000, XP, Vista), GNU/Linux (RedHat, SuSE, Debian,
|
||||
Fedora, Gentoo, Slackware and others), Mac OSX, OS/2, AmigaOS, FreeBSD,
|
||||
NetBSD, OpenBSD, Solaris, and various other flavors of Unix.
|
||||
</para>
|
||||
|
||||
<![%p-supp-userman;[
|
||||
<para>
|
||||
But any operating system that runs TCP/IP, can conceivably take advantage of
|
||||
<application>Privoxy</application> in a networked situation where
|
||||
<application>Privoxy</application> would run as a server on a LAN gateway.
|
||||
Then only the <quote>gateway</quote> needs to be running one of the above
|
||||
operating systems.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Source code is freely available, so porting to other operating systems
|
||||
is always a possibility.
|
||||
</para>
|
||||
]]>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
'refentry:PRIVOXY' => 'privoxy(1)',
|
||||
'' => ''
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,372 @@
|
|||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||
<!entity % dummy "IGNORE">
|
||||
<!entity p-intro SYSTEM "privoxy.sgml">
|
||||
<!entity contacting SYSTEM "contacting.sgml">
|
||||
<!entity history SYSTEM "history.sgml">
|
||||
<!entity copyright SYSTEM "copyright.sgml">
|
||||
<!entity license SYSTEM "license.sgml">
|
||||
<!entity p-version "3.0.11">
|
||||
<!entity p-status "stable">
|
||||
<!entity % p-not-stable "IGNORE">
|
||||
<!entity % p-stable "INCLUDE">
|
||||
<!entity my-copy "©"> <!-- kludge for docbook2man -->
|
||||
<!entity % p-homepage "IGNORE"> <!-- toggle for webserver index.html -->
|
||||
<!entity % p-index "IGNORE"> <!-- toggle for local doc index -->
|
||||
]>
|
||||
<!--
|
||||
File : $Source: /cvsroot/ijbswa/current/doc/source/webserver/index.sgml,v $
|
||||
|
||||
Purpose : Index file of the project's homepage and also documentation index
|
||||
This file belongs into
|
||||
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
||||
|
||||
$Id: index.sgml,v 2.9 2009/02/19 14:12:02 fabiankeil Exp $
|
||||
|
||||
Copyright (C) 2001-2009 Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
||||
See LICENSE.
|
||||
|
||||
========================================================================
|
||||
NOTE: Please read developer-manual/documentation.html before touching
|
||||
anything in this, or other Privoxy documentation.
|
||||
========================================================================
|
||||
|
||||
Note: This is the Privoxy home page *and* builds a page that can be
|
||||
used with local documentation as a focal point for docs or other points
|
||||
of interest. The Makefile is adding additional meta data and content via
|
||||
perl.
|
||||
|
||||
Generates: index.html, for webserver home page.
|
||||
privoxy-index.html, for packaging with docs
|
||||
|
||||
-->
|
||||
|
||||
<article id="index">
|
||||
<artheader>
|
||||
<title>Privoxy - <![%p-homepage;[Home Page]]><![%p-index;[The Privacy Enhancing Proxy]]></title>
|
||||
<![%p-index;[<subtitle>Project Index Page v&p-version;</subtitle>]]>
|
||||
|
||||
<!-- copyright is at bottom of page -->
|
||||
|
||||
<keywordset>
|
||||
<keyword>privoxy</keyword> <keyword>HTTP</keyword> <keyword>proxy</keyword> <keyword>privacy</keyword>
|
||||
<keyword>popups</keyword> <keyword>po-ups</keyword> <keyword>HTML</keyword> <keyword>JavaScript</keyword>
|
||||
<keyword>cleaning</keyword> <keyword>blocking</keyword> <keyword>cleaner</keyword> <keyword>blocker</keyword>
|
||||
<keyword>filter</keyword> <keyword>proxy</keyword> <keyword>junk</keyword> <keyword>ad</keyword>
|
||||
<keyword>advertisement</keyword> <keyword>banner</keyword> <keyword>webbugs</keyword>
|
||||
<keyword>web-bugs</keyword> <keyword>werbung</keyword> <keyword>junkbusters</keyword>
|
||||
<keyword>junkbuster</keyword>
|
||||
</keywordset>
|
||||
|
||||
<abstract>
|
||||
|
||||
<![%dummy;[
|
||||
<para>
|
||||
<comment>
|
||||
This is here to keep vim syntax file from breaking :/
|
||||
If I knew enough to fix it, I would.
|
||||
PLEASE DO NOT REMOVE! HB: hal@foobox.net
|
||||
</comment>
|
||||
</para>
|
||||
]]>
|
||||
|
||||
<!-- Include privoxy.sgml boilerplate: -->
|
||||
&p-intro;
|
||||
<!-- end boilerplate -->
|
||||
|
||||
<![%p-homepage;[
|
||||
<para>
|
||||
The most recent release is <ulink url="announce.txt">&p-version; (&p-status;)</ulink>.
|
||||
</para>
|
||||
]]>
|
||||
|
||||
</abstract>
|
||||
</artheader>
|
||||
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
|
||||
|
||||
<sect1 renderas="sect2" id="download" label=""><title>Download</title>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="https://sourceforge.net/project/showfiles.php?group_id=11118">Download recent releases</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<!--
|
||||
deprecated
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2">Download the latest CVS snapshot (source tarball)</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
-->
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/quickstart.html">Quickstart after installation</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 renderas="sect2" id="docs" label=""><title>Documentation</title>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/index.html">User manual</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="faq/index.html">Frequently Asked Questions</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="developer-manual/index.html">Developer Manual</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="man-page/privoxy-man-page.html">Classic Man Page</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 renderas="sect2" id="moreinfo" label=""><title>More information</title>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/contact.html">Support & Service</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/copyright.html">Copyright, License, History & Authors</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/introduction.html#FEATURES">List of (new) Features</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="https://sourceforge.net/projects/ijbswa/">The project page</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="user-manual/seealso.html">Related links</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<!-- please leave this link absolute so this file can be bundled with -->
|
||||
<!-- documentation and still used locally -->
|
||||
<ulink url="http://privoxy.org/team/index.html">Pictures of the Privoxy Team</ulink>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<![%p-homepage;[
|
||||
<!-- ~~~~~ New section ~~~~~ -->
|
||||
<sect1 label="">
|
||||
<!-- dummy section, for spacing -->
|
||||
<title></title>
|
||||
<para>
|
||||
<!-- show the SF logo per AUP -->
|
||||
<informaltable frame=none label="" pgwide="1">
|
||||
<tgroup cols=1 align="center" colsep=1 rowsep=1>
|
||||
<colspec colname=c1 align="center">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry align="center">Privoxy is developed on:</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry align="center">
|
||||
<ulink url="http://sourceforge.net/">
|
||||
<inlinegraphic fileref="http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif"></inlinegraphic>
|
||||
</ulink>
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
]]>
|
||||
|
||||
<!--
|
||||
<informalfigure pgwide="1">
|
||||
<ulink url="http://sourceforge.net/">
|
||||
<inlinegraphic align="center" fileref="http://sourceforge.net/sflogo.php?group_id=11118&type=1&dummy=.gif"></inlinegraphic>
|
||||
</ulink>
|
||||
</informalfigure>
|
||||
-->
|
||||
|
||||
|
||||
<![%p-index;[
|
||||
<sect1 label=""><title></title>
|
||||
<!-- dummy section for layout and spacing -->
|
||||
]]>
|
||||
|
||||
<!-- Formal copyright markup does not work here. HB. -->
|
||||
<!-- NOTE: I could not get docbook to completely ignore © -->
|
||||
<!-- GNUMakefile is inserting this now -->
|
||||
<para>
|
||||
<subscript>
|
||||
Copyright __copy 2001-2009 by Privoxy Developers
|
||||
</subscript>
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<!--
|
||||
|
||||
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: index.sgml,v $
|
||||
Revision 2.9 2009/02/19 14:12:02 fabiankeil
|
||||
Change link to the project page to https://.
|
||||
|
||||
Revision 2.8 2009/02/12 16:09:44 fabiankeil
|
||||
Declare the code stable.
|
||||
|
||||
Revision 2.7 2009/01/13 16:50:36 fabiankeil
|
||||
The standard.action file is gone.
|
||||
|
||||
Revision 2.6 2008/08/16 08:51:28 fabiankeil
|
||||
Update version-related entities.
|
||||
|
||||
Revision 2.5 2008/06/18 17:42:13 fabiankeil
|
||||
- Remove link to soon-to-be-removed PDFs.
|
||||
- Use https for the download URL.
|
||||
- Update copyright year.
|
||||
|
||||
Revision 2.4 2006/08/28 01:08:57 hal9
|
||||
Remove reference to defunct nightly cvs tarballs.
|
||||
|
||||
Revision 2.3 2006/07/18 14:48:51 david__schmidt
|
||||
Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
|
||||
with what was really the latest development (the v_3_0_branch branch)
|
||||
|
||||
Revision 1.16.2.12 2004/01/30 14:33:41 oes
|
||||
Vi(m) syntax voodoo now hidden; copyright updated
|
||||
|
||||
Revision 1.16.2.11 2003/08/16 12:16:30 hal9
|
||||
Update cvs tarball URL (to bz2)
|
||||
|
||||
Revision 1.16.2.10 2003/03/28 03:33:09 hal9
|
||||
Include link for announce.txt, and change handling of ©.
|
||||
|
||||
Revision 1.16.2.9 2003/03/26 02:03:45 oes
|
||||
Updated hard-coded copyright dates
|
||||
|
||||
Revision 1.16.2.8 2002/08/16 03:05:42 hal9
|
||||
Put all pdf docs in a zip archive now.
|
||||
|
||||
Revision 1.16.2.7 2002/08/14 16:40:00 hal9
|
||||
Add links to pdf docs.
|
||||
|
||||
Revision 1.16.2.6 2002/07/26 15:22:15 oes
|
||||
Most recent release now inserted automatically (again)
|
||||
|
||||
Revision 1.16.2.5 2002/06/09 18:59:16 hal9
|
||||
Correct typo.
|
||||
|
||||
Revision 1.16.2.4 2002/06/09 16:36:33 hal9
|
||||
Clarifications on filtering and MIME. Hardcode 'latest release' in index.html.
|
||||
|
||||
Revision 1.16.2.3 2002/05/28 02:31:38 hal9
|
||||
New file, privoxy-index.html, for bundling with documentation. Built from
|
||||
index.sgml, like homepage, but with content toggles more suitable for this use.
|
||||
|
||||
Revision 1.16.2.2 2002/05/26 22:04:46 hal9
|
||||
Add several comments, and reworded 'most recent release', ie we don't officially
|
||||
release odd numbered versions.
|
||||
|
||||
Revision 1.16.2.1 2002/05/26 17:40:02 hal9
|
||||
Make team pictures link absolute for docs.
|
||||
|
||||
Revision 1.16 2002/05/24 10:06:31 oes
|
||||
Nit
|
||||
|
||||
Revision 1.15 2002/05/24 00:02:05 oes
|
||||
Tried to make more useful and concise:
|
||||
Reordered, no more TOC, link to instead of include info,
|
||||
added some links. Should we use the free space to better
|
||||
describe what Privoxy is good for?
|
||||
|
||||
Revision 1.14 2002/05/10 01:48:20 hal9
|
||||
This is mostly proposed copyright/licensing additions and changes. Docs
|
||||
are still GPL, but licensing and copyright are more visible. Also, copyright
|
||||
changed in doc header comments (eliminate references to JB except FAQ).
|
||||
|
||||
Revision 1.13 2002/05/05 20:29:59 hal9
|
||||
Ooops, fixing an accidental delete of title element.
|
||||
|
||||
Revision 1.12 2002/05/05 20:26:02 hal9
|
||||
Sorting out license vs copyright in these docs.
|
||||
|
||||
Revision 1.11 2002/05/04 08:44:45 swa
|
||||
bumped version
|
||||
|
||||
Revision 1.10 2002/04/26 17:24:31 swa
|
||||
bookmarks cleaned, changed structure of user manual, screen and programlisting cleanups, and numerous other changes that I forgot
|
||||
|
||||
Revision 1.9 2002/04/14 01:00:07 hal9
|
||||
Fix the logo properly with docbook.
|
||||
|
||||
Revision 1.7 2002/04/12 10:11:53 swa
|
||||
changed bookmarklet text so that users can easily find the bookmark
|
||||
|
||||
Revision 1.6 2002/04/12 08:34:18 swa
|
||||
added link to new page
|
||||
|
||||
Revision 1.5 2002/04/12 02:05:19 david__schmidt
|
||||
Tiny English fix: infos -> info
|
||||
Add copyright date 2002
|
||||
|
||||
Revision 1.4 2002/04/08 20:42:07 swa
|
||||
fixed JB spelling
|
||||
|
||||
Revision 1.3 2002/04/07 20:27:18 hal9
|
||||
Fix meta data.
|
||||
|
||||
Revision 1.2 2002/04/07 09:06:45 swa
|
||||
users can now completely browse offline
|
||||
|
||||
Revision 1.1 2002/04/07 08:10:48 swa
|
||||
create some of the webserver docs
|
||||
automatically (in particular if
|
||||
those docs recycle other documentation
|
||||
fragments). Now committed webserver's
|
||||
index file.
|
||||
|
||||
|
||||
-->
|
||||
|
||||
</article>
|
|
@ -0,0 +1,9 @@
|
|||
All files contained in this directory should eventually be
|
||||
on the project's homepage
|
||||
|
||||
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
|
||||
|
||||
which is indeed http://ijbswa.sourceforge.net
|
||||
and http://www.privoxy.org/.
|
||||
|
||||
-Stefan, April 2002
|
|
@ -0,0 +1,126 @@
|
|||
Announcing Privoxy v.3.0.12
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Privoxy 3.0.12-stable is primarily a bugfix release.
|
||||
|
||||
See http://www.privoxy.org/3.0.12/user-manual/whatsnew.html for details.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
ChangeLog for Privoxy
|
||||
--------------------------------------------------------------------
|
||||
*** Version 3.0.12 ***
|
||||
|
||||
- The socket-timeout option now also works on platforms whose
|
||||
select() implementation modifies the timeout structure.
|
||||
Previously the timeout was triggered even if the connection
|
||||
didn't stall. Reported by cyberpatrol.
|
||||
- The Connection: keep-alive code properly deals with files
|
||||
larger than 2GB. Previously the connection was closed too
|
||||
early.
|
||||
- The content length for files above 2GB is logged correctly.
|
||||
- The user-manual directive on the show-status page links to
|
||||
the documentation location specified with the directive,
|
||||
not to the Privoxy website.
|
||||
- When running in daemon mode, Privoxy doesn't log anything
|
||||
to the console unless there are errors before the logfile
|
||||
has been opened.
|
||||
- The show-status page prints warnings about invalid directives
|
||||
on the same line as the directives themselves.
|
||||
- Fixed several justified (but harmless) compiler warnings,
|
||||
mostly on 64 bit platforms.
|
||||
- The mingw32 version explicitly requests the default charset
|
||||
to prevent display problems with some fonts available on more
|
||||
recent Windows versions. Patch by Burberry.
|
||||
- The mingw32 version uses the Privoxy icon in the alt-tab
|
||||
windows. Patch by Burberry.
|
||||
- The timestamp and the thread id is omitted in the "Fatal error"
|
||||
message box on mingw32.
|
||||
- Fixed two related mingw32-only buffer overflows. Triggering
|
||||
them required control over the configuration file, therefore
|
||||
this isn't seen as a security issue.
|
||||
- In verbose mode, or if the new option --show-skipped-tests
|
||||
is used, Privoxy-Regression-Test logs skipped tests and the
|
||||
skip reason.
|
||||
|
||||
|
||||
-----------------------------------------------------------------
|
||||
About Privoxy:
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Privoxy is a non-caching web proxy with advanced filtering capabilities for
|
||||
enhancing privacy, modifying web page data and HTTP headers, controlling
|
||||
access, and removing ads and other obnoxious Internet junk. Privoxy has a
|
||||
flexible configuration and can be customized to suit individual needs and
|
||||
tastes. It has application for both stand-alone systems and multi-user
|
||||
networks.
|
||||
|
||||
Privoxy is Free Software and licensed under the GPL2.
|
||||
|
||||
Privoxy is an associated project of Software in the Public Interest (SPI).
|
||||
Donations are welcome: http://www.privoxy.org/faq/general.html#DONATE
|
||||
|
||||
At present, Privoxy is known to run on Windows(95, 98, ME, 2000,
|
||||
XP, Vista), Linux (Ubuntu, RedHat, SuSE, Debian, Fedora, Gentoo and
|
||||
others), Mac OSX, OS/2, AmigaOS, FreeBSD, NetBSD, OpenBSD, Solaris, and
|
||||
various other flavors of Unix.
|
||||
|
||||
In addition to the core features of ad blocking and cookie management,
|
||||
Privoxy provides many supplemental features, that give the end-user
|
||||
more control, more privacy and more freedom:
|
||||
|
||||
|
||||
* Can keep outgoing connections alive and reuse them later on.
|
||||
|
||||
* Supports tagging which allows to change the behaviour based on client
|
||||
and server headers.
|
||||
|
||||
* Can be run as an "intercepting" proxy, which obviates the need to
|
||||
configure browsers individually.
|
||||
|
||||
* Sophisticated actions and filters for manipulating both server and
|
||||
client headers.
|
||||
|
||||
* Can be chained with other proxies.
|
||||
|
||||
* Integrated browser based configuration and control utility at
|
||||
http://config.privoxy.org/ (shortcut: http://p.p/). Browser-based
|
||||
tracing of rule and filter effects. Remote toggling.
|
||||
|
||||
* Web page filtering (text replacements, removes banners based on size,
|
||||
invisible "web-bugs", JavaScript and HTML annoyances, pop-up windows,
|
||||
etc.)
|
||||
|
||||
* Modularized configuration that allows for standard settings and user
|
||||
settings to reside in separate files, so that installing updated actions
|
||||
files won't overwrite individual user settings.
|
||||
|
||||
* Support for Perl Compatible Regular Expressions in the configuration
|
||||
files, and a more sophisticated and flexible configuration syntax.
|
||||
|
||||
* Improved cookie management features (e.g. session based cookies).
|
||||
|
||||
* GIF de-animation.
|
||||
|
||||
* Bypass many click-tracking scripts (avoids script redirection).
|
||||
|
||||
* Multi-threaded (POSIX and native threads).
|
||||
|
||||
* User-customizable HTML templates for most proxy-generated pages (e.g.
|
||||
"blocked" page).
|
||||
|
||||
* Auto-detection and re-reading of config file changes.
|
||||
|
||||
* Improved signal handling, and a true daemon mode (Unix).
|
||||
|
||||
* Every feature now controllable on a per-site or per-location basis,
|
||||
configuration more powerful and versatile over-all.
|
||||
|
||||
|
||||
Download location:
|
||||
http://sourceforge.net/project/showfiles.php?group_id=11118
|
||||
|
||||
Home Page:
|
||||
http://www.privoxy.org/
|
||||
|
||||
|
||||
- Privoxy Developers <ijbswa-developers@lists.sourceforge.net>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,510 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Contacting the developers, Bug Reporting and Feature Requests</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="HOME"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Update the Webserver"
|
||||
HREF="webserver-update.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Privoxy Copyright, License and History"
|
||||
HREF="copyright.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="SECT1"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>Privoxy Developer Manual</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="webserver-update.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="SECT1"
|
||||
><H1
|
||||
CLASS="SECT1"
|
||||
><A
|
||||
NAME="CONTACT"
|
||||
>8. Contacting the developers, Bug Reporting and Feature Requests</A
|
||||
></H1
|
||||
><P
|
||||
> We value your feedback. In fact, we rely on it to improve
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> and its configuration.
|
||||
However, please note the following hints, so we can
|
||||
provide you with the best support:</P
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CONTACT-SUPPORT"
|
||||
>8.1. Get Support</A
|
||||
></H2
|
||||
><P
|
||||
> For casual users, our
|
||||
<A
|
||||
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||
TARGET="_top"
|
||||
>support forum at SourceForge</A
|
||||
>
|
||||
is probably best suited:
|
||||
<A
|
||||
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118"
|
||||
TARGET="_top"
|
||||
>http://sourceforge.net/tracker/?group_id=11118&atid=211118</A
|
||||
></P
|
||||
><P
|
||||
> All users are of course welcome to discuss their issues on the <A
|
||||
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-users"
|
||||
TARGET="_top"
|
||||
>users
|
||||
mailing list</A
|
||||
>, where the developers also hang around.</P
|
||||
><P
|
||||
> Please don't sent private support requests to individual Privoxy
|
||||
developers, either use the mailing lists or the support trackers.</P
|
||||
><P
|
||||
> Note that the Privoxy mailing lists are moderated. Posts from unsubscribed
|
||||
addresses have to be accepted manually by a moderator. This may cause a
|
||||
delay of several days and if you use a subject that doesn't clearly
|
||||
mention Privoxy or one of its features, your message may be accidentally
|
||||
discarded as spam.</P
|
||||
><P
|
||||
> If you aren't subscribed, you should therefore spend a few seconds
|
||||
to come up with a proper subject. Additionally you should make it clear
|
||||
that you want to get CC'd. Otherwise some responses will be directed to
|
||||
the mailing list only, and you won't see them.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="REPORTING"
|
||||
>8.2. Reporting Problems</A
|
||||
></H2
|
||||
><P
|
||||
><SPAN
|
||||
CLASS="QUOTE"
|
||||
>"Problems"</SPAN
|
||||
> for our purposes, come in two forms:</P
|
||||
><P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
> Configuration issues, such as ads that slip through, or sites that
|
||||
don't function properly due to one <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"action"</SPAN
|
||||
> or another being turned <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"on"</SPAN
|
||||
>.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"Bugs"</SPAN
|
||||
> in the programming code that makes up
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>, such as that might cause a crash.
|
||||
</P
|
||||
></LI
|
||||
></UL
|
||||
><DIV
|
||||
CLASS="SECT3"
|
||||
><H3
|
||||
CLASS="SECT3"
|
||||
><A
|
||||
NAME="CONTACT-ADS"
|
||||
>8.2.1. Reporting Ads or Other Configuration Problems</A
|
||||
></H3
|
||||
><P
|
||||
> Please send feedback on ads that slipped through, innocent images that were
|
||||
blocked, sites that don't work properly, and other configuration related problem of
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>default.action</TT
|
||||
> file, to
|
||||
<A
|
||||
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=460288"
|
||||
TARGET="_top"
|
||||
> http://sourceforge.net/tracker/?group_id=11118&atid=460288</A
|
||||
>,
|
||||
the Actions File Tracker.</P
|
||||
><P
|
||||
> New, improved <TT
|
||||
CLASS="FILENAME"
|
||||
>default.action</TT
|
||||
> files may occasionally be made
|
||||
available based on your feedback. These will be announced on the <A
|
||||
HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
|
||||
TARGET="_top"
|
||||
>ijbswa-announce</A
|
||||
>
|
||||
list and available from our the <A
|
||||
HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
|
||||
TARGET="_top"
|
||||
>files section</A
|
||||
> of
|
||||
our <A
|
||||
HREF="http://sf.net/projects/ijbswa/"
|
||||
TARGET="_top"
|
||||
>project page</A
|
||||
>.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT3"
|
||||
><H3
|
||||
CLASS="SECT3"
|
||||
><A
|
||||
NAME="CONTACT-BUGS"
|
||||
>8.2.2. Reporting Bugs</A
|
||||
></H3
|
||||
><P
|
||||
> Please report all bugs through our bug tracker:
|
||||
<A
|
||||
HREF="http://sourceforge.net/tracker/?group_id=11118&atid=111118"
|
||||
TARGET="_top"
|
||||
>http://sourceforge.net/tracker/?group_id=11118&atid=111118</A
|
||||
>. </P
|
||||
><P
|
||||
> Before doing so, please make sure that the bug has <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>not already been submitted</I
|
||||
></SPAN
|
||||
>
|
||||
and observe the additional hints at the top of the <A
|
||||
HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
|
||||
TARGET="_top"
|
||||
>submit
|
||||
form</A
|
||||
>. If already submitted, please feel free to add any info to the
|
||||
original report that might help to solve the issue.</P
|
||||
><P
|
||||
> Please try to verify that it is a <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> bug,
|
||||
and not a browser or site bug or documented behaviour that just happens
|
||||
to be different than what you expected. If unsure,
|
||||
try <A
|
||||
HREF="http://config.privoxy.org/toggle?set=disable"
|
||||
TARGET="_top"
|
||||
>toggling
|
||||
off</A
|
||||
> <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>, and see if the problem persists.</P
|
||||
><P
|
||||
> If you are using your own custom configuration, please try
|
||||
the stock configs to see if the problem is configuration related.
|
||||
If you're having problems with a feature that is disabled by default,
|
||||
please ask around on the mailing list if others can reproduce the problem.</P
|
||||
><P
|
||||
> If you aren't using the latest Privoxy version, the bug may have been found
|
||||
and fixed in the meantime. We would appreciate if you could take the time
|
||||
to <A
|
||||
HREF="http://www.privoxy.org/user-manual/installation.html"
|
||||
TARGET="_top"
|
||||
>upgrade
|
||||
to the latest version</A
|
||||
> (or even the latest CVS snapshot) and verify
|
||||
that your bug still exists.</P
|
||||
><P
|
||||
>Please be sure to provide the following information:</P
|
||||
><P
|
||||
> <P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
> The exact <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> version you are using
|
||||
(if you got the source from CVS, please also provide the source code revisions
|
||||
as shown in <A
|
||||
HREF="http://config.privoxy.org/show-version"
|
||||
TARGET="_top"
|
||||
>http://config.privoxy.org/show-version</A
|
||||
>).
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> The operating system and versions you run
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> on, (e.g. <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Windows
|
||||
XP SP2</SPAN
|
||||
>), if you are using a Unix flavor,
|
||||
sending the output of <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"uname -a"</SPAN
|
||||
> should do,
|
||||
in case of GNU/Linux, please also name the distribution.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> The name, platform, and version of the <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>browser</SPAN
|
||||
>
|
||||
you were using (e.g. <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Internet Explorer v5.5</SPAN
|
||||
> for Mac).
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> The URL where the problem occurred, or some way for us to duplicate the
|
||||
problem (e.g. <TT
|
||||
CLASS="LITERAL"
|
||||
>http://somesite.example.com/?somethingelse=123</TT
|
||||
>).
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Whether your version of <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> is one supplied
|
||||
by the <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> developers via SourceForge,
|
||||
or if you got your copy somewhere else.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Whether you are using <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> in tandem with
|
||||
another proxy such as <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Tor</SPAN
|
||||
>. If so, please
|
||||
temporary disable the other proxy to see if the symptoms change.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Whether you are using a personal firewall product. If so, does
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> work without it?
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Any other pertinent information to help identify the problem such as config
|
||||
or log file excerpts (yes, you should have log file entries for each
|
||||
action taken).
|
||||
</P
|
||||
></LI
|
||||
></UL
|
||||
></P
|
||||
><P
|
||||
> You don't have to tell us your actual name when filing a problem
|
||||
report, but please use a nickname so we can differentiate between
|
||||
your messages and the ones entered by other "anonymous" users that
|
||||
may respond to your request if they have the same problem or already
|
||||
found a solution.</P
|
||||
><P
|
||||
> Please also check the status of your request a few days after submitting
|
||||
it, as we may request additional information. If you use a SF id,
|
||||
you should automatically get a mail when someone responds to your request.</P
|
||||
><P
|
||||
> The <A
|
||||
HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
|
||||
TARGET="_top"
|
||||
>appendix
|
||||
of the Privoxy User Manual</A
|
||||
> also has helpful information
|
||||
on understanding <TT
|
||||
CLASS="LITERAL"
|
||||
>actions</TT
|
||||
>, and <TT
|
||||
CLASS="LITERAL"
|
||||
>action</TT
|
||||
> debugging. </P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CONTACT-FEATURE"
|
||||
>8.3. Request New Features</A
|
||||
></H2
|
||||
><P
|
||||
> You are welcome to submit ideas on new features or other proposals
|
||||
for improvement through our feature request tracker at
|
||||
<A
|
||||
HREF="http://sourceforge.net/tracker/?atid=361118&group_id=11118"
|
||||
TARGET="_top"
|
||||
>http://sourceforge.net/tracker/?atid=361118&group_id=11118</A
|
||||
>.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CONTACT-OTHER"
|
||||
>8.4. Other</A
|
||||
></H2
|
||||
><P
|
||||
>For any other issues, feel free to use the mailing lists. Technically interested users
|
||||
and people who wish to contribute to the project are also welcome on the developers list!
|
||||
You can find an overview of all <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>-related mailing lists,
|
||||
including list archives, at:
|
||||
<A
|
||||
HREF="http://sourceforge.net/mail/?group_id=11118"
|
||||
TARGET="_top"
|
||||
>http://sourceforge.net/mail/?group_id=11118</A
|
||||
>.</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="webserver-update.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="copyright.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Update the Webserver</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Privoxy Copyright, License and History</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
|
@ -0,0 +1,298 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Privoxy Copyright, License and History</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="HOME"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Contacting the developers, Bug Reporting and Feature Requests"
|
||||
HREF="contact.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="See also"
|
||||
HREF="seealso.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="SECT1"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>Privoxy Developer Manual</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="contact.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="seealso.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="SECT1"
|
||||
><H1
|
||||
CLASS="SECT1"
|
||||
><A
|
||||
NAME="COPYRIGHT"
|
||||
>9. Privoxy Copyright, License and History</A
|
||||
></H1
|
||||
><P
|
||||
> Copyright © 2001-2009 by Privoxy Developers <CODE
|
||||
CLASS="EMAIL"
|
||||
><<A
|
||||
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||
>ijbswa-developers@lists.sourceforge.net</A
|
||||
>></CODE
|
||||
></P
|
||||
><P
|
||||
> Some source code is based on code Copyright © 1997 by Anonymous Coders
|
||||
and Junkbusters, Inc. and licensed under the <I
|
||||
CLASS="CITETITLE"
|
||||
>GNU General Public
|
||||
License</I
|
||||
>.</P
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="AEN1223"
|
||||
>9.1. License</A
|
||||
></H2
|
||||
><P
|
||||
> <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> is free software; you can
|
||||
redistribute it and/or modify it under the terms of the
|
||||
<I
|
||||
CLASS="CITETITLE"
|
||||
>GNU General Public License</I
|
||||
>, version 2,
|
||||
as published by the Free Software Foundation.</P
|
||||
><P
|
||||
> 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 <A
|
||||
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||
TARGET="_top"
|
||||
> <I
|
||||
CLASS="CITETITLE"
|
||||
>GNU General Public License</I
|
||||
></A
|
||||
> for details.</P
|
||||
><P
|
||||
> You should have received a copy of the <I
|
||||
CLASS="CITETITLE"
|
||||
>GNU GPL</I
|
||||
>
|
||||
along with this program; if not, write to the <P
|
||||
CLASS="ADDRESS"
|
||||
> Free Software<br>
|
||||
Foundation, Inc. <SPAN
|
||||
CLASS="STREET"
|
||||
>51 Franklin Street, Fifth Floor</SPAN
|
||||
><br>
|
||||
<SPAN
|
||||
CLASS="CITY"
|
||||
>Boston</SPAN
|
||||
>, <SPAN
|
||||
CLASS="STATE"
|
||||
>MA</SPAN
|
||||
> <SPAN
|
||||
CLASS="POSTCODE"
|
||||
>02110-1301</SPAN
|
||||
><br>
|
||||
<SPAN
|
||||
CLASS="COUNTRY"
|
||||
>USA</SPAN
|
||||
> </P
|
||||
></P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="AEN1239"
|
||||
>9.2. History</A
|
||||
></H2
|
||||
><P
|
||||
> A long time ago, there was the
|
||||
<A
|
||||
HREF="http://www.junkbusters.com/ijb.html"
|
||||
TARGET="_top"
|
||||
><SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Internet Junkbuster</SPAN
|
||||
></A
|
||||
>,
|
||||
by Anonymous Coders and <A
|
||||
HREF="http://www.junkbusters.com/"
|
||||
TARGET="_top"
|
||||
>Junkbusters
|
||||
Corporation</A
|
||||
>. This saved many users a lot of pain in the early days of
|
||||
web advertising and user tracking.</P
|
||||
><P
|
||||
> But the web, its protocols and standards, and with it, the techniques for
|
||||
forcing ads on users, give up autonomy over their browsing, and
|
||||
for tracking them, keeps evolving. Unfortunately, the <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Internet
|
||||
Junkbuster</SPAN
|
||||
> did not. Version 2.0.2, published in 1998, was
|
||||
(and is) the last official
|
||||
<A
|
||||
HREF="http://www.junkbusters.com/ijbdist.html#release"
|
||||
TARGET="_top"
|
||||
>release</A
|
||||
>
|
||||
available from <A
|
||||
HREF="http://www.junkbusters.com"
|
||||
TARGET="_top"
|
||||
>Junkbusters Corporation</A
|
||||
>.
|
||||
Fortunately, it had been released under the GNU
|
||||
<A
|
||||
HREF="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
|
||||
TARGET="_top"
|
||||
>GPL</A
|
||||
>,
|
||||
which allowed further development by others.</P
|
||||
><P
|
||||
> So Stefan Waldherr started maintaining an improved version of the
|
||||
software, to which eventually a number of people contributed patches.
|
||||
It could already replace banners with a transparent image, and had a first
|
||||
version of pop-up killing, but it was still very closely based on the
|
||||
original, with all its limitations, such as the lack of HTTP/1.1 support,
|
||||
flexible per-site configuration, or content modification. The last release
|
||||
from this effort was version 2.0.2-10, published in 2000.</P
|
||||
><P
|
||||
> Then, some
|
||||
<A
|
||||
HREF="http://www.privoxy.org/user-manual/copyright.html#AUTHORS"
|
||||
TARGET="_top"
|
||||
>developers</A
|
||||
>
|
||||
picked up the thread, and started turning the software inside out, upside down,
|
||||
and then reassembled it, adding many
|
||||
<A
|
||||
HREF="http://www.privoxy.org/user-manual/introduction.html#FEATURES"
|
||||
TARGET="_top"
|
||||
>new
|
||||
features</A
|
||||
> along the way.</P
|
||||
><P
|
||||
> The result of this is <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>, whose first
|
||||
stable version, 3.0, was released August, 2002.
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="contact.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="seealso.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Contacting the developers, Bug Reporting and Feature Requests</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>See also</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
|
@ -0,0 +1,330 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>The CVS Repository</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="HOME"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Introduction"
|
||||
HREF="introduction.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Documentation Guidelines"
|
||||
HREF="documentation.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="SECT1"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>Privoxy Developer Manual</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="introduction.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="documentation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="SECT1"
|
||||
><H1
|
||||
CLASS="SECT1"
|
||||
><A
|
||||
NAME="CVS"
|
||||
>2. The CVS Repository</A
|
||||
></H1
|
||||
><P
|
||||
> If you become part of the active development team, you will eventually
|
||||
need write access to our holy grail, the CVS repository. One of the
|
||||
team members will need to set this up for you. Please read
|
||||
this chapter completely before accessing via CVS.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CVSACCESS"
|
||||
>2.1. Access to CVS</A
|
||||
></H2
|
||||
><P
|
||||
> The project's CVS repository is hosted on
|
||||
<A
|
||||
HREF="http://sourceforge.net/"
|
||||
TARGET="_top"
|
||||
>SourceForge.</A
|
||||
>
|
||||
Please refer to the chapters 6 and 7 in
|
||||
<A
|
||||
HREF="http://sourceforge.net/docman/?group_id=1"
|
||||
TARGET="_top"
|
||||
>SF's site
|
||||
documentation</A
|
||||
> for the technical access details for your
|
||||
operating system. For historical reasons, the CVS server is
|
||||
called <TT
|
||||
CLASS="LITERAL"
|
||||
>ijbswa.cvs.sourceforge.net</TT
|
||||
>, the repository is
|
||||
called <TT
|
||||
CLASS="LITERAL"
|
||||
>ijbswa</TT
|
||||
>, and the source tree module is called
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
>current</TT
|
||||
>.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CVSBRANCHES"
|
||||
>2.2. Branches</A
|
||||
></H2
|
||||
><P
|
||||
> Within the CVS repository, there are modules and branches. As
|
||||
mentioned, the sources are in the <TT
|
||||
CLASS="LITERAL"
|
||||
>current</TT
|
||||
>
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"module"</SPAN
|
||||
>. Other modules are present for platform specific
|
||||
issues. There is a webview of the CVS hierarchy at <A
|
||||
HREF="http://ijbswa.cvs.sourceforge.net/ijbswa/"
|
||||
TARGET="_top"
|
||||
>http://ijbswa.cvs.sourceforge.net/ijbswa/</A
|
||||
>,
|
||||
which might help with visualizing how these pieces fit together.
|
||||
</P
|
||||
><P
|
||||
> Branches are used to fork a sub-development path from the main trunk.
|
||||
Within the <TT
|
||||
CLASS="LITERAL"
|
||||
>current</TT
|
||||
> module where the sources are, there
|
||||
is always at least one <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"branch"</SPAN
|
||||
> from the main trunk
|
||||
devoted to a stable release series. The main trunk is where active
|
||||
development takes place for the next stable series (e.g. 3.2.x).
|
||||
So just prior to each stable series (e.g. 3.0.x), a branch is created
|
||||
just for stable series releases (e.g. 3.0.0 -> 3.0.1 -> 3.0.2, etc).
|
||||
Once the initial stable release of any stable branch has taken place,
|
||||
this branch is <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>only used for bugfixes</I
|
||||
></SPAN
|
||||
>, which have
|
||||
had prior testing before being committed to CVS. (See <A
|
||||
HREF="newrelease.html#VERSIONNUMBERS"
|
||||
>Version Numbers</A
|
||||
> below for details on
|
||||
versioning.)
|
||||
</P
|
||||
><P
|
||||
> At one time there were two distinct branches: stable and unstable. The
|
||||
more drastic changes were to be in the unstable branch. These branches
|
||||
have now been merged to minimize time and effort of maintaining two
|
||||
branches.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="CVSCOMMIT"
|
||||
>2.3. CVS Commit Guidelines</A
|
||||
></H2
|
||||
><P
|
||||
> The source tree is the heart of every software project. Every effort must
|
||||
be made to ensure that it is readable, compilable and consistent at all
|
||||
times. There are differing guidelines for the stable branch and the
|
||||
main development trunk, and we ask anyone with CVS access to strictly
|
||||
adhere to the following guidelines:
|
||||
</P
|
||||
><P
|
||||
> Basic Guidelines, for all branches:
|
||||
</P
|
||||
><P
|
||||
> <P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
> Please don't commit even
|
||||
a small change without testing it thoroughly first. When we're
|
||||
close to a public release, ask a fellow developer to review your
|
||||
changes.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Your commit message should give a concise overview of <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>what you
|
||||
changed</I
|
||||
></SPAN
|
||||
> (no big details) and <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>why you changed it</I
|
||||
></SPAN
|
||||
>
|
||||
Just check previous messages for good examples.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Don't use the same message on multiple files, unless it equally applies to
|
||||
all those files.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> If your changes span multiple files, and the code won't recompile unless
|
||||
all changes are committed (e.g. when changing the signature of a function),
|
||||
then commit all files one after another, without long delays in between.
|
||||
If necessary, prepare the commit messages in advance.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Before changing things on CVS, make sure that your changes are in line
|
||||
with the team's general consensus on what should be done.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Note that near a major public release, we get more cautious.
|
||||
There is always the possibility to submit a patch to the <A
|
||||
HREF="http://sourceforge.net/tracker/?atid=311118&group_id=11118&func=browse"
|
||||
TARGET="_top"
|
||||
>patch
|
||||
tracker</A
|
||||
> instead.
|
||||
</P
|
||||
></LI
|
||||
></UL
|
||||
>
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="introduction.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="documentation.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Introduction</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Documentation Guidelines</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
|
@ -0,0 +1,944 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Documentation Guidelines</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="HOME"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="The CVS Repository"
|
||||
HREF="cvs.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Coding Guidelines"
|
||||
HREF="coding.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="SECT1"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>Privoxy Developer Manual</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="coding.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="SECT1"
|
||||
><H1
|
||||
CLASS="SECT1"
|
||||
><A
|
||||
NAME="DOCUMENTATION"
|
||||
>3. Documentation Guidelines</A
|
||||
></H1
|
||||
><P
|
||||
> All formal documents are maintained in Docbook SGML and located in the
|
||||
<SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>doc/source/*</SAMP
|
||||
> directory. You will need
|
||||
<A
|
||||
HREF="http://www.docbook.org"
|
||||
TARGET="_top"
|
||||
>Docbook</A
|
||||
>, the Docbook
|
||||
DTD's and the Docbook modular stylesheets (or comparable alternatives),
|
||||
and either <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>jade</SPAN
|
||||
> or
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>openjade</SPAN
|
||||
> (recommended) installed in order to
|
||||
build docs from source. Currently there is <A
|
||||
HREF="../user-manual/index.html"
|
||||
TARGET="_top"
|
||||
><I
|
||||
CLASS="CITETITLE"
|
||||
>user-manual</I
|
||||
></A
|
||||
>,
|
||||
<A
|
||||
HREF="../faq/index.html"
|
||||
TARGET="_top"
|
||||
><I
|
||||
CLASS="CITETITLE"
|
||||
>FAQ</I
|
||||
></A
|
||||
>, and, of
|
||||
course this, the <I
|
||||
CLASS="CITETITLE"
|
||||
>developer-manual</I
|
||||
> in this format.
|
||||
The <I
|
||||
CLASS="CITETITLE"
|
||||
>README</I
|
||||
>, <I
|
||||
CLASS="CITETITLE"
|
||||
>AUTHORS</I
|
||||
>,
|
||||
<I
|
||||
CLASS="CITETITLE"
|
||||
>INSTALL</I
|
||||
>,
|
||||
<I
|
||||
CLASS="CITETITLE"
|
||||
>privoxy.1</I
|
||||
> (man page), and
|
||||
<I
|
||||
CLASS="CITETITLE"
|
||||
>config</I
|
||||
> files are also now maintained as Docbook
|
||||
SGML. These files, when built, in the top-level source directory are
|
||||
generated files! Also, the <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> <TT
|
||||
CLASS="FILENAME"
|
||||
>index.html</TT
|
||||
> (and a
|
||||
variation on this file, <TT
|
||||
CLASS="FILENAME"
|
||||
>privoxy-index.html</TT
|
||||
>,
|
||||
meant for inclusion with doc packages), are maintained as SGML as well.
|
||||
<SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>DO NOT edit these directly</I
|
||||
></SPAN
|
||||
>. Edit the SGML source, or
|
||||
contact someone involved in the documentation.
|
||||
</P
|
||||
><P
|
||||
> <TT
|
||||
CLASS="FILENAME"
|
||||
>config</TT
|
||||
> requires some special handling. The reason it
|
||||
is maintained this way is so that the extensive comments in the file
|
||||
mirror those in <I
|
||||
CLASS="CITETITLE"
|
||||
>user-manual</I
|
||||
>. But the conversion
|
||||
process requires going from SGML to HTML to text to special formatting
|
||||
required for the embedded comments. Some of this does not survive so
|
||||
well. Especially some of the examples that are longer than 80 characters.
|
||||
The build process for this file outputs to <TT
|
||||
CLASS="FILENAME"
|
||||
>config.new</TT
|
||||
>,
|
||||
which should be reviewed for errors and mis-formatting. Once satisfied
|
||||
that it is correct, then it should be hand copied to
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>config</TT
|
||||
>.
|
||||
</P
|
||||
><P
|
||||
> Other, less formal documents (e.g. <TT
|
||||
CLASS="FILENAME"
|
||||
>LICENSE</TT
|
||||
>) are
|
||||
maintained as plain text files in the top-level source directory.
|
||||
</P
|
||||
><P
|
||||
> Packagers are encouraged to include this documentation. For those without
|
||||
the ability to build the docs locally, text versions of each are kept in
|
||||
CVS. HTML versions are also being kept in CVS under
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>doc/webserver/*</TT
|
||||
>. And PDF version are kept in
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>doc/pdf/*</TT
|
||||
>.
|
||||
</P
|
||||
><P
|
||||
> Formal documents are built with the Makefile targets of
|
||||
<SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make dok</SAMP
|
||||
>, or alternately
|
||||
<SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make redhat-dok</SAMP
|
||||
>. If you have problems,
|
||||
try both. The build process uses the document SGML sources in
|
||||
<SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>doc/source/*/*</SAMP
|
||||
> to update all text files in
|
||||
<SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>doc/text/</SAMP
|
||||
> and to update all HTML
|
||||
documents in <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>doc/webserver/</SAMP
|
||||
>.
|
||||
</P
|
||||
><P
|
||||
> Documentation writers should please make sure documents build
|
||||
successfully before committing to CVS, if possible.
|
||||
</P
|
||||
><P
|
||||
> How do you update the webserver (i.e. the pages on privoxy.org)?
|
||||
|
||||
<P
|
||||
></P
|
||||
><OL
|
||||
TYPE="1"
|
||||
><LI
|
||||
><P
|
||||
> First, build the docs by running <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make
|
||||
dok</SAMP
|
||||
> (or alternately <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make
|
||||
redhat-dok</SAMP
|
||||
>). For PDF docs, do <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make
|
||||
dok-pdf</SAMP
|
||||
>.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Run <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>make webserver</SAMP
|
||||
> which copies all
|
||||
files from <SAMP
|
||||
CLASS="COMPUTEROUTPUT"
|
||||
>doc/webserver</SAMP
|
||||
> to the
|
||||
sourceforge webserver via scp.
|
||||
</P
|
||||
></LI
|
||||
></OL
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> Finished docs should be occasionally submitted to CVS
|
||||
(<TT
|
||||
CLASS="FILENAME"
|
||||
>doc/webserver/*/*.html</TT
|
||||
>) so that those without
|
||||
the ability to build them locally, have access to them if needed.
|
||||
This is especially important just prior to a new release! Please
|
||||
do this <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>after</I
|
||||
></SPAN
|
||||
> the <TT
|
||||
CLASS="LITERAL"
|
||||
>$VERSION</TT
|
||||
> and
|
||||
other release specific data in <TT
|
||||
CLASS="FILENAME"
|
||||
>configure.in</TT
|
||||
> has been
|
||||
updated (this is done just prior to a new release).
|
||||
</P
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="SGML"
|
||||
>3.1. Quickstart to Docbook and SGML</A
|
||||
></H2
|
||||
><P
|
||||
> If you are not familiar with SGML, it is a markup language similar to HTML.
|
||||
Actually, not a mark up language per se, but a language used to define
|
||||
markup languages. In fact, HTML is an SGML application. Both will use
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"tags"</SPAN
|
||||
> to format text and other content. SGML tags can be much
|
||||
more varied, and flexible, but do much of the same kinds of things. The tags,
|
||||
or <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"elements"</SPAN
|
||||
>, are definable in SGML. There is no set
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"standards"</SPAN
|
||||
>. Since we are using
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Docbook</SPAN
|
||||
>, our tags are those that are defined by
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Docbook</SPAN
|
||||
>. Much of how the finish document is
|
||||
rendered is determined by the <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"stylesheets"</SPAN
|
||||
>.
|
||||
The stylesheets determine how each tag gets translated to HTML, or other
|
||||
formats.</P
|
||||
><P
|
||||
> Tags in Docbook SGML need to be always <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"closed"</SPAN
|
||||
>. If not, you
|
||||
will likely generate errors. Example: <TT
|
||||
CLASS="LITERAL"
|
||||
><title>My
|
||||
Title</title></TT
|
||||
>. They are also case-insensitive, but we
|
||||
strongly suggest using all lower case. This keeps compatibility with
|
||||
[Docbook] <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>XML</SPAN
|
||||
>.</P
|
||||
><P
|
||||
> Our documents use <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"sections"</SPAN
|
||||
> for the most part. Sections
|
||||
will be processed into HTML headers (e.g. <TT
|
||||
CLASS="LITERAL"
|
||||
>h1</TT
|
||||
> for
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
>sect1</TT
|
||||
>). The <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Docbook</SPAN
|
||||
> stylesheets
|
||||
will use these to also generate the Table of Contents for each doc. Our
|
||||
TOC's are set to a depth of three. Meaning <TT
|
||||
CLASS="LITERAL"
|
||||
>sect1</TT
|
||||
>,
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
>sect2</TT
|
||||
>, and <TT
|
||||
CLASS="LITERAL"
|
||||
>sect3</TT
|
||||
> will have TOC
|
||||
entries, but <TT
|
||||
CLASS="LITERAL"
|
||||
>sect4</TT
|
||||
> will not. Each section requires
|
||||
a <TT
|
||||
CLASS="LITERAL"
|
||||
><title></TT
|
||||
> element, and at least one
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
><para></TT
|
||||
>. There is a limit of five section
|
||||
levels in Docbook, but generally three should be sufficient for our
|
||||
purposes.</P
|
||||
><P
|
||||
> Some common elements that you likely will use: </P
|
||||
><P
|
||||
> <P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
><TBODY
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><para></para></I
|
||||
></SPAN
|
||||
>, paragraph delimiter. Most
|
||||
text needs to be within paragraph elements (there are some exceptions).
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><emphasis></emphasis></I
|
||||
></SPAN
|
||||
>, the stylesheets
|
||||
make this italics.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><filename></filename></I
|
||||
></SPAN
|
||||
>, files and directories.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><command></command></I
|
||||
></SPAN
|
||||
>, command examples.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><literallayout></literallayout></I
|
||||
></SPAN
|
||||
>, like
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
><pre></TT
|
||||
>, more or less.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><itemizedlist></itemizedlist></I
|
||||
></SPAN
|
||||
>, list with bullets.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><listitem></listitem></I
|
||||
></SPAN
|
||||
>, member of the above.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><screen></screen></I
|
||||
></SPAN
|
||||
>, screen output, implies
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
><literallayout></TT
|
||||
>.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><ulink url="example.com"></ulink></I
|
||||
></SPAN
|
||||
>, like
|
||||
HTML <TT
|
||||
CLASS="LITERAL"
|
||||
><a></TT
|
||||
> tag.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
><quote></quote></I
|
||||
></SPAN
|
||||
>, for, doh, quoting text.
|
||||
</TD
|
||||
></TR
|
||||
></TBODY
|
||||
></TABLE
|
||||
><P
|
||||
></P
|
||||
></P
|
||||
><P
|
||||
> Look at any of the existing docs for examples of all these and more.</P
|
||||
><P
|
||||
> You might also find <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"<A
|
||||
HREF="http://opensource.bureau-cornavin.com/crash-course/index.html"
|
||||
TARGET="_top"
|
||||
>Writing Documentation
|
||||
Using DocBook - A Crash Course</A
|
||||
>"</SPAN
|
||||
> useful.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="DOCSTYLE"
|
||||
>3.2. <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> Documentation Style</A
|
||||
></H2
|
||||
><P
|
||||
> It will be easier if everyone follows a similar writing style. This
|
||||
just makes it easier to read what someone else has written if it
|
||||
is all done in a similar fashion.
|
||||
</P
|
||||
><P
|
||||
> Here it is:
|
||||
</P
|
||||
><P
|
||||
> <P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
> All tags should be lower case.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Tags delimiting a <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>block</I
|
||||
></SPAN
|
||||
> of text (even small
|
||||
blocks) should be on their own line. Like:
|
||||
<P
|
||||
CLASS="LITERALLAYOUT"
|
||||
> <para><br>
|
||||
Some text goes here.<br>
|
||||
</para><br>
|
||||
</P
|
||||
>
|
||||
Tags marking individual words, or few words, should be in-line:
|
||||
<P
|
||||
CLASS="LITERALLAYOUT"
|
||||
> Just to <emphasis>emphasize</emphasis>, some text goes here.<br>
|
||||
</P
|
||||
>
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Tags should be nested and step indented for block text like: (except
|
||||
in-line tags)
|
||||
<P
|
||||
CLASS="LITERALLAYOUT"
|
||||
> <para><br>
|
||||
<itemizedlist><br>
|
||||
<para><br>
|
||||
<listitem><br>
|
||||
Some text goes here in our list example.<br>
|
||||
</listitem><br>
|
||||
</para><br>
|
||||
</itemizedlist><br>
|
||||
</para><br>
|
||||
</P
|
||||
>
|
||||
This makes it easier to find the text amongst the tags ;-)
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Use white space to separate logical divisions within a document,
|
||||
like between sections. Running everything together consistently
|
||||
makes it harder to read and work on.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Do not hesitate to make comments. Comments can either use the
|
||||
<comment> element, or the <!-- --> style comment
|
||||
familiar from HTML. (Note in Docbook v4.x <comment> is
|
||||
replaced by <remark>.)
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> We have an international audience. Refrain from slang, or English
|
||||
idiosyncrasies (too many to list :). Humor also does not translate
|
||||
well sometimes.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Try to keep overall line lengths in source files to 80 characters or less
|
||||
for obvious reasons. This is not always possible, with lengthy URLs for
|
||||
instance.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Our documents are available in differing formats. Right now, they
|
||||
are just plain text, HTML, and PDF, but others are always a
|
||||
future possibility. Be careful with URLs (<ulink>), and avoid
|
||||
this mistake:
|
||||
</P
|
||||
><P
|
||||
> My favorite site is <ulink url="http://example.com">here</ulink>.
|
||||
</P
|
||||
><P
|
||||
> This will render as <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"My favorite site is here"</SPAN
|
||||
>, which is
|
||||
not real helpful in a text doc. Better like this:
|
||||
</P
|
||||
><P
|
||||
> My favorite site is <ulink url="http://example.com">example.com</ulink>.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> All documents should be spell checked occasionally.
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>aspell</SPAN
|
||||
> can check SGML with the
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
>-H</TT
|
||||
> option. (<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>ispell</SPAN
|
||||
> I think
|
||||
too.)
|
||||
</P
|
||||
></LI
|
||||
></UL
|
||||
>
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="AEN217"
|
||||
>3.3. Privoxy Custom Entities</A
|
||||
></H2
|
||||
><P
|
||||
> <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> documentation is using
|
||||
a number of customized <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"entities"</SPAN
|
||||
> to facilitate
|
||||
documentation maintenance.
|
||||
</P
|
||||
><P
|
||||
> We are using a set of <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"boilerplate"</SPAN
|
||||
> files with generic text,
|
||||
that is used by multiple docs. This way we can write something once, and use
|
||||
it repeatedly without having to re-write the same content over and over again.
|
||||
If editing such a file, keep in mind that it should be
|
||||
<SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>generic</I
|
||||
></SPAN
|
||||
>. That is the purpose; so it can be used in varying
|
||||
contexts without additional modifications.
|
||||
</P
|
||||
><P
|
||||
> We are also using what <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Docbook</SPAN
|
||||
> calls
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"internal entities"</SPAN
|
||||
>. These are like variables in
|
||||
programming. Well, sort of. For instance, we have the
|
||||
<TT
|
||||
CLASS="LITERAL"
|
||||
>p-version</TT
|
||||
> entity that contains the current
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> version string. You are strongly
|
||||
encouraged to use these where possible. Some of these obviously
|
||||
require re-setting with each release (done by the Makefile). A sampling of
|
||||
custom entities are listed below. See any of the main docs for examples.
|
||||
</P
|
||||
><P
|
||||
> <P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
> Re- <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"boilerplate"</SPAN
|
||||
> text entities are defined like:
|
||||
</P
|
||||
><P
|
||||
> <TT
|
||||
CLASS="LITERAL"
|
||||
><!entity supported SYSTEM "supported.sgml"></TT
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> In this example, the contents of the file,
|
||||
<TT
|
||||
CLASS="FILENAME"
|
||||
>supported.sgml</TT
|
||||
> is available for inclusion anywhere
|
||||
in the doc. To make this happen, just reference the now defined
|
||||
entity: <TT
|
||||
CLASS="LITERAL"
|
||||
>&supported;</TT
|
||||
> (starts with an ampersand
|
||||
and ends with a semi-colon), and the contents will be dumped into
|
||||
the finished doc at that point.
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
> Commonly used <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"internal entities"</SPAN
|
||||
>:
|
||||
</P
|
||||
><P
|
||||
></P
|
||||
><TABLE
|
||||
BORDER="0"
|
||||
><TBODY
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>p-version</I
|
||||
></SPAN
|
||||
>: the <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>
|
||||
version string, e.g. <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"3.0.12"</SPAN
|
||||
>.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>p-status</I
|
||||
></SPAN
|
||||
>: the project status, either
|
||||
<SPAN
|
||||
CLASS="QUOTE"
|
||||
>"alpha"</SPAN
|
||||
>, <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"beta"</SPAN
|
||||
>, or <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"stable"</SPAN
|
||||
>.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>p-not-stable</I
|
||||
></SPAN
|
||||
>: use to conditionally include
|
||||
text in <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"not stable"</SPAN
|
||||
> releases (e.g. <SPAN
|
||||
CLASS="QUOTE"
|
||||
>"beta"</SPAN
|
||||
>).
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>p-stable</I
|
||||
></SPAN
|
||||
>: just the opposite.
|
||||
</TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
> <SPAN
|
||||
CLASS="emphasis"
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>p-text</I
|
||||
></SPAN
|
||||
>: this doc is only generated as text.
|
||||
</TD
|
||||
></TR
|
||||
></TBODY
|
||||
></TABLE
|
||||
><P
|
||||
></P
|
||||
></LI
|
||||
></UL
|
||||
>
|
||||
</P
|
||||
><P
|
||||
> There are others in various places that are defined for a specific
|
||||
purpose. Read the source!
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="coding.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>The CVS Repository</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Coding Guidelines</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
|
@ -0,0 +1,688 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Privoxy Developer Manual</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="Introduction"
|
||||
HREF="introduction.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="ARTICLE"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="ARTICLE"
|
||||
><DIV
|
||||
CLASS="TITLEPAGE"
|
||||
><H1
|
||||
CLASS="TITLE"
|
||||
><A
|
||||
NAME="AEN2"
|
||||
>Privoxy Developer Manual</A
|
||||
></H1
|
||||
><P
|
||||
CLASS="PUBDATE"
|
||||
> <SUB
|
||||
>
|
||||
|
||||
<A
|
||||
HREF="copyright.html"
|
||||
>Copyright</A
|
||||
> © 2001-2009 by
|
||||
<A
|
||||
HREF="http://www.privoxy.org/"
|
||||
TARGET="_top"
|
||||
>Privoxy Developers</A
|
||||
>
|
||||
</SUB
|
||||
>
|
||||
<BR></P
|
||||
><P
|
||||
CLASS="PUBDATE"
|
||||
>$Id: index.html,v 1.42 2009/03/21 12:59:32 fabiankeil Exp $<BR></P
|
||||
><DIV
|
||||
><DIV
|
||||
CLASS="ABSTRACT"
|
||||
><P
|
||||
></P
|
||||
><A
|
||||
NAME="AEN9"
|
||||
></A
|
||||
><P
|
||||
> The developer manual provides guidance on coding, testing, packaging, documentation
|
||||
and other issues of importance to those involved with
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> development. It is mandatory (and helpful!) reading
|
||||
for anyone who wants to join the team. Note that it's currently out of date
|
||||
and may not be entirely correct. As always, patches are welcome.</P
|
||||
><P
|
||||
> Please note that this document is constantly evolving. This copy represents
|
||||
the state at the release of version 3.0.12.
|
||||
You can find the latest version of the this manual at <A
|
||||
HREF="http://www.privoxy.org/developer-manual/"
|
||||
TARGET="_top"
|
||||
>http://www.privoxy.org/developer-manual/</A
|
||||
>.
|
||||
Please see <A
|
||||
HREF="contact.html"
|
||||
>the Contact section</A
|
||||
>
|
||||
on how to contact the developers.</P
|
||||
><P
|
||||
></P
|
||||
></DIV
|
||||
></DIV
|
||||
><HR></DIV
|
||||
><DIV
|
||||
CLASS="TOC"
|
||||
><DL
|
||||
><DT
|
||||
><B
|
||||
>Table of Contents</B
|
||||
></DT
|
||||
><DT
|
||||
>1. <A
|
||||
HREF="introduction.html"
|
||||
>Introduction</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>1.1. <A
|
||||
HREF="introduction.html#QUICKSTART"
|
||||
>Quickstart to Privoxy Development</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>2. <A
|
||||
HREF="cvs.html"
|
||||
>The CVS Repository</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>2.1. <A
|
||||
HREF="cvs.html#CVSACCESS"
|
||||
>Access to CVS</A
|
||||
></DT
|
||||
><DT
|
||||
>2.2. <A
|
||||
HREF="cvs.html#CVSBRANCHES"
|
||||
>Branches</A
|
||||
></DT
|
||||
><DT
|
||||
>2.3. <A
|
||||
HREF="cvs.html#CVSCOMMIT"
|
||||
>CVS Commit Guidelines</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>3. <A
|
||||
HREF="documentation.html"
|
||||
>Documentation Guidelines</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>3.1. <A
|
||||
HREF="documentation.html#SGML"
|
||||
>Quickstart to Docbook and SGML</A
|
||||
></DT
|
||||
><DT
|
||||
>3.2. <A
|
||||
HREF="documentation.html#DOCSTYLE"
|
||||
><SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> Documentation Style</A
|
||||
></DT
|
||||
><DT
|
||||
>3.3. <A
|
||||
HREF="documentation.html#AEN217"
|
||||
>Privoxy Custom Entities</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4. <A
|
||||
HREF="coding.html"
|
||||
>Coding Guidelines</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.1. <A
|
||||
HREF="coding.html#S1"
|
||||
>Introduction</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2. <A
|
||||
HREF="coding.html#S2"
|
||||
>Using Comments</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.2.1. <A
|
||||
HREF="coding.html#S3"
|
||||
>Comment, Comment, Comment</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.2. <A
|
||||
HREF="coding.html#S4"
|
||||
>Use blocks for comments</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.3. <A
|
||||
HREF="coding.html#S5"
|
||||
>Keep Comments on their own line</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.4. <A
|
||||
HREF="coding.html#S6"
|
||||
>Comment each logical step</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.5. <A
|
||||
HREF="coding.html#S7"
|
||||
>Comment All Functions Thoroughly</A
|
||||
></DT
|
||||
><DT
|
||||
>4.2.6. <A
|
||||
HREF="coding.html#S8"
|
||||
>Comment at the end of braces if the
|
||||
content is more than one screen length</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.3. <A
|
||||
HREF="coding.html#S9"
|
||||
>Naming Conventions</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.3.1. <A
|
||||
HREF="coding.html#S10"
|
||||
>Variable Names</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.2. <A
|
||||
HREF="coding.html#S11"
|
||||
>Function Names</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.3. <A
|
||||
HREF="coding.html#S12"
|
||||
>Header file prototypes</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.4. <A
|
||||
HREF="coding.html#S13"
|
||||
>Enumerations, and #defines</A
|
||||
></DT
|
||||
><DT
|
||||
>4.3.5. <A
|
||||
HREF="coding.html#S14"
|
||||
>Constants</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.4. <A
|
||||
HREF="coding.html#S15"
|
||||
>Using Space</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.4.1. <A
|
||||
HREF="coding.html#S16"
|
||||
>Put braces on a line by themselves.</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.2. <A
|
||||
HREF="coding.html#S17"
|
||||
>ALL control statements should have a
|
||||
block</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.3. <A
|
||||
HREF="coding.html#S18"
|
||||
>Do not belabor/blow-up boolean
|
||||
expressions</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.4. <A
|
||||
HREF="coding.html#S19"
|
||||
>Use white space freely because it is
|
||||
free</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.5. <A
|
||||
HREF="coding.html#S20"
|
||||
>Don't use white space around structure
|
||||
operators</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.6. <A
|
||||
HREF="coding.html#S21"
|
||||
>Make the last brace of a function stand
|
||||
out</A
|
||||
></DT
|
||||
><DT
|
||||
>4.4.7. <A
|
||||
HREF="coding.html#S22"
|
||||
>Use 3 character indentions</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.5. <A
|
||||
HREF="coding.html#S23"
|
||||
>Initializing</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.5.1. <A
|
||||
HREF="coding.html#S24"
|
||||
>Initialize all variables</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.6. <A
|
||||
HREF="coding.html#S25"
|
||||
>Functions</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.6.1. <A
|
||||
HREF="coding.html#S26"
|
||||
>Name functions that return a boolean as a
|
||||
question.</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.2. <A
|
||||
HREF="coding.html#S27"
|
||||
>Always specify a return type for a
|
||||
function.</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.3. <A
|
||||
HREF="coding.html#S28"
|
||||
>Minimize function calls when iterating by
|
||||
using variables</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.4. <A
|
||||
HREF="coding.html#S29"
|
||||
>Pass and Return by Const Reference</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.5. <A
|
||||
HREF="coding.html#S30"
|
||||
>Pass and Return by Value</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.6. <A
|
||||
HREF="coding.html#S31"
|
||||
>Names of include files</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.7. <A
|
||||
HREF="coding.html#S32"
|
||||
>Provide multiple inclusion
|
||||
protection</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.8. <A
|
||||
HREF="coding.html#S33"
|
||||
>Use `extern "C"` when appropriate</A
|
||||
></DT
|
||||
><DT
|
||||
>4.6.9. <A
|
||||
HREF="coding.html#S34"
|
||||
>Where Possible, Use Forward Struct
|
||||
Declaration Instead of Includes</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.7. <A
|
||||
HREF="coding.html#S35"
|
||||
>General Coding Practices</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>4.7.1. <A
|
||||
HREF="coding.html#S36"
|
||||
>Turn on warnings</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.2. <A
|
||||
HREF="coding.html#S37"
|
||||
>Provide a default case for all switch
|
||||
statements</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.3. <A
|
||||
HREF="coding.html#S38"
|
||||
>Try to avoid falling through cases in a
|
||||
switch statement.</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.4. <A
|
||||
HREF="coding.html#S39"
|
||||
>Use 'long' or 'short' Instead of
|
||||
'int'</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.5. <A
|
||||
HREF="coding.html#S40"
|
||||
>Don't mix size_t and other types</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.6. <A
|
||||
HREF="coding.html#S41"
|
||||
>Declare each variable and struct on its
|
||||
own line.</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.7. <A
|
||||
HREF="coding.html#S42"
|
||||
>Use malloc/zalloc sparingly</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.8. <A
|
||||
HREF="coding.html#S43"
|
||||
>The Programmer Who Uses 'malloc' is
|
||||
Responsible for Ensuring 'free'</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.9. <A
|
||||
HREF="coding.html#S44"
|
||||
>Add loaders to the `file_list' structure
|
||||
and in order</A
|
||||
></DT
|
||||
><DT
|
||||
>4.7.10. <A
|
||||
HREF="coding.html#S45"
|
||||
>"Uncertain" new code and/or changes to
|
||||
existing code, use FIXME or XXX</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>4.8. <A
|
||||
HREF="coding.html#S46"
|
||||
>Addendum: Template for files and function
|
||||
comment blocks:</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>5. <A
|
||||
HREF="testing.html"
|
||||
>Testing Guidelines</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>5.1. <A
|
||||
HREF="testing.html#TESTING-PLAN"
|
||||
>Testplan for releases</A
|
||||
></DT
|
||||
><DT
|
||||
>5.2. <A
|
||||
HREF="testing.html#TESTING-REPORT"
|
||||
>Test reports</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>6. <A
|
||||
HREF="newrelease.html"
|
||||
>Releasing a New Version</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>6.1. <A
|
||||
HREF="newrelease.html#VERSIONNUMBERS"
|
||||
>Version numbers</A
|
||||
></DT
|
||||
><DT
|
||||
>6.2. <A
|
||||
HREF="newrelease.html#BEFORERELEASE"
|
||||
>Before the Release: Freeze</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3. <A
|
||||
HREF="newrelease.html#THERELEASE"
|
||||
>Building and Releasing the Packages</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>6.3.1. <A
|
||||
HREF="newrelease.html#PACK-GUIDELINES"
|
||||
>Note on Privoxy Packaging</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.2. <A
|
||||
HREF="newrelease.html#NEWRELEASE-TARBALL"
|
||||
>Source Tarball</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.3. <A
|
||||
HREF="newrelease.html#NEWRELEASE-RPM"
|
||||
>SuSE, Conectiva or Red Hat RPM</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.4. <A
|
||||
HREF="newrelease.html#NEWRELEASE-OS2"
|
||||
>OS/2</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.5. <A
|
||||
HREF="newrelease.html#NEWRELEASE-SOLARIS"
|
||||
>Solaris</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.6. <A
|
||||
HREF="newrelease.html#NEWRELEASE-WINDOWS"
|
||||
>Windows</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.7. <A
|
||||
HREF="newrelease.html#NEWRELEASE-DEBIAN"
|
||||
>Debian</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.8. <A
|
||||
HREF="newrelease.html#NEWRELEASE-MACOSX"
|
||||
>Mac OS X</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.9. <A
|
||||
HREF="newrelease.html#NEWRELEASE-FREEBSD"
|
||||
>FreeBSD</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.10. <A
|
||||
HREF="newrelease.html#NEWRELEASE-HPUX"
|
||||
>HP-UX 11</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.11. <A
|
||||
HREF="newrelease.html#NEWRELEASE-AMIGA"
|
||||
>Amiga OS</A
|
||||
></DT
|
||||
><DT
|
||||
>6.3.12. <A
|
||||
HREF="newrelease.html#NEWRELEASE-AIX"
|
||||
>AIX</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>6.4. <A
|
||||
HREF="newrelease.html#RELEASING"
|
||||
>Uploading and Releasing Your Package</A
|
||||
></DT
|
||||
><DT
|
||||
>6.5. <A
|
||||
HREF="newrelease.html#AFTERRELEASE"
|
||||
>After the Release</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>7. <A
|
||||
HREF="webserver-update.html"
|
||||
>Update the Webserver</A
|
||||
></DT
|
||||
><DT
|
||||
>8. <A
|
||||
HREF="contact.html"
|
||||
>Contacting the developers, Bug Reporting and Feature Requests</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>8.1. <A
|
||||
HREF="contact.html#CONTACT-SUPPORT"
|
||||
>Get Support</A
|
||||
></DT
|
||||
><DT
|
||||
>8.2. <A
|
||||
HREF="contact.html#REPORTING"
|
||||
>Reporting Problems</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>8.2.1. <A
|
||||
HREF="contact.html#CONTACT-ADS"
|
||||
>Reporting Ads or Other Configuration Problems</A
|
||||
></DT
|
||||
><DT
|
||||
>8.2.2. <A
|
||||
HREF="contact.html#CONTACT-BUGS"
|
||||
>Reporting Bugs</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>8.3. <A
|
||||
HREF="contact.html#CONTACT-FEATURE"
|
||||
>Request New Features</A
|
||||
></DT
|
||||
><DT
|
||||
>8.4. <A
|
||||
HREF="contact.html#CONTACT-OTHER"
|
||||
>Other</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>9. <A
|
||||
HREF="copyright.html"
|
||||
>Privoxy Copyright, License and History</A
|
||||
></DT
|
||||
><DD
|
||||
><DL
|
||||
><DT
|
||||
>9.1. <A
|
||||
HREF="copyright.html#AEN1223"
|
||||
>License</A
|
||||
></DT
|
||||
><DT
|
||||
>9.2. <A
|
||||
HREF="copyright.html#AEN1239"
|
||||
>History</A
|
||||
></DT
|
||||
></DL
|
||||
></DD
|
||||
><DT
|
||||
>10. <A
|
||||
HREF="seealso.html"
|
||||
>See also</A
|
||||
></DT
|
||||
></DL
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="introduction.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>Introduction</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>Introduction</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
|
||||
REL="HOME"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="PREVIOUS"
|
||||
TITLE="Privoxy Developer Manual"
|
||||
HREF="index.html"><LINK
|
||||
REL="NEXT"
|
||||
TITLE="The CVS Repository"
|
||||
HREF="cvs.html"><LINK
|
||||
REL="STYLESHEET"
|
||||
TYPE="text/css"
|
||||
HREF="../p_doc.css"><META
|
||||
HTTP-EQUIV="Content-Type"
|
||||
CONTENT="text/html;
|
||||
charset=ISO-8859-1"></HEAD
|
||||
><BODY
|
||||
CLASS="SECT1"
|
||||
BGCOLOR="#EEEEEE"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><DIV
|
||||
CLASS="NAVHEADER"
|
||||
><TABLE
|
||||
SUMMARY="Header navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TH
|
||||
COLSPAN="3"
|
||||
ALIGN="center"
|
||||
>Privoxy Developer Manual</TH
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="left"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="80%"
|
||||
ALIGN="center"
|
||||
VALIGN="bottom"
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="10%"
|
||||
ALIGN="right"
|
||||
VALIGN="bottom"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
></TABLE
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"></DIV
|
||||
><DIV
|
||||
CLASS="SECT1"
|
||||
><H1
|
||||
CLASS="SECT1"
|
||||
><A
|
||||
NAME="INTRODUCTION"
|
||||
>1. Introduction</A
|
||||
></H1
|
||||
><P
|
||||
> <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>, as an heir to
|
||||
<SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Junkbuster</SPAN
|
||||
>, is a Free Software project
|
||||
and the code is licensed under the GNU General Public License version 2.
|
||||
As such, <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
> development is potentially open
|
||||
to anyone who has the time, knowledge, and desire to contribute
|
||||
in any capacity. Our goals are simply to continue the mission,
|
||||
to improve <SPAN
|
||||
CLASS="APPLICATION"
|
||||
>Privoxy</SPAN
|
||||
>, and
|
||||
to make it available to as wide an audience as possible.
|
||||
</P
|
||||
><P
|
||||
> One does not have to be a programmer to contribute. Packaging, testing,
|
||||
documenting and porting, are all important jobs as well.
|
||||
</P
|
||||
><DIV
|
||||
CLASS="SECT2"
|
||||
><H2
|
||||
CLASS="SECT2"
|
||||
><A
|
||||
NAME="QUICKSTART"
|
||||
>1.1. Quickstart to Privoxy Development</A
|
||||
></H2
|
||||
><P
|
||||
> The first step is to join the <A
|
||||
HREF="mailto:ijbswa-developers@lists.sourceforge.net"
|
||||
TARGET="_top"
|
||||
>developer's mailing list</A
|
||||
>.
|
||||
You can submit your ideas, or even better patches. Patches are best
|
||||
submitted to the Sourceforge tracker set up for this purpose, but
|
||||
can be sent to the list for review too.
|
||||
</P
|
||||
><P
|
||||
> You will also need to have a cvs package installed, which will
|
||||
entail having ssh installed as well (which seems to be a requirement of
|
||||
SourceForge), in order to access the cvs repository. Having the GNU build
|
||||
tools is also going to be important (particularly, autoconf and gmake).
|
||||
</P
|
||||
><P
|
||||
> For the time being (read, this section is under construction), you can
|
||||
also refer to the extensive comments in the source code. In fact,
|
||||
reading the code is recommended in any case.
|
||||
</P
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="NAVFOOTER"
|
||||
><HR
|
||||
ALIGN="LEFT"
|
||||
WIDTH="100%"><TABLE
|
||||
SUMMARY="Footer navigation table"
|
||||
WIDTH="100%"
|
||||
BORDER="0"
|
||||
CELLPADDING="0"
|
||||
CELLSPACING="0"
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="P"
|
||||
>Prev</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="index.html"
|
||||
ACCESSKEY="H"
|
||||
>Home</A
|
||||
></TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
><A
|
||||
HREF="cvs.html"
|
||||
ACCESSKEY="N"
|
||||
>Next</A
|
||||
></TD
|
||||
></TR
|
||||
><TR
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="left"
|
||||
VALIGN="top"
|
||||
>Privoxy Developer Manual</TD
|
||||
><TD
|
||||
WIDTH="34%"
|
||||
ALIGN="center"
|
||||
VALIGN="top"
|
||||
> </TD
|
||||
><TD
|
||||
WIDTH="33%"
|
||||
ALIGN="right"
|
||||
VALIGN="top"
|
||||
>The CVS Repository</TD
|
||||
></TR
|
||||
></TABLE
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue