commit 40546c9ee5aa83246ecd5e0898a30b0742e5971b Author: Nathan Freitas nathan@freitas.net Date: Thu Apr 24 23:43:33 2014 -0400
change from privoxy to polipo for http proxy --- .gitmodules | 3 + external/Makefile | 47 +- external/polipo | 1 + external/privoxy.configure.in | 1463 -------------------- external/privoxy.tar.gz | Bin 1811124 -> 0 bytes res/layout/layout_about.xml | 2 +- res/values/strings.xml | 6 +- .../android/service/TorResourceInstaller.java | 8 +- src/org/torproject/android/service/TorService.java | 36 +- .../android/service/TorServiceConstants.java | 4 +- 10 files changed, 47 insertions(+), 1523 deletions(-)
diff --git a/.gitmodules b/.gitmodules index a10c91e..caa21c3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,3 +26,6 @@ path = external/obfsclient url = https://git.torproject.org/user/yawning/obfsclient.git
+[submodule "external/polipo"] + path = external/polipo + url = https://github.com/jech/polipo.git diff --git a/external/Makefile b/external/Makefile index aa6922c..899bb2f 100644 --- a/external/Makefile +++ b/external/Makefile @@ -74,7 +74,7 @@ endif tor tor-clean \ liballium liballium-clean \ obfsclient obfsclient-clean \ - privoxy privoxy-clean + polipo polipo-clean
all: assets
@@ -280,37 +280,20 @@ obfsclient-clean: git clean -fdx
#------------------------------------------------------------------------------# -# privoxy - - -privoxy/config.log: - tar xzvf privoxy.tar.gz - mv privoxy*stable privoxy - cp privoxy.configure.in privoxy/configure.in - 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 +# polipo
-privoxy-build-stamp: privoxy/config.log - $(MAKE) -C privoxy - touch privoxy-build-stamp +polipo-build-stamp: + $(MAKE) CC="$(CC)" -C polipo + touch polipo-build-stamp
-privoxy: privoxy-build-stamp +polipo: polipo-build-stamp test -d bin || mkdir bin - cp privoxy/privoxy bin + cp polipo/polipo bin
-privoxy-clean: - -rm -f bin/privoxy - -rm -f privoxy-build-stamp - -rm -rf privoxy +polipo-clean: + -rm -f bin/polipo + -rm -f polipo-build-stamp + -rm -rf polipo
#------------------------------------------------------------------------------# # JTorControl library @@ -338,16 +321,16 @@ jtorctl-clean: #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 iptables obfsclient +assets: tor polipo jtorctl iptables obfsclient install bin/jtorctl.jar ../libs install -d ../res/raw - -zip ../res/raw/privoxy.mp3 bin/privoxy + -zip ../res/raw/polipo.mp3 bin/polipo -zip ../res/raw/obfsclient.mp3 bin/obfsclient -zip ../res/raw/tor.mp3 bin/tor -zip ../res/raw/xtables.mp3 bin/xtables
assets-clean: - -rm ../res/raw/privoxy.mp3 + -rm ../res/raw/polipo.mp3 -rm ../res/raw/obfsclient.mp3 -rm ../res/raw/tor.mp3 -rm ../res/raw/xtables.mp3 @@ -356,7 +339,7 @@ assets-clean: #------------------------------------------------------------------------------# # cleanup, cleanup, put the toys away
-clean: openssl-clean libevent-clean tor-clean privoxy-clean jtorctl-clean liballium-clean obfsclient-clean assets-clean +clean: openssl-clean libevent-clean tor-clean polipo-clean jtorctl-clean liballium-clean obfsclient-clean assets-clean
#------------------------------------------------------------------------------# # debugging stuff diff --git a/external/polipo b/external/polipo new file mode 160000 index 0000000..af08a10 --- /dev/null +++ b/external/polipo @@ -0,0 +1 @@ +Subproject commit af08a108acb9ac717f114d81c60cad0ccc0d7c21 diff --git a/external/privoxy.configure.in b/external/privoxy.configure.in deleted file mode 100644 index 2945a7a..0000000 --- a/external/privoxy.configure.in +++ /dev/null @@ -1,1463 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl $Id: configure.in,v 1.126 2009/03/21 10:45:06 fabiankeil Exp $ -dnl -dnl Written by and Copyright (C) 2001-2009 the -dnl Privoxy team. http://www.privoxy.org/ -dnl -dnl Based on the Internet Junkbuster originally written -dnl by and Copyright (C) 1997 Anonymous Coders and -dnl Junkbusters Corporation. http://www.junkbusters.com -dnl -dnl This program is free software; you can redistribute it -dnl and/or modify it under the terms of the GNU General -dnl Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at -dnl your option) any later version. -dnl -dnl This program is distributed in the hope that it will -dnl be useful, but WITHOUT ANY WARRANTY; without even the -dnl implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. See the GNU General Public -dnl License for more details. -dnl -dnl The GNU General Public License should be included with -dnl this file. If not, you can view it at -dnl http://www.gnu.org/copyleft/gpl.html -dnl or write to the Free Software Foundation, Inc., 59 -dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA. -dnl -dnl $Log: configure.in,v $ -dnl Revision 1.126 2009/03/21 10:45:06 fabiankeil -dnl Declare the code stable. -dnl -dnl Revision 1.125 2009/02/25 16:58:03 fabiankeil -dnl And the journey continues. Bump version to 3.0.12 UNRELEASED. -dnl -dnl Revision 1.124 2009/02/12 15:42:00 fabiankeil -dnl Declare the code stable. -dnl -dnl Revision 1.123 2009/02/06 18:17:32 fabiankeil -dnl Boldly enable keep-alive support where possible. -dnl -dnl Revision 1.122 2008/10/18 11:17:52 fabiankeil -dnl Connection keep-alive support is ready for testing, -dnl allow enabling it through the configure script. -dnl -dnl Revision 1.121 2008/08/30 12:03:07 fabiankeil -dnl Remove FEATURE_COOKIE_JAR. -dnl -dnl Revision 1.120 2008/08/21 17:19:50 fabiankeil -dnl Change version to 3.0.11 UNRELEASED. -dnl -dnl Revision 1.119 2008/08/13 16:53:50 fabiankeil -dnl Change version to 3.0.10 stable. -dnl -dnl Revision 1.118 2008/06/27 12:50:44 fabiankeil -dnl Here's looking at you, Gentoo Linux: Show a warning if -dnl --disable-pthread is used even though pthreads are available. -dnl -dnl Revision 1.117 2008/06/14 12:47:30 fabiankeil -dnl Set CODE_STATUS to beta. -dnl -dnl Revision 1.116 2008/06/08 11:55:09 fabiankeil -dnl - Show a warning if the soon-to-be-removed static PCRE code is used. -dnl - Hide the "using built-in static pcrs" message. With dynamic linking -dnl against PCRS disabled, the message isn't particularly useful. -dnl -dnl Revision 1.115 2008/05/25 15:50:14 fabiankeil -dnl Try to use zlib by default, but just show a warning if it's -dnl unavailable. Remove --enable-zlib, add --disable-zlib. -dnl -dnl Revision 1.114 2008/04/06 15:18:33 fabiankeil -dnl Oh well, rename the --enable-pcre-host-patterns option to -dnl --enable-extended-host-patterns as it's not really PCRE syntax. -dnl -dnl Revision 1.113 2008/04/06 14:54:26 fabiankeil -dnl Use PCRE syntax in host patterns when configured -dnl with --enable-pcre-host-patterns. -dnl -dnl Revision 1.112 2008/03/27 18:27:22 fabiankeil -dnl Remove kill-popups action. -dnl -dnl Revision 1.111 2008/02/03 14:40:47 fabiankeil -dnl Remove unused OSX_DARWIN macro. Reported by Mark Miller in #1852529. -dnl -dnl Revision 1.110 2008/01/26 10:52:13 fabiankeil -dnl Change version to 3.0.9 UNRELEASED. -dnl -dnl Revision 1.109 2008/01/20 14:07:09 fabiankeil -dnl Set CODE_STATUS to stable. -dnl -dnl Revision 1.108 2007/12/10 02:30:00 hal9 -dnl Change versioning for > 3.0.7 && < 3.0.8 -dnl -dnl Revision 1.107 2007/11/15 02:50:14 hal9 -dnl Setting to "beta" (for doc builds, etc). -dnl -dnl Revision 1.106 2007/05/11 11:49:41 fabiankeil -dnl Check for strlcat(). -dnl -dnl Revision 1.105 2007/04/09 17:34:58 fabiankeil -dnl Check for snprintf(). -dnl -dnl Revision 1.104 2007/03/31 13:35:11 fabiankeil -dnl Add checks for gettimeofday() and strlcpy(). -dnl -dnl Revision 1.103 2007/01/20 16:29:38 fabiankeil -dnl Suppress edit buttons for action files if Privoxy has -dnl no write access. Suggested by Roland in PR 1564026. -dnl -dnl Revision 1.102 2007/01/18 14:55:45 fabiankeil -dnl Check for tzset() and putenv() to make sure the -dnl replacement timegm() isn't included on systems -dnl where it fails to compile. -dnl -dnl Revision 1.101 2007/01/12 15:20:17 fabiankeil -dnl Temporarily ignore external libpcrs to prevent -dnl problems that are fixed in Privoxy's own version. -dnl -dnl Revision 1.100 2007/01/07 07:38:10 joergs -dnl Disabled -pipe for AmigaOS4. -dnl -dnl Revision 1.99 2007/01/01 19:36:37 fabiankeil -dnl Integrate a modified version of Wil Mahan's -dnl zlib patch (PR #895531). -dnl -dnl Revision 1.98 2006/12/17 19:15:26 fabiankeil -dnl Added ./configure switch for FEATURE_GRACEFUL_TERMINATION. -dnl -dnl Revision 1.97 2006/11/21 18:32:46 hal9 -dnl Setting version to 3.0.7 UNRELEASED for lack of a better setting. -dnl -dnl Revision 1.96 2006/11/18 14:42:51 fabiankeil -dnl Mark as stable. -dnl -dnl Revision 1.95 2006/11/14 02:08:59 hal9 -dnl Setting version string to 3.0.6 UNRELEASED. This needs to be reset to 3.0.6 -dnl stable just before CVS is tagged for release. -dnl -dnl Revision 1.94 2006/11/13 19:05:50 fabiankeil -dnl Make pthread mutex locking more generic. Instead of -dnl checking for OSX and OpenBSD, check for FEATURE_PTHREAD -dnl and use mutex locking unless there is an _r function -dnl available. Better safe than sorry. -dnl -dnl Fixes "./configure --disable-pthread" and should result -dnl in less threading-related problems on pthread-using platforms, -dnl but it still doesn't fix BR#1122404. -dnl -dnl Revision 1.93 2006/09/22 01:26:20 hal9 -dnl Set version to 3.0.5 BETA for hopefully release this weekend. -dnl -dnl Revision 1.92 2006/08/17 17:09:49 fabiankeil -dnl Added check for timegm(). -dnl -dnl Revision 1.91 2006/08/13 22:01:51 fabiankeil -dnl Added checks for strptime() and random() -dnl -dnl Revision 1.90 2006/07/18 14:48:45 david__schmidt -dnl Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch) -dnl with what was really the latest development (the v_3_0_branch branch) -dnl -dnl Revision 1.68.2.20 2004/01/31 16:31:46 oes -dnl Resetting version info to 0.0.0 UNRELEASED -dnl -dnl Revision 1.68.2.19 2004/01/30 09:26:03 oes -dnl Added docbook paths for debian sarge; set status for release -dnl -dnl Revision 1.68.2.18 2003/12/08 15:10:29 oes -dnl Bugfix: --with-docbook now correctly accepts its path parameter. Thanks, Roland! -dnl -dnl Revision 1.68.2.17 2003/10/18 18:41:26 david__schmidt -dnl Update to remain buildable on OS/2 - remove the failures -dnl due to missing unixisms -dnl -dnl Revision 1.68.2.16 2003/03/26 16:05:14 oes -dnl Marked as 0.0.0 UNRELEASED -dnl -dnl Revision 1.68.2.15 2003/03/26 00:25:00 oes -dnl Bump version for 3.0.2 -dnl -dnl Revision 1.68.2.14 2003/03/25 13:27:12 hal9 -dnl Manually apply Docbook/FreeBSD patch #708081 from a.go at tiscali.nl. -dnl -dnl Revision 1.68.2.13 2003/03/18 19:38:57 oes -dnl Set version info for 3.0.1 release -dnl -dnl Revision 1.68.2.12 2003/03/07 03:41:04 david__schmidt -dnl Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports. -dnl -dnl Revision 1.68.2.11 2003/03/06 15:22:37 oes -dnl Fixed minor shell syntax bug -dnl -dnl Revision 1.68.2.10 2003/01/08 16:39:41 oes -dnl Changing default to exclude FEATURE_IMAGE_DETECT_MSIE because of problem reports with recent IEs -dnl -dnl Revision 1.68.2.9 2002/12/13 23:47:45 hal9 -dnl Add openbsd $specialflags per gunner at styx2002.no-ip.org -dnl -dnl Revision 1.68.2.8 2002/11/27 12:55:26 oes -dnl Fixed broken handling of pre-set CFLAGS -dnl -dnl Revision 1.68.2.7 2002/10/25 02:44:22 hal9 -dnl Port of make install, etc from main trunk. Needs testing! Add Slackware -dnl support, and other related changes. Update related docs. -dnl -dnl Revision 1.68.2.6 2002/09/25 15:35:15 oes -dnl Marking as non-release -dnl -dnl Revision 1.68.2.5 2002/08/25 23:37:00 hal9 -dnl Getting ready for 3.0 release. -dnl -dnl Revision 1.68.2.4 2002/08/10 11:21:57 oes -dnl - Set Version to 2.9.20 (beta) -dnl - Add two AC_DEFINEs that indicate if the pcre*.h headers -dnl are located in a pcre/ subdir to the include path. -dnl -dnl Revision 1.68.2.3 2002/08/06 11:29:36 oes -dnl Fixed detection/inclusion of pcre.h, which is in a pcre subdir on RH -dnl -dnl Revision 1.68.2.2 2002/07/30 19:36:09 hal9 -dnl Bump version to 2.9.17. -dnl -dnl Revision 1.68.2.1 2002/07/26 15:21:12 oes -dnl Bumped version number for 2.9.16 freeze -dnl -dnl Revision 1.68 2002/05/25 16:54:54 jongfoster -dnl Detect if the compiler supports -pthread. -dnl Hopefully this will fix bug 560442. (I don't have a HP PA-RISC -dnl machine to test this!) -dnl -dnl Revision 1.67 2002/05/03 14:33:59 oes -dnl Generate doc/soucre/ldp.dsl -dnl -dnl Revision 1.66 2002/05/03 00:41:56 oes -dnl Set version to 2.9.15 to comply with new versioning scheme -dnl -dnl Revision 1.65 2002/04/25 19:13:57 morcego -dnl Removed RPM release number declaration on configure.in -dnl Changed makefile to use given value for RPM_PACKAGEV when on uploading -dnl targets (will produce an error, explaining who to do it, if no value -dnl if provided). -dnl -dnl Revision 1.64 2002/04/22 16:32:31 morcego -dnl configure.in, *.spec: Bumping release to 2 (2.9.14-2) -dnl -rh.spec: uid and gid are now macros -dnl -suse.spec: Changing the header Copyright to License (Copyright is -dnl deprecable) -dnl -dnl Revision 1.63 2002/04/11 11:00:21 oes -dnl Applied Moritz' fix for socklen_t on Solaris -dnl -dnl Revision 1.62 2002/04/11 10:09:20 oes -dnl Version 2.9.14 -dnl -dnl Revision 1.61 2002/04/10 18:14:45 morcego -dnl - (privoxy-rh.spec only) Relisting template files on the %%files section -dnl - (configure.in, privoxy-rh.spec) Bumped package release to 5 -dnl -dnl Revision 1.60 2002/04/09 16:38:49 oes -dnl Added detection of missing config.h.in -dnl -dnl Revision 1.59 2002/04/06 20:23:55 jongfoster -dnl Removing unnessacery tests (C++, ranlib) -dnl -dnl Revision 1.58 2002/04/04 20:49:20 swa -dnl attempt to consolidate the -dnl different dokbook versions. -dnl -dnl Revision 1.57 2002/04/04 00:36:36 gliptak -dnl always use pcre for matching -dnl -dnl Revision 1.56 2002/04/03 22:28:03 gliptak -dnl Removed references to gnu_regex -dnl -dnl Revision 1.55 2002/04/03 03:54:38 gliptak -dnl Checking pcre version -dnl -dnl Revision 1.54 2002/04/01 00:54:24 gliptak -dnl More changes needed around regex support. -dnl -dnl Revision 1.53 2002/03/29 20:09:01 swa -dnl al's patch -dnl -dnl Revision 1.52 2002/03/29 19:51:40 gliptak -dnl Correcting compile problem with Debian -dnl -dnl Revision 1.51 2002/03/28 20:43:00 swa -dnl set make correctly -dnl -dnl Revision 1.50 2002/03/27 03:03:45 hal9 -dnl Add test for man2html -dnl -dnl Revision 1.49 2002/03/27 02:19:52 david__schmidt -dnl More Mac OSX support: -dnl - Get rid of extraneous, noisy -pthread warnings -dnl - Define unix so we get oes' unix-tagged changes -dnl -dnl Revision 1.48 2002/03/26 22:29:54 swa -dnl we have a new homepage! -dnl -dnl Revision 1.47 2002/03/26 16:41:00 hal9 -dnl Upped RPM Release to 3 (need to build new RH packages) -dnl -dnl Revision 1.46 2002/03/24 18:55:06 jongfoster -dnl Making Docbook work under Windows -dnl -dnl Revision 1.45 2002/03/24 14:19:55 swa -dnl set rpm package release in configure.in. nowhere else. -dnl -dnl Revision 1.44 2002/03/24 13:25:43 swa -dnl name change related issues -dnl -dnl Revision 1.43 2002/03/24 12:56:21 swa -dnl name change related issues. -dnl -dnl Revision 1.42 2002/03/22 18:11:37 jongfoster -dnl Bumping version number to 2.9.12 -dnl -dnl Revision 1.41 2002/03/19 19:30:04 morcego -dnl - Fixing stylesheet checking on configure. If it is found, no further checks -dnl should be done -dnl -dnl - configure will now check for db2html or docbook2html (should work now -dnl on SuSe without the docbktls package) -dnl -dnl Revision 1.40 2002/03/09 14:33:30 oes -dnl Fixing the (harmless) AC_CHECK_FILE warnings -dnl -dnl Revision 1.39 2002/03/08 16:46:13 oes -dnl Added --enable-no-gifs -dnl -dnl Revision 1.38 2002/03/08 14:13:50 morcego -dnl Fixing configure, to remove a command not found error. -dnl -dnl Revision 1.37 2002/03/08 12:58:21 oes -dnl Tiny bugfix in AC_ARG_WITH(debug) -dnl -dnl Revision 1.36 2002/03/06 23:50:36 morcego -dnl Will not test for a text browser if we are not using docbook. -dnl -dnl Revision 1.35 2002/03/06 21:55:52 morcego -dnl New configure option: --with-docbook=(yes|no|directory) -dnl Preliminary new platform detection code included. Will work with the -dnl old one for now. No use just trowing it away -dnl -dnl Revision 1.34 2002/03/06 20:57:00 morcego -dnl Fixing detection of stylesheets on SuSe. -dnl -dnl Revision 1.33 2002/03/05 17:31:11 morcego -dnl Search for docbook.dsl. Should solve portability problems for SuSe. -dnl -dnl Revision 1.32 2002/03/05 14:07:43 morcego -dnl configure now detects rpm topdir, and change GNUmakefile acordingly -dnl (based on sugestion by Sarantis Paskalis) -dnl -dnl Revision 1.31 2002/03/05 13:43:28 morcego -dnl Checking for text browser, so redhat-dok can work. -dnl -dnl Revision 1.30 2002/03/04 17:58:01 oes -dnl Deleted _DEBUG and PID_FILE_PATH -dnl -dnl Revision 1.29 2002/02/28 14:20:53 oes -dnl Fixed detection of gethost*_r functions on Solaris -dnl -dnl Revision 1.28 2002/02/27 15:02:38 oes -dnl Incremented version number -dnl -dnl Revision 1.27 2002/01/10 12:35:18 oes -dnl Added cross-compile defaults to the AC_CHECK_SIZEOF macros -dnl to silence autoconf warnings. Numbers are for Intel/Linux. -dnl Is there a better way? -dnl -dnl Revision 1.26 2002/01/09 14:29:49 oes -dnl - Added AC_CHECK_FUNC tests for the availability of -dnl gethostbyname_r, gethostbyaddr_r, gmtime_r and -dnl localtime_r, as well as AC_TRY_COMPILE tests to -dnl determine their signatures. -dnl -dnl - Fixed a bug with the init of CFLAGS that was -dnl reported by barsnick -dnl -dnl Revision 1.25 2002/01/04 15:27:18 oes -dnl Changed quoting of CODE_STATUS for use in make -dnl -dnl Revision 1.24 2001/12/30 14:07:31 steudten -dnl - Add signal handling (unix) -dnl - Add SIGHUP handler (unix) -dnl - Add creation of pidfile (unix) -dnl - Add action 'top' in rc file (RH) -dnl - Add entry 'SIGNALS' to manpage -dnl - Add exit message to logfile (unix) -dnl -dnl Revision 1.23 2001/12/09 20:24:42 david__schmidt -dnl Change from "alpha" to "beta" in configure.in -dnl -dnl Revision 1.22 2001/12/01 11:24:01 jongfoster -dnl Renaming Makefile.in to GNUmakefile.in so that non-GNU versions of -dnl make break in a more obvious way. -dnl -dnl Revision 1.21 2001/11/30 21:35:54 jongfoster -dnl Bumping version number to 2.9.10 -dnl -dnl Revision 1.20 2001/10/23 21:24:09 jongfoster -dnl Support for FEATURE_CGI_EDIT_ACTIONS -dnl -dnl Revision 1.19 2001/10/07 15:33:14 oes -dnl Removed FEATURE_DENY_GZIP -dnl Bumped up version number -dnl -dnl Revision 1.18 2001/09/13 13:10:24 steudten -dnl -dnl PreWork for Debug Interface. -dnl Add new option "--with-debug" to enable debugging (flags aso.) -dnl -dnl Revision 1.17 2001/09/12 23:44:55 david__schmidt -dnl Mac OSX (Darwin) support added. -dnl -dnl Revision 1.16 2001/09/12 22:55:45 joergs -dnl AmigaOS support added. -dnl -dnl Revision 1.15 2001/09/12 17:28:59 david__schmidt -dnl -dnl OS/2 port: update autoconf'd support for the platform. -dnl -dnl Revision 1.14 2001/07/30 22:12:11 jongfoster -dnl Fixing Solaris build (I hope) and tidying up #defines: -dnl - All feature #defines are now of the form FEATURE_xxx -dnl - Permanently turned off WIN_GUI_EDIT -dnl - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS -dnl -dnl Revision 1.13 2001/07/29 17:09:17 jongfoster -dnl Major changes to build system in order to fix these bugs: -dnl - pthreads under Linux was broken - changed -lpthread to -pthread -dnl - Compiling in MinGW32 mode under CygWin now correctly detects -dnl which shared libraries are available -dnl - Solaris support (?) (Not tested under Solaris yet) -dnl -dnl Revision 1.12 2001/07/25 19:16:27 oes -dnl Bumping version number to 2.9.8 -dnl -dnl Revision 1.11 2001/07/21 18:00:07 jongfoster -dnl Bumping version number to 2.9.7 -dnl -dnl Revision 1.10 2001/07/18 17:25:04 oes -dnl Fixed a typo -dnl -dnl Revision 1.9 2001/07/15 19:45:13 jongfoster -dnl Added support for linking with POSIX threads library -dnl -dnl Revision 1.8 2001/07/15 17:54:29 jongfoster -dnl Renaming #define STATIC to STATIC_PCRE -dnl Adding new #define FEATURE_PTHREAD that will be used to enable -dnl POSIX threads support. -dnl -dnl Revision 1.7 2001/07/13 13:58:05 oes -dnl Completely reorganized the selection scheme for -dnl pcre, pcreposix, pcrs and gnu_regex: -dnl -dnl The presence of shared pcre, pcreposix or pcrs -dnl libraried is now autodetected. Additionally, the -dnl user can enforce using the built-in static variants -dnl by specifying --disable-dynamic-(pcre|pcrs). -dnl Care is taken to avoid that pcre is dyn, while pcreposix -dnl is static, if both are used and that pcrs is static if -dnl pcrs is. -dnl -dnl The choice between pcre, gnu or no regex for actionsfile -dnl URL matching is now via -dnl --(enable|disable)-regex-matching[=(gnu|pcre|no)] with the -dnl default being pcre. -dnl -dnl Revision 1.6 2001/06/29 21:56:40 oes -dnl Version -> 2.9.5 -dnl -dnl Revision 1.5 2001/06/29 13:26:27 oes -dnl Introduced #define CODE_STATUS -dnl -dnl Revision 1.4 2001/05/29 09:50:24 jongfoster -dnl Unified blocklist/imagelist/permissionslist. -dnl File format is still under discussion, but the internal changes -dnl are (mostly) done. -dnl -dnl Also modified interceptor behaviour: -dnl - We now intercept all URLs beginning with one of the following -dnl prefixes (and *only* these prefixes): -dnl * http://i.j.b/ -dnl * http://ijbswa.sf.net/config/ -dnl * http://ijbswa.sourceforge.net/config/ -dnl - New interceptors "home page" - go to http://i.j.b/ to see it. -dnl - Internal changes so that intercepted and fast redirect pages -dnl are not replaced with an image. -dnl - Interceptors now have the option to send a binary page direct -dnl to the client. (i.e. ijb-send-banner uses this) -dnl - Implemented show-url-info interceptor. (Which is why I needed -dnl the above interceptors changes - a typical URL is -dnl "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif". -dnl The previous mechanism would not have intercepted that, and -dnl if it had been intercepted then it then it would have replaced -dnl it with an image.) -dnl -dnl Revision 1.3 2001/05/22 18:46:04 oes -dnl -dnl - Enabled filtering banners by size rather than URL -dnl by adding patterns that replace all standard banner -dnl sizes with the "Junkbuster" gif to the re_filterfile -dnl -dnl - Enabled filtering WebBugs by providing a pattern -dnl which kills all 1x1 images -dnl -dnl - Added support for PCRE_UNGREEDY behaviour to pcrs, -dnl which is selected by the (nonstandard and therefore -dnl capital) letter 'U' in the option string. -dnl It causes the quantifiers to be ungreedy by default. -dnl Appending a ? turns back to greedy (!). -dnl -dnl - Added a new interceptor ijb-send-banner, which -dnl sends back the "Junkbuster" gif. Without imagelist or -dnl MSIE detection support, or if tinygif = 1, or the -dnl URL isn't recognized as an imageurl, a lame HTML -dnl explanation is sent instead. -dnl -dnl - Added new feature, which permits blocking remote -dnl script redirects and firing back a local redirect -dnl to the browser. -dnl The feature is conditionally compiled, i.e. it -dnl can be disabled with --disable-fast-redirects, -dnl plus it must be activated by a "fast-redirects" -dnl line in the config file, has its own log level -dnl and of course wants to be displayed by show-proxy-args -dnl Note: Boy, all the #ifdefs in 1001 locations and -dnl all the fumbling with configure.in and acconfig.h -dnl were *way* more work than the feature itself :-( -dnl -dnl - Because a generic redirect template was needed for -dnl this, tinygif = 3 now uses the same. -dnl -dnl - Moved GIFs, and other static HTTP response templates -dnl to project.h -dnl -dnl - Some minor fixes -dnl -dnl - Removed some >400 CRs again (Jon, you really worked -dnl a lot! ;-) -dnl -dnl Revision 1.2 2001/05/20 01:21:20 jongfoster -dnl Version 2.9.4 checkin. -dnl - Merged popupfile and cookiefile, and added control over PCRS -dnl filtering, in new "permissionsfile". -dnl - Implemented LOG_LEVEL_FATAL, so that if there is a configuration -dnl file error you now get a message box (in the Win32 GUI) rather -dnl than the program exiting with no explanation. -dnl - Made killpopup use the PCRS MIME-type checking and HTTP-header -dnl skipping. -dnl - Removed tabs from "config" -dnl - Moved duplicated url parsing code in "loaders.c" to a new funcition. -dnl - Bumped up version number. -dnl -dnl Revision 1.1.1.1 2001/05/15 13:58:50 oes -dnl Initial import of version 2.9.3 source tree -dnl -dnl - - -dnl ================================================================= -dnl AutoConf Initialization -dnl ================================================================= - -AC_REVISION($Revision: 1.126 $) -AC_INIT(jcc.c) - -if test ! -f config.h.in; then - echo "You need to run autoheader first. " - echo -n "Shall I do this for you now? (y/n) " - read answer - if test "$answer" != "y"; then - exit 1 - else - autoheader - fi -fi - -AC_CONFIG_HEADER([config.h]) -AC_CANONICAL_HOST - -dodk=auto -DKPREFIX=none -AC_ARG_WITH(docbook, dnl - --with-docbook=[[yes|no|directory]] - Enable docbook documentation creation - (default = yes, for gnu and linux),[dnl -case "$with_docbook" in -yes) dodk=yes;; -no) dodk=no;; -*) - dodk=yes - DKPREFIX=$withval - ;; -esac -]) -DB2HTML=false -AC_ARG_WITH(db2html, dnl - --with-db2html=<path/executable> - Set the location of the docbook to html converter - (default = search),[dnl -DB2HTML=$withval -]) - -dnl ================================================================= -dnl Application version number -dnl ================================================================= - -VERSION_MAJOR=3 -VERSION_MINOR=0 -VERSION_POINT=12 -CODE_STATUS="stable" - -dnl CODE_STATUS can be "alpha", "beta", or "stable", and will be -dnl used for CGI output. Set version to 0.0.0 and status to "UNRELEASED" -dnl whenever CVS in a stable branch differs from the last release. - -dnl ================================================================= -dnl Substitute the version numbers -dnl ================================================================= - -AC_SUBST(VERSION_MAJOR) -AC_SUBST(VERSION_MINOR) -AC_SUBST(VERSION_POINT) -AC_SUBST(CODE_STATUS) - -dnl -AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR}) -AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR}) -AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT}) -AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}") -AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}") - -dnl ================================================================= -dnl Checks for programs needed to build. -dnl ================================================================= - -dnl Keep AC_PROG_CC from setting its own defaults: -if test "X$CFLAGS" = "X"; then - CFLAGS=" " -fi - -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_AWK - -AC_CHECK_PROG(GDB,gdb,yes,no) -AC_PATH_PROG(BGROUPS,groups,no,/bin:/usr/bin:/usr/local/bin) -AC_PATH_PROG(ID,id,no,/bin:/usr/bin:/usr/local/bin) -AC_SUBST(ID) -AC_SUBST(BGROUPS) - -dnl ================================================================= -dnl debug, gcc and gdb support -dnl ================================================================= - -AC_ARG_WITH(debug, - [ --with-debug Enable debug mode], - [ - if test "x$withval" != "xno" ; then - if test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - if test "$GDB"; then - CFLAGS="$CFLAGS -ggdb" - else - CFLAGS="$CFLAGS -g" - fi - CFLAGS="$CFLAGS -Wshadow -Wconversion" - else - CFLAGS="$CFLAGS -g" - fi - fi - fi - ], - [ - if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above) - if test "$GCC" = yes; then - CFLAGS="-O2" - fi - fi - ] -) - -dnl ================================================================= -dnl Check for user and group validity -dnl ================================================================= - - -if test "$EMXOS2" = yes; then - echo "Skipping user and group validity stuff."; - -else - - $ID privoxy >/dev/null 2>/dev/null - if test $? -ne 0 ; then - AC_MSG_WARN(There is no user 'privoxy' on this system) - fi - AC_MSG_CHECKING([for user]) - AC_ARG_WITH(user, - [ --with-user=privoxy Set user under which privoxy will run], - [ - if test "x$withval" != "xyes"; then - if test $ID = no ; then - AC_MSG_ERROR(There is no 'id' program on this system) - else - AC_MSG_RESULT($with_user) - $ID $with_user 2>/dev/null >/dev/null - if test $? -eq 0 ; then - USER=$with_user; - else - AC_MSG_ERROR(There is no user '$with_user' on this system) - fi - fi - else - AC_MSG_ERROR(We need a user if you give me this parameter) - fi - ], - [ - if test $ID = no ; then - AC_MSG_ERROR(There is no 'id' programm on this system) - else - AC_MSG_RESULT(none specified) - USER=$with_user - fi - ] - ) - AC_SUBST(USER) - - AC_MSG_CHECKING([for group]) - AC_ARG_WITH(group, - [ --with-group=privoxy Set group for privoxy], - [ - if test "x$withval" != "xyes"; then - if test $BGROUPS = no ; then - AC_MSG_ERROR(There is no 'groups' program on this system) - else - AC_MSG_RESULT($with_group) - $BGROUPS $USER >/dev/null - if test $? -eq 0 ; then - # FIXME: this fails if valid group, but not first group - # listed. - if test "$with_group" != "`$BGROUPS $USER | sed 's/.*: //' 2>/dev/null |$AWK '{print $1}'`" ; then - AC_MSG_ERROR(The given value '$withval' does not match group entry) - else - GROUP=$with_group; - fi - else - AC_MSG_ERROR(There is no group entry for user '$USER') - fi - fi - else - AC_MSG_ERROR(We need a group if you give me this parameter) - fi - ], - [ - if test $BGROUPS = no ; then - AC_MSG_ERROR(There is no 'groups' programm on this system) - else - AC_MSG_RESULT(none specified) - GROUP=$with_group; - fi - ] - ) - AC_SUBST(GROUP) - -fi - -dnl ================================================================= -dnl additional gcc flags -dnl ================================================================= -dnl -if test "$GCC"; then - if test "$host" != "powerpc-unknown-amigaos"; then - CFLAGS="-pipe $CFLAGS" - fi -fi - - -dnl ================================================================= -dnl Build type -dnl ================================================================= -dnl -dnl Must do this first. -dnl -dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler -dnl into Cygwin or MinGW32 modes. Depending on the mode selected, -dnl the compiler will use completely different sets of library -dnl and include files. -dnl -dnl ================================================================= - -AC_MINGW32 -AC_CYGWIN - -if test "$MINGW32" = "yes"; then - target_type=mingw -else - if test "$CYGWIN" = "yes"; then - target_type=cygwin - else - target_type=unix - fi -fi - -if test $dodk = auto; then - dodk=no - if test $target_type = unix; then - case "$host_os" in - linux* | gnu*) - dodk=yes - ;; - esac - fi -fi - -dnl Decide what to do based on target_type -dnl Note: PTHREAD_LIB is always set, even if pthread is disabled. -dnl This is because we don't know yet whether pthread is enabled. - -AC_ARG_ENABLE(mingw32, -[ --enable-mingw32 Use mingw32 for a Windows GUI], -[if test $enableval = yes; then - target_type=mingw -fi]) - -if test $target_type = mingw; then - WIN_ONLY= - SPECIAL_CFLAGS="-mwindows -mno-cygwin" - PTHREAD_LIB=-lpthreadGC - echo "Using mingw32 (Win32 GUI)" -else - WIN_ONLY=# - if test $target_type = cygwin; then - SPECIAL_CFLAGS="-mno-win32" - PTHREAD_LIB= - echo "Using Cygnus (Win32 command line)" - else - SPECIAL_CFLAGS= -dnl PTHREAD_LIB=-lpthread - fi -fi -AC_SUBST(WIN_ONLY) - -dnl Checking which text html browser we have avaliable -if test $dodk != no; then - AC_CHECK_PROGS(WDUMP,w3m lynx links,false) - if test "$WDUMP" = false; then - AC_MSG_WARN(You need some kind of text browser to build documentation (w3m, lynx and links are supported)) - fi - if test $DB2HTML = false; then - dnl We need to clean the variable, otherwise AC_CHECK_PROGS - dnl will fail - DB2HTML="" - AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false) - fi -fi -AC_SUBST(WDUMP) -AC_SUBST(DB2HTML) - -dnl If we use rpm, we need to check where %_topdir is -AC_CHECK_PROGS(RPMBIN,rpm,false) -if test $RPMBIN != false; then - RPM_BASE=`rpm --eval "%{_topdir}"` - if test "$RPM_BASE" = ""; then - RPM_BASE=/usr/src/redhat - fi -fi -AC_SUBST(RPM_BASE) - -dnl Check for jade, so we can build the documentation -AC_CHECK_PROGS(JADEBIN,jade openjade,false) -AC_SUBST(JADEBIN) - -dnl Check for man2html for docs. -AC_CHECK_PROGS(MAN2HTML,man2html,false) -AC_SUBST(MAN2HTML) - -dnl Set doc status flag for conditional content inclusions -DOC_STATUS=p-not-stable -if test $CODE_STATUS = stable; then - DOC_STATUS="p-stable" -fi -AC_SUBST(DOC_STATUS) - -dnl Checking for the docbook.dsl stylesheet file -dnl It is still not portable (directory slash) -JADECAT="" -if test $dodk = yes; then - if test $DKPREFIX = none; then - for i in /usr/share/sgml/docbook/dsssl-stylesheets \ - /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \ - /usr/local/share/sgml/docbook/dsssl/modular \ - /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \ - ; do -dnl echo -n does not fly with /bin/sh. -dnl echo -n "checking for $i/html/docbook.dsl..." - AC_MSG_CHECKING([for $i]) - if test -f $i/html/docbook.dsl; then - echo "yes" - DKPREFIX=$i - break - else - echo "no" - fi - done -# where are the catalogs? - for i in /usr/share/sgml/CATALOG.docbk30 \ - /usr/share/sgml/CATALOG.docbk31 \ - /usr/share/sgml/CATALOG.docbk31 \ - /usr/local/share/sgml/docbook/3.0/docbook.cat \ - /usr/local/share/sgml/docbook/3.1/docbook.cat \ - /usr/share/sgml/docbook/dtd/3.1/docbook.cat \ - ; do -dnl echo -n "checking for $i..." - AC_MSG_CHECKING([for $i]) - if test -f $i; then - echo "yes" - JADECAT="$JADECAT -c $i" - else - echo "no" - fi - done - fi -fi -AC_SUBST(JADECAT) -AC_SUBST(DKPREFIX) - -dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS -old_CFLAGS_nospecial=$CFLAGS -CFLAGS="$CFLAGS $SPECIAL_CFLAGS" - -# Hack to force AutoConf to use the CFLAGS we just set -dnl Warning: This may break with a future version of Autoconf -dnl Tested with autoconf 2.13 -ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - - -dnl ================================================================= -dnl Thread support -dnl ================================================================= - -AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no]) - -AC_ARG_ENABLE(pthread, -[ --disable-pthread Don't use POSIX threads (pthreads)], -[if test $enableval = no; then - # Disable pthreads - if test $have_pthread = yes; then - AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.]) - AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.]) - fi - have_pthread=no -fi]) - -if test $have_pthread = yes; then - PTHREAD_ONLY= - AC_DEFINE(FEATURE_PTHREAD) - echo Using POSIX threads - if test "$GCC" = "yes"; then - # Set a GCC specific switch: - if test "$target_type" = "unix"; then - ac_jgf_save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -pthread" - AC_TRY_LINK([#include <pthread.h>], - [void *p = pthread_create;], - [ - # This compiler switch makes GCC on Linux thread-safe - # However, it's not supported on most other OS. - PTHREAD_LIB= - SPECIAL_CFLAGS="-pthread" - ]) - CFLAGS=$ac_jgf_save_CFLAGS - fi - fi -else - PTHREAD_ONLY=# - echo Using native threads -fi - -AC_SUBST(PTHREAD_ONLY) - -dnl ================================================================= -dnl Support for thread-safe versions of gethostbyaddr, gethostbyname, -dnl gmtime and localtime -dnl ================================================================= - -dnl Next line needed to find the gethost*_r functions on Solaris -AC_CHECK_LIB(nsl, gethostbyname) - -AC_CHECK_FUNC(gethostbyaddr_r, [ - AC_MSG_CHECKING([signature of gethostbyaddr_r]) - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent *h, *hp; - char *a, *b; - int l, bl, t, e; - (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS) - AC_MSG_RESULT([8 args]) - ], [ - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent *h; - char *a, *b; - int l, bl, t, e; - (void) gethostbyaddr_r(a, l, t, h, b, bl, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS) - AC_MSG_RESULT([7 args]) - ], [ - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent_data *d; - struct hostent *h; - char a, - int l, t; - (void) gethostbyaddr_r(a, l, t, h, d) - ], [ - AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS) - AC_MSG_RESULT([5 args]) - ], [ - AC_MSG_RESULT(unrecognised) - ]) - ]) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(gethostbyname_r, [ - AC_MSG_CHECKING([signature of gethostbyname_r]) - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent *h, *r; - char *n, *b; - int bl, e; - (void) gethostbyname_r(n, h, b, bl, &r, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS) - AC_MSG_RESULT([6 args]) - ], [ - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent *h; - char *n, *b; - int bl, e; - (void) gethostbyname_r(n, h, b, bl, &e) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS) - AC_MSG_RESULT([5 args]) - ], [ - AC_TRY_COMPILE([ -# include <netdb.h> - ], [ - struct hostent_data *d; - struct hostent *h; - char *n, - (void) gethostbyname_r(n, h, d) - ], [ - AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS) - AC_MSG_RESULT([3 args]) - ], [ - AC_MSG_RESULT(unrecognised) - ]) - ]) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(gmtime_r, [ - AC_MSG_CHECKING([signature of gmtime_r]) - AC_TRY_COMPILE([ -# include <time.h> - ], [ - struct time *t; - struct tm *tm; - (void) gmtime_r(t, tm) - ], [ - AC_MSG_RESULT(ok) - AC_DEFINE(HAVE_GMTIME_R) - ], [ - AC_MSG_RESULT(unrecognised) - ]) -], [ - AC_MSG_RESULT(no) -]) - -AC_CHECK_FUNC(localtime_r, [ - AC_MSG_CHECKING([signature of localtime_r]) - AC_TRY_COMPILE([ -# include <time.h> - ], [ - struct time *t; - struct tm *tm; - (void) localtime_r(t, tm) - ], [ - AC_MSG_RESULT(ok) - AC_DEFINE(HAVE_LOCALTIME_R) - ], [ - AC_MSG_RESULT(unrecognised) - ]) -], [ - AC_MSG_RESULT(no) -]) - -dnl ================================================================= -dnl Solaris specific -dnl FIXME: Not tested on Solaris yet... -dnl ISFIXED: Have tested it on Solaris, but there are other ways to -dnl make these checks generic, e.g.: -dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt)) -dnl (Moritz Barsnick moritz@barsnick.net) -dnl ================================================================= - - -SOCKET_LIB= - -case "$host" in -*-solaris*) SOCKET_LIB="-lsocket -lnsl" - AC_DEFINE(__EXTENSIONS__) - if test "$GCC" = "yes"; then - # Set a GCC specific switch: - # This compiler switch makes Solaris thread-safe - PTHREAD_LIB= - SPECIAL_CFLAGS="-pthreads" - else - # What do we do without GCC? Guess this: - SPECIAL_CFLAGS="-D_REENTRANT" - fi -;; -esac - -AC_SUBST(SOCKET_LIB) - -dnl ================================================================= -dnl Solaris problem, and others perhaps (socklen_t is undefined) -dnl ================================================================= - -AC_MSG_CHECKING([for socklen_t]) -AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - AC_DEFINE(socklen_t,int, - [ Define to 'int' if <sys/socket.h> doesn't have it. ])) - - -dnl ================================================================= -dnl OS/2 specific -dnl ================================================================= - -case "$host" in -*-os2-emx*) SOCKET_LIB=-lsocket -;; -esac - -AC_SUBST(SOCKET_LIB) - -dnl ================================================================= -dnl Mac OSX specific -dnl ================================================================= - -case "$host" in -*-apple-darwin*) SPECIAL_CFLAGS="-Dunix" -;; -esac - -dnl ================================================================= -dnl OpenBSD specific -dnl ================================================================= - -case "$host" in -*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix" -;; -esac - -dnl ================================================================= -dnl AmigaOS specific -dnl ================================================================= - -AMIGAOS_ONLY=# - -case "$host" in -*-amigaos) AMIGAOS_ONLY= -;; -esac - -AC_SUBST(AMIGAOS_ONLY) - -dnl ================================================================= -dnl Check for standard compiler stuff -dnl ================================================================= - -AC_EXEEXT -AC_OBJEXT -AC_HEADER_STDC -AC_HEADER_DIRENT -AC_C_CONST -AC_TYPE_SIZE_T -AC_TYPE_PID_T -AC_HEADER_TIME -AC_STRUCT_TM -AC_CHECK_SIZEOF(int, 4) -AC_CHECK_SIZEOF(char *, 4) -AC_CHECK_SIZEOF(long, 4) -AC_CHECK_SIZEOF(long long, 8) -AC_CHECK_SIZEOF(size_t, 4) - -dnl Checks for header files. -dnl AC_HEADER_SYS_WAIT -dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/time.h unistd.h) -AC_CHECK_HEADERS([OS.h arpa/inet.h errno.h fcntl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h sys/timeb.h sys/wait.h unistd.h]) - -dnl Checks for library functions. -dnl AC_TYPE_SIGNAL -dnl AC_CHECK_FUNC(strstr) -dnl bcopy and memmove are for PCRE -AC_CHECK_FUNCS([strerror bcopy memmove]) -AC_PROG_GCC_TRADITIONAL -dnl uncommenting does not work for swa. suse linux -dnl AC_FUNC_MALLOC -AC_FUNC_SETPGRP -AC_TYPE_SIGNAL -dnl uncommenting does not work for swa. suse linux -dnl AC_FUNC_STAT -AC_CHECK_FUNCS([access atexit getcwd gethostbyaddr gethostbyaddr_r gethostbyname gethostbyname_r gettimeofday inet_ntoa localtime_r memchr memmove memset poll putenv random regcomp select setlocale snprintf socket strchr strdup strerror strftime strlcat strlcpy strptime strstr strtoul timegm tzset]) - - -dnl ================================================================= -dnl Checks for libraries. -dnl ================================================================= -dnl Note: Some systems may have the library but not the system header -dnl file, so we must check for both. -dnl Also check for correct version -AC_CHECK_LIB(pcre, pcre_compile, [ - AC_CHECK_HEADER(pcre.h, [ - AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) - ], [ - AC_CHECK_HEADER(pcre/pcre.h, [ - AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) - ], [have_pcre=no]) - ]) -], [have_pcre=no]) - -AC_CHECK_LIB(pcreposix, regcomp, [ - AC_CHECK_HEADER(pcreposix.h, [ - AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]) - ], [ - AC_CHECK_HEADER(pcre/pcreposix.h, [ - AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)]) - ], [have_pcreposix=no]) - ]) -], [have_pcreposix=no], -lpcre) - -dnl ================================================================ -dnl libpcrs is temporarily disabled. -dnl -dnl Privoxy's own pcrs version fixes some problems that -dnl are present in libpcrs 0.3, the last pcrs release we -dnl know of, and as libpcrs seems to be currently unmaintained -dnl we can't send these fixes upstream. -dnl ================================================================ -dnl -dnl AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre) - -dnl ================================================================= -dnl Always defined -dnl ================================================================= - -AC_DEFINE(__MT__) - -dnl ================================================================= -dnl Features -dnl ================================================================= - -AC_ARG_ENABLE(toggle, -[ --disable-toggle Don't support temporary disable], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_TOGGLE) -fi],AC_DEFINE(FEATURE_TOGGLE)) - -AC_ARG_ENABLE(force, -[ --disable-force Don't allow single-page disable], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_FORCE_LOAD) -fi],AC_DEFINE(FEATURE_FORCE_LOAD)) - -AC_ARG_ENABLE(fast-redirects, -[ --disable-fast-redirects Don't support fast redirects], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_FAST_REDIRECTS) -fi], AC_DEFINE(FEATURE_FAST_REDIRECTS)) - -AC_ARG_ENABLE(stats, -[ --disable-stats Don't keep statistics], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_STATISTICS) -fi],AC_DEFINE(FEATURE_STATISTICS)) - -AC_ARG_ENABLE(ie-images, -[ --enable-ie-images Enable a quick but not always reliable auto-detect whether requests from - MS Internet Explorer are for an image or not.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_IMAGE_DETECT_MSIE) -fi],) - -AC_ARG_ENABLE(image-blocking, -[ --disable-image-blocking Don't try to figure out whether a request is - for an image or HTML - assume HTML.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_IMAGE_BLOCKING) -fi], -AC_DEFINE(FEATURE_IMAGE_BLOCKING)) - -AC_ARG_ENABLE(acl-files, -[ --disable-acl-files Prevents the use of ACL files to control access to - Privoxy by IP address.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_ACL) -fi], -AC_DEFINE(FEATURE_ACL)) - -AC_ARG_ENABLE(trust-files, -[ --disable-trust-files Prevents the use of trust files.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_TRUST) -fi], -AC_DEFINE(FEATURE_TRUST)) - -AC_ARG_ENABLE(editor, -[ --disable-editor Prevents the use of the web-based actions file - editor and web-based temporary disable setting.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS) -fi], -AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)) - -AC_ARG_ENABLE(no-gifs, -[ --enable-no-gifs Use politically correct PNG format instead of GIF - for built-in images. May not work with all browsers.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_NO_GIFS) -fi]) - -AC_ARG_ENABLE(graceful-termination, -[ --enable-graceful-termination Allow to shutdown Privoxy through the webinterface.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_GRACEFUL_TERMINATION) -fi]) - -AC_ARG_ENABLE(extended-host-patterns, -[ --enable-extended-host-patterns Allow extended regular expressions in host patterns.], -[if test $enableval = yes; then - AC_DEFINE(FEATURE_EXTENDED_HOST_PATTERNS) -fi]) - -dnl pcre/pcrs is needed for CGI anyway, so -dnl the choice is only between static and -dnl dynamic: - -AC_ARG_ENABLE(dynamic-pcre, -[ --disable-dynamic-pcre Use the built-in, static pcre, even if libpcre is available], -[ if test $enableval = "no"; then have_pcre=no; fi ]) - -dnl ================================================= -dnl libpcrs is temporarily disabled, -dnl see comment above for the reason. -dnl ================================================= -dnl AC_ARG_ENABLE(dynamic-pcrs, -dnl [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if libpcrs is available], -dnl [ if test $enableval = "no"; then have_pcrs=no; fi ]) - - -dnl ==================================================== -dnl This check is incomplete. For mingw32 zlib is found -dnl by configure, but not necessarily by the compiler. -dnl ==================================================== -AC_ARG_ENABLE(zlib, -[ --disable-zlib Don't use zlib to decompress data before filtering.], -[enableval2=$enableval], -[enableval2=yes]) -if test $enableval2 = yes; then - AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"]) - if test $have_zlib = "yes"; then - LIBS="$LIBS -lz" - AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use compression through the zlib library.]) - else - AC_MSG_WARN([No zlib found. - Privoxy will not be able to filter compressed content. - This may become a fatal error in the future.]) - fi -fi - - -# If we have libpcre and either we also have pcreposix or -# we don't need pcreposix, then link pcre dynamically; else -# build it and link statically -# -if test $have_pcre = "yes"; then - echo "using libpcre" - pcre_dyn=yes - STATIC_PCRE_ONLY=# - LIBS="$LIBS -lpcre -lpcreposix" -else - AC_MSG_WARN([You are using the static PCRE code which is scheduled for removal, for details see: - https://sourceforge.net/mailarchive/message.php?msg_id=20080511195555.2dc6cf...]) - pcre_dyn=no - AC_DEFINE(STATIC_PCRE) - STATIC_PCRE_ONLY= -fi - -if test $have_pthread = "yes" -o $target_type = "mingw"; then - echo Enabling keep-alive support for outgoing connections. - AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE) -fi - -dnl ================================================= -dnl libpcrs is temporarily disabled, -dnl see comment above for the reason. -dnl ================================================= -dnl # If we have libpcrs and pcre is linked dynamically -dnl # then also link pcrs dynamically, else build and link -dnl # pcrs statically -dnl -dnl if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then -dnl echo "using libpcrs" -dnl STATIC_PCRS_ONLY=# -dnl LIBS="$LIBS -lpcrs" -dnl else -dnl echo "using built-in static pcrs" - AC_DEFINE(STATIC_PCRS) - STATIC_PCRS_ONLY= -dnl fi - -AC_SUBST(STATIC_PCRE_ONLY) -AC_SUBST(STATIC_PCRS_ONLY) - -dnl ================================================================= -dnl Final cleanup and output -dnl ================================================================= - -dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it seperately -dnl in the Makefile -CFLAGS=$old_CFLAGS_nospecial -AC_SUBST(SPECIAL_CFLAGS) - -AC_SUBST(PTHREAD_LIB) - -AC_OUTPUT(GNUmakefile doc/source/ldp.dsl) diff --git a/external/privoxy.tar.gz b/external/privoxy.tar.gz deleted file mode 100644 index 3439878..0000000 Binary files a/external/privoxy.tar.gz and /dev/null differ diff --git a/res/layout/layout_about.xml b/res/layout/layout_about.xml index ca765ff..82f3079 100644 --- a/res/layout/layout_about.xml +++ b/res/layout/layout_about.xml @@ -94,7 +94,7 @@ android:textColorLink="#ffffff" android:paddingLeft="15px" android:textColor="#ffffff" /> - <TextView android:text="@string/privoxy_version" + <TextView android:text="@string/polipo_version" android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="web" diff --git a/res/values/strings.xml b/res/values/strings.xml index 7a345d5..3b587bc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -58,7 +58,7 @@ <string name="btn_cancel">Cancel</string> <!--Welcome Wizard strings (DJH)--> <string name="wizard_details">Some Orbot Details</string> - <string name="wizard_details_msg">Orbot is an open-source application that contains Tor, LibEvent and Privoxy. It provides a local HTTP proxy (8118) and a SOCKS proxy (9050) into the Tor network. Orbot also has the ability, on rooted device, to send all internet traffic through Tor.</string> + <string name="wizard_details_msg">Orbot is an open-source application that contains Tor, LibEvent and Polipo. It provides a local HTTP proxy (8118) and a SOCKS proxy (9050) into the Tor network. Orbot also has the ability, on rooted device, to send all internet traffic through Tor.</string> <string name="wizard_permissions_root">Permission Granted</string> <string name="wizard_permissions_stock">Orbot Permissions</string> <string name="wizard_premissions_msg_root">Excellent! We've detected that you have root permissions enabled for Orbot. We will use this power wisely.</string> @@ -162,7 +162,7 @@ <string name="warning_error_starting_transparent_proxying_">WARNING: error starting transparent proxying!</string> <string name="transproxy_rules_cleared">TransProxy rules cleared</string> <string name="couldn_t_start_tor_process_">Couldn't start Tor process: </string> - <string name="privoxy_is_running_on_port_">Privoxy is running on port: </string> + <string name="privoxy_is_running_on_port_">Polipo is running on port: </string> <string name="setting_up_port_based_transparent_proxying_">Setting up port-based transparent proxying…</string> <string name="bridge_error">Bridge Error</string> <string name="bridge_requires_ip">In order to use the bridge feature, you must enter at least one bridge IP address.</string> @@ -212,7 +212,7 @@ <string name="third_party_software">3rd-Party-Software: </string> <string name="tor_version">Tor v0.2.4.21: https://www.torproject.org</string> <string name="libevent_version">LibEvent v2.0.9: http://www.monkey.org/~provos/libevent/</string> - <string name="privoxy_version">Privoxy v3.0.12: http://www.privoxy.org</string> + <string name="polipo_version">Polipo v1.1.9: https://github.com/jech/polipo</string> <string name="iptables_version">IPtables v1.4.21: http://www.netfilter.org</string> <string name="openssl_version">OpenSSL v1.0.1g: http://www.openssl.org</string> <string name="hidden_service_request">An app wants to open hidden server port %S to the Tor network. This is safe if you trust the app.</string> diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java index 1b844ca..2744a55 100644 --- a/src/org/torproject/android/service/TorResourceInstaller.java +++ b/src/org/torproject/android/service/TorResourceInstaller.java @@ -87,8 +87,8 @@ public class TorResourceInstaller implements TorServiceConstants { shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is, outFile, false, false);
- is = context.getResources().openRawResource(R.raw.privoxy_config); - outFile = new File(installFolder, PRIVOXYCONFIG_ASSET_KEY); + is = context.getResources().openRawResource(R.raw.torpolipo); + outFile = new File(installFolder, POLIPOCONFIG_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, false); @@ -97,8 +97,8 @@ public class TorResourceInstaller implements TorServiceConstants { shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); - is = context.getResources().openRawResource(R.raw.privoxy); - outFile = new File(installFolder, PRIVOXY_ASSET_KEY); + is = context.getResources().openRawResource(R.raw.polipo); + outFile = new File(installFolder, POLIPO_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index 3bb0bc6..5264370 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -85,7 +85,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst private File appCacheHome;
private File fileTor; - private File filePrivoxy; + private File filePolipo; private File fileObfsclient; private File fileXtables;
@@ -483,10 +483,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst shell.add(killCommand); }*/ - while ((procId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath())) != -1) + while ((procId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath())) != -1) { - logNotice("Found Privoxy PID=" + procId + " - killing now..."); + logNotice("Found Polipo PID=" + procId + " - killing now...");
SimpleCommand killCommand = new SimpleCommand("toolbox kill " + procId); shell.add(killCommand); @@ -530,7 +530,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst fileTor= new File(appBinHome, TOR_ASSET_KEY); - filePrivoxy = new File(appBinHome, PRIVOXY_ASSET_KEY); + filePolipo = new File(appBinHome, POLIPO_ASSET_KEY); fileObfsclient = new File(appBinHome, OBFSCLIENT_ASSET_KEY); @@ -625,7 +625,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst } enableBinExec(fileTor); - enableBinExec(filePrivoxy); + enableBinExec(filePolipo); enableBinExec(fileObfsclient); enableBinExec(fileXtables); @@ -637,7 +637,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst sendCallbackStatusMessage(getString(R.string.status_starting_up)); runTorShellCmd(); - runPrivoxyShellCmd(); + runPolipoShellCmd(); if (mHasRoot && mEnableTransparentProxy) enableTransparentProxy(mTransProxyAll, mTransProxyTethering); @@ -796,12 +796,12 @@ public class TorService extends Service implements TorServiceConstants, TorConst } }
- private void runPrivoxyShellCmd () throws Exception + private void runPolipoShellCmd () throws Exception { - logNotice( "Starting privoxy process"); + logNotice( "Starting polipo process"); - int privoxyProcId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath()); + int polipoProcId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath());
StringBuilder log = null; @@ -809,21 +809,21 @@ public class TorService extends Service implements TorServiceConstants, TorConst Shell shell = Shell.startShell(); - if (privoxyProcId == -1) + if (polipoProcId == -1) { log = new StringBuilder(); - String privoxyConfigPath = new File(appBinHome, PRIVOXYCONFIG_ASSET_KEY).getAbsolutePath(); - SimpleCommand cmdPrivoxy = new SimpleCommand(filePrivoxy.getAbsolutePath() + " " + privoxyConfigPath + " &"); + String polipoConfigPath = new File(appBinHome, POLIPOCONFIG_ASSET_KEY).getAbsolutePath(); + SimpleCommand cmdPolipo = new SimpleCommand(filePolipo.getAbsolutePath() + " -c " + polipoConfigPath + " &"); - shell.add(cmdPrivoxy); + shell.add(cmdPolipo); //wait one second to make sure it has started up Thread.sleep(1000); - while ((privoxyProcId = TorServiceUtils.findProcessId(filePrivoxy.getAbsolutePath())) == -1 && attempts < MAX_START_TRIES) + while ((polipoProcId = TorServiceUtils.findProcessId(filePolipo.getAbsolutePath())) == -1 && attempts < MAX_START_TRIES) { - logNotice("Couldn't find Privoxy process... retrying...\n" + log); + logNotice("Couldn't find Polipo process... retrying...\n" + log); Thread.sleep(3000); attempts++; } @@ -833,7 +833,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst sendCallbackLogMessage(getString(R.string.privoxy_is_running_on_port_) + PORT_HTTP); - logNotice("Privoxy process id=" + privoxyProcId); + logNotice("Polipo process id=" + polipoProcId); shell.close(); @@ -1713,7 +1713,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (obfsBridges) { - bridgeCfgKey = bridgeCfgKey + " obfs2"; + bridgeCfgKey = bridgeCfgKey + " obfsclient"; }
StringTokenizer st = new StringTokenizer(bridgeList,bridgeDelim); @@ -1726,7 +1726,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
if (obfsBridges) { - mBinder.updateConfiguration("ClientTransportPlugin","obfsclient exec " + fileObfsclient.getAbsolutePath() + " --managed", false); + mBinder.updateConfiguration("ClientTransportPlugin","obfsclient exec " + fileObfsclient.getAbsolutePath(), false); }
mBinder.updateConfiguration("UpdateBridgesFromAuthority", "0", false); diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index 9dcd972..2fe9ff8 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -21,10 +21,10 @@ public interface TorServiceConstants { public final static String TOR_CONTROL_COOKIE = "control_auth_cookie"; //privoxy - public final static String PRIVOXY_ASSET_KEY = "privoxy"; + public final static String POLIPO_ASSET_KEY = "polipo"; //privoxy.config - public final static String PRIVOXYCONFIG_ASSET_KEY = "privoxy.config"; + public final static String POLIPOCONFIG_ASSET_KEY = "torpolipo.conf"; //geoip data file asset key public final static String GEOIP_ASSET_KEY = "geoip";
tor-commits@lists.torproject.org