Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
processing of the command line options.
|
|
displayed for various HTTP errors and the stats page. [Steven Young]
|
|
Once is enough. [Detected by John M Wright]
|
|
expression support was included. It will be there always.
|
|
The type was just replaced by "unsigned int" types.
|
|
not report this to the user and close the program.
|
|
tinyproxy. There is really no need for this code, since there are
perfectly good programs out there (like rinetd) which are designed for
TCP tunnelling. tinyproxy should be a good HTTP proxy, nothing more,
and nothing less; therefore, the tunnelling code is gone.
|
|
to when the log file is created. Also, the log file is created with
the proper owner permissions.
|
|
being initially created with the initial user's permissions, which is obviously a problem if tinyproxy is not running as the initial user. This is now fixed by delaying the creation of the log file until _after_ tinyproxy has been switched to the user it will run as. Confused yet?
|
|
(main): Removed the log file creation code because it has been moved into the log.c file. Also, removed the explicit fclose() for the log file since it will be close when the program has exited.
|
|
support has been compiled in.
|
|
tinyproxy without losing the log file.
|
|
|
|
(main): Moved the signals around so that the appropriate signal is assigned to either the children or just the parrent process.
Updated the copyright on the file.
|
|
longer needed with the new pre-forked model.
|
|
|
|
dnsserver child process.
Changed the set signal calls to use our new set_signal_handler() function.
Added code to start the "dnsserver" child process.
|
|
|
|
file has not been read yet. The reason for this is that we don't know
where to log the messgaes until _after_ the config file has been
processed.
|
|
memory usage tracking.
|
|
been moved to inside the main() function.
|
|
function. The signal handler now simply sets a flag which is monitored
inside the thread_main_loop() function. The log rotation code has also
been tightened to handle any error conditions better. Credit to Petr
Lampa for suggesting that system functions inside of a signal handler is
bad magic.
|
|
|
|
|
|
also a new thread_kill_threads() function which should cancel all threads
when the main thread is being closed.
|
|
changed the level to WARNING.
|
|
|
|
|
|
tinyproxy.h and all the other files include the tinyproxy.h header. This
moves all the dependancy issues into one file.
|
|
set in the configuration file.
|
|
|
|
create_file_safely() function to eliminate potential security problems.
|
|
|
|
|
|
and TARGET_SYSTEM into the version list. Also moved the license into a
separate function. Renamed usagedisp() to display_usage(). Fixed a problem
where the anonymous search tree was being created _after_ it was being
accessed.
|
|
these MUST be set in the configuration file.
|
|
|
|
Changed all references to log() to log_message().
|
|
polls. :)
|
|
|
|
|
|
|
|
Log when tinyproxy is using default values rather than specific ones.
Cleaned up the command line arguments since tinyproxy now uses a
configuration file.
Removed the USR1 signal and added the thread creation code.
|
|
anonymous.*
|
|
|
|
which included commits to RCS files with non-trunk default branches.
|