Commit Graph

987 Commits

Author SHA1 Message Date
Robert James Kaes
badc7673d0 Merged in changes from 1.6.3 2004-08-10 21:24:24 +00:00
Robert James Kaes
18df4910a4 Added the "BindSame" configure directive from Oswald Buddenhagen.
This allows tinyproxy to respond to a request bound to the same
interface that the request came in on.  As Oswald explains:

  "attached is a patch that adds the BindSame option. it causes
  binding an outgoing connection to the ip address of the respective
  incoming connection. that way one can simulate an entire proxy farm
  with a single instance of tinyproxy on a multi-homed machine."

Cool.
2004-04-27 18:53:14 +00:00
Robert James Kaes
3b961ec66b (init_stats): Fixed a memset bug, where the structure was not cleared
properly.  (The sizeof "struct stat" was being used rather than the
proper "struct stat_s".  On my system, "struct stat" is 88 bytes long,
while "struct stat_s" is 20 bytes long.  Quite a difference!)
2004-04-27 18:48:53 +00:00
Robert James Kaes
095d0d0142 These files list all the other files that CVS should ignore. It makes
looking at the CVS status information a little cleaner.
2004-04-27 18:28:45 +00:00
Robert James Kaes
5ecd9157ce Converted the various socket functions to work with both IPv4 and IPv6
addresses.
2004-02-18 20:18:53 +00:00
Robert James Kaes
c21df1ea0f Added two functions:
- get_ip_string() converts a binary network address into either a
   dotted-decimal IPv4 address, or a IPv6 hex-string
 - full_inet_pton() converts a numeric character string into an IPv6
   network address (binary form).  It's like the system inet_pton()
   function, but it will work with bot IPv4 and IPv6 character
   strings.

These functions are required for the conversion to Internet protocol
independence.  (Or to put it more clearly: allow tinyproxy to work in
an IPv6 network.)
2004-02-18 20:17:18 +00:00
Robert James Kaes
02893c3489 Rewrote the "early history" of the project, and added a section for
"major" addition authors.
2004-02-17 19:49:54 +00:00
Robert James Kaes
aee5a63849 Removed unnecessary casts (mostly dealing with memory allocation.) I
should never have added them in the first place.  They don't really
buy anything, and they can hide bugs.
2004-02-13 21:27:42 +00:00
Robert James Kaes
bf22966f55 (strip_return_port): Patch from "alex" to strip the port from the host
string and return the port.  I cleaned up and added error handling to
the code, but it's basically "alex"'s fix.

(extract_http_url): Rewrote this function to remove all the sscanf()
calls.  It's much easier to just split on the path slash (if it's
present) and then strip the user name/password and port from the host
string.  Less code, handles more cases!
2004-02-04 19:57:40 +00:00
Robert James Kaes
47df93b8f3 # Updated change log 2004-01-26 19:19:31 +00:00
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
Robert James Kaes
f2d846d057 Merged in changes from the 1.6.2 release. (Fixes for the filtering code
and the HTML installation script.)
2003-10-17 16:11:00 +00:00
Robert James Kaes
27d93b1f08 Merged in missing $(DESTDIR) in tinyproxy-html-files rules bug fix
from the stable branch.
2003-08-14 15:16:50 +00:00
Robert James Kaes
a13ca8271e Incorporated patches from Marc Silver to improve the readability and
understandability of the documentation.
2003-08-07 16:50:55 +00:00
Robert James Kaes
d2098f638f tinyproxy no longer includes a fall-back regular expression library,
so these files needed to be modified to only use the system's
installed regular expression library.
2003-08-07 16:32:12 +00:00
Robert James Kaes
d72fa83245 Removed the included regular expression library, since it should come
standard on any reasonably modern system.
2003-08-07 16:29:54 +00:00
Robert James Kaes
7eb4eba381 # Merged in changes from the stable 1.6 branch. 2003-08-07 15:31:20 +00:00
Robert James Kaes
630b99334c Patch from Marc Silver to improve the readability and accuracy of the
tinyproxy man page.
2003-08-05 21:14:43 +00:00
Robert James Kaes
fd23cd4aed # Fixed a comment to actually reflect what the function does. 2003-08-05 16:11:59 +00:00
Robert James Kaes
26ad896676 Added the cookie header to the documented list of headers to allow
through.
2003-08-05 16:11:06 +00:00
Robert James Kaes
a117ed9cb0 Included patches from Steven Young to use the hashmap functionality to
manage the HTML error pages.  It simplifies the source, and also make
the object file smaller.  Nice.  Also added any casting from (void*)
to ensure that the code compiles using a C++ compiler.
2003-08-01 00:14:34 +00:00
Robert James Kaes
15870a9582 Added appropriate casts (void*) casts to allow the code to compile
cleanly using a C++ compiler.

Changed the servers_waiting variable to an unsigned int, since the
number of servers waiting can never be negative, and added an assert()
to ensure this invariant.
2003-07-31 23:44:52 +00:00
Robert James Kaes
bc77dfb492 (debugging_realloc): Removed the assert for the NULL pointer, since
realloc() can take a NULL pointer, as defined by the realloc() man
page.

Fixed the cast in both safefree() macros to compile cleaning using a
C++ compiler.
2003-07-31 23:42:51 +00:00
Robert James Kaes
5a2af49e58 Fixed the cast in both safefree() macros to compile cleaning using a
C++ compiler.
2003-07-31 23:41:26 +00:00
Robert James Kaes
8a6a94db0a # Fixed a preprocessor test (misspelled __cplusplus) 2003-07-31 23:40:16 +00:00
Robert James Kaes
6aaa863432 Added appropriate casts from (void*) so that the code will compile
cleanly with a C++ compiler.  (Tested using GCC 3.3)
2003-07-31 23:38:28 +00:00
Robert James Kaes
ab02f47a29 # Bumped up the version number because of a maintenance release (to fix
a problem with the scanner.c file.
2003-07-24 15:13:00 +00:00
Robert James Kaes
7115a37f23 # Updated ChangeLog 2003-07-14 17:45:11 +00:00
Robert James Kaes
a748265b50 # Bumped up version number. 2003-07-14 17:43:26 +00:00
Robert James Kaes
7c96935552 (indicate_http_error): Added calls to va_end() before leaving the
function.
2003-07-14 17:42:43 +00:00
Robert James Kaes
09aa3d6409 # Updated the ChangeLog 2003-06-26 18:33:13 +00:00
Robert James Kaes
717be92385 # Bumped up the version number and made sure to only add the debugging
flags to flex if it really is flex.
2003-06-26 18:31:16 +00:00
Robert James Kaes
a4cd3eb9ec # Removed the debugging information. 2003-06-26 18:26:10 +00:00
Robert James Kaes
a8798e999b # Added debugging flags for the flex scanner. 2003-06-26 18:23:01 +00:00
Robert James Kaes
1cb032a934 (upstream_add): Rewrote the function to actually handle the various
types of upstream configurations correctly.  Hopefully, the code is
also a little clearer in it's implementation.
2003-06-26 18:19:57 +00:00
Robert James Kaes
988f243286 # Removed the STRING_ADDRESS token since it was conflicting with the
IDENTIFIER directive and also the keyword directives.
2003-06-26 18:17:09 +00:00
Robert James Kaes
db142b6e23 Modified the patterns to allow the new upstream directives to work as
defined in the tinyproxy.conf documentation.
2003-06-26 18:16:09 +00:00
Robert James Kaes
2736a19518 (debugging_free): Rather than assert on a NULL pointer, log the NULL
pointer and return.
2003-06-26 18:14:13 +00:00
Robert James Kaes
93ac7d8824 # Bumped up the version number. 2003-06-25 18:23:11 +00:00
Robert James Kaes
61a6ca82db # Updated the changelog 2003-06-25 18:22:37 +00:00
Robert James Kaes
ddcac5ae09 Added a test to define INADDR_NONE if it's not present. For example,
SunOS (solaris 2.8) does not include this define.  [Thank to Ben
Hartshorne for pointing this out.]
2003-06-25 18:20:22 +00:00
Robert James Kaes
d2f5f5c564 Changed the calls to "ps" and "grep" to use a more portable syntax. 2003-06-25 18:18:19 +00:00
Robert James Kaes
66fc80e922 # Bumped up the version number. 2003-06-23 21:15:04 +00:00
Robert James Kaes
8b8d3b1477 # Added a bit more description to describe where to look for the error
HTML files.  In the future the installation script should modify the
  tinyproxy.conf file.
2003-06-23 21:14:32 +00:00
Robert James Kaes
5ba1325ef5 # Updated ChangeLog 2003-06-20 18:01:26 +00:00
Robert James Kaes
4c9141aac6 Removed the "ViaHeader" directive and replaced it with the
"ViaProxyName" directive.  The "Via" HTTP header is _required_ by the
HTTP spec, so the code has been changed to always send the header.
However, including the proxy's host name could be considered a
security threat, so the "ViaProxyName" directive is used to set the
token sent in the "Via" header.  If the directive is not enabled the
proxy's host name will be used.
2003-06-20 17:02:13 +00:00
Robert James Kaes
0d3962f1f0 # Removed the HTML error suggestion since it's been implemented with
Steven Young's patches.  Added a suggestion for user authentication.
2003-06-19 16:45:58 +00:00
Robert James Kaes
b081019d5a (connect_to_upstream): Fixed an off-by-one error in the snprintf()
call used to build the URL for the upstream proxy. [Patch suggested by
David T. Pierso]
2003-06-06 16:14:50 +00:00
Robert James Kaes
c2240df616 Remove the -O2 optimization if debugging is enabled. Also, remove the
-g option if the code does _not_ have debugging enabled.
2003-06-02 21:57:14 +00:00
Robert James Kaes
7f8e4647f7 Included additional examples of how to configure the upstream proxy
support for more selective proxying.
2003-06-02 21:56:00 +00:00