Robert James Kaes 0a8e4e4d8d Added reverse proxy support from Kim Holviala. His comments regarding
this addition follow:

  The patch implements a simple reverse proxy (with one funky extra
  feature). It has all the regular features: mapping remote servers to local
  namespace (ReversePath), disabling forward proxying (ReverseOnly) and HTTP
  redirect rewriting (ReverseBaseURL).

  The funky feature is this: You map Google to /google/ and the Google front
  page opens up fine. Type in stuff and click "Google Search" and you'll get
  an error from tinyproxy. Reason for this is that Google's form submits to
  "/search" which unfortunately bypasses our /google/ mapping (if they'd
  submit to "search" without the slash it would have worked ok). Turn on
  ReverseMagic and it starts working....

  ReverseMagic "hijacks" one cookie which it sends to the client browser.
  This cookie contains the current reverse proxy path mapping (in the above
  case /google/) so that even if the site uses absolute links the reverse
  proxy still knows where to map the request.

  And yes, it works. No, I've never seen this done before - I couldn't find
  _any_ working OSS reverse proxies, and the commercial ones I've seen try
  to parse the page and fix all links (in the above case changing "/search"
  to "/google/search"). The problem with modifying the html is that it might
  not be parsable (very common) or it might be encoded so that the proxy
  can't read it (mod_gzip or likes).

  Hope you like that patch. One caveat - I haven't coded with C in like
  three years so my code might be a bit messy.... There shouldn't be any
  security problems thou, but you never know. I did all the stuff out of my
  memory without reading any RFC's, but I tested everything with Moz, Konq,
  IE6, Links and Lynx and they all worked fine.
2004-01-26 19:11:52 +00:00

 DESCRIPTION
 -----------

 tinyproxy is a small, efficient HTTP/SSL proxy daemon released under
 the GNU General Public License (GPL).  tinyproxy is very useful in a
 small network setting, where a larger proxy like Squid would either
 be too resource intensive, or a security risk.  One of the key
 features of tinyproxy is the buffering connection concept.  In
 effect, tinyproxy will buffer a high speed response from a server,
 and then relay it to a client at the highest speed the client will
 accept.  This feature greatly reduces the problems with sluggishness
 on the Internet.  If you are sharing an Internet connection with a
 small network, and you only want to allow HTTP requests to be
 allowed, then tinyproxy is a great tool for the network
 administrator.


 INSTALLATION
 ------------

 To install this package under a Unix derivative, read the INSTALL
 file.  tinyproxy uses a standard GNU configure script (basically you
 should be able to do:

	 ./configure ; make ; make install

 in the top level directory to compile and install tinyproxy).  There
 are additional command line arguments you can supply to configure.
 They include:

	--enable-debug		If you would like to turn on full
				debugging support
	--enable-socks		This turns on SOCKS support for using
				tinyproxy across a fire wall.
	--enable-xtinyproxy	Compile in support for the XTinyproxy
				header, which is sent to any web
				server in your domain.
	--enable-filter		Allows tinyproxy to filter out certain
				domains and URLs.
	--enable-upstream	Enable support for proxying connections
				through another proxy server.
	--enable-transparent-proxy
				Allow tinyproxy to be used as a
				transparent proxy daemon
	--enable-static		Compile a static version of tinyproxy


     Options for file locations etc.
        --with-stathost=HOST	Set the default name of the stats host
	--with-config=FILE	Set the default location of the
				configuration file

 Once you have completed your installation, if you would like to
 report your success please execute the report.sh script in the doc
 directory.  This will send an email to the authors reporting your
 version, and a few bits of information concerning the memory usage of 
 tinyproxy.  Alternatively, you could just send an email stating the
 version, whichever you prefer.


 SUPPORT
 -------

 If you are having problems with tinyproxy, please submit a bug to the
 tinyproxy Bug Tracking system hosted by SourceForge and located at:

	http://sourceforge.net/tracker/?group_id=2632

 You may also wish to subscribe to the tinyproxy-user mailing list. To
 do so please visit:

        http://lists.sourceforge.net/lists/listinfo/tinyproxy-users

 for more information on how to subscribe and post messages to the
 list.

 Please recompile tinyproxy with full debug support (--enable-debug)
 and include a copy of the log file, and any assert errors reported by
 tinyproxy.  Note that tinyproxy will output memory statistics to
 standard error if compiled with debugging support so you might want
 to redirect the output to a file for later examination.  Also, if you
 feel up to it, try running tinyproxy under your debugger and report
 the error your received and a context listing of the location.  Under
 gdb you would run tinyproxy like so:

	 gdb tinyproxy

	 (gdb) run -c location_of_tinyproxy_conf -d 2>/dev/null

 Now access the port tinyproxy is on until you receive a break in the
 gdb. You can now type:

	 (gbd) l

 to produce a context listing of the location of the error.  Send a
 copy to the authors.


 HOW TO CONTRIBUTE TO tinyproxy
 ------------------------------

 If you would like to contribute a feature, or a bug fix to the
 tinyproxy source, please send a diff (preferable a unified
 diff. i.e. "diff -u") against the latest release of tinyproxy.  Also, 
 if you could include a brief description of what your patch does.
Description
No description provided
Readme 2.2 MiB
Languages
C 88.8%
Perl 3.9%
M4 2.7%
Shell 2.7%
Makefile 1%
Other 0.9%