Commit Graph

485 Commits

Author SHA1 Message Date
Mukund Sivaraman
a2ee837223 [BB#10] Do not filter out transfer-encoding header 2009-09-27 16:30:54 +05:30
Mukund Sivaraman
ef09a6bcc1 [BB#18] Fix pointer aliasing issues
The changes were suggested by ians on the Banu forums.
2009-09-21 09:36:31 +05:30
Robert James Kaes
33f7405bf5 * [1118363] Proxy reverse order of headers
Changed the internal implementation of the hashmap to maintain the
  insert order if the same key is repeated.  The insertion is still
  constant since we keep track of the head and tail of the bucket
  chain.

Signed-off-by: Michael Adam <obnox@samba.org>
2009-08-04 01:25:51 +02:00
Mukund Sivaraman
82e3af8fd3 Fix memset bug where wrong buffer size was being passed (trac #29)
This bug was reported by devy at free dot fr. It had already been
fixed in the master branch.
2008-12-29 13:31:08 +00:00
Mukund Sivaraman
08b4e06247 Fix leak of args 2008-08-24 12:09:17 +05:30
Mukund Sivaraman
fc815b12c1 Move buffer to the heap due to its size 2008-08-24 12:07:24 +05:30
Mukund Sivaraman
b6bd791e24 Set umask before mkstemp() for some versions of glibc 2008-08-24 12:02:54 +05:30
Mukund Sivaraman
ee70057f76 Fix leak of entry_buffer 2008-08-24 11:59:24 +05:30
Mukund Sivaraman
a7f379fafc pos can never be less than 0 as it's of type size_t
Also fix the type which is passed in from various places.
2008-08-24 11:55:22 +05:30
Mukund Sivaraman
02054cef92 Add src/.gitignore 2008-06-19 22:09:21 +05:30
Mukund Sivaraman
61f8ab527c Fix format strings for size_t 2008-06-19 22:09:20 +05:30
Mukund Sivaraman
92f5bdce14 Use socklen_t for sizeof sockaddr_in 2008-05-31 19:11:25 +05:30
Mukund Sivaraman
0a16445b69 Don't override YFLAGS and LDFLAGS 2008-05-31 19:08:56 +05:30
Mukund Sivaraman
1df038294b Removed the clean target from the src directory 2008-05-11 16:11:59 +05:30
Robert James Kaes
4a8c4d55f0 Close the standard file descriptors (stdin, stdout, and stderr) when
compiling in production mode (no debugging information.)
2004-08-10 03:38:13 +00:00
Robert James Kaes
385fae593d [Fixes Bug 996518]
Merged in a patch from Hans-Dieter that fixes a problem with upstream
proxy support.
2004-08-06 16:56:55 +00:00
Robert James Kaes
cde61e2fac child_configure(): Change the "val" type to a signed integer. 2004-06-14 20:49:57 +00:00
Robert James Kaes
cc3a893f5a Changed the fields in the child_config_s structure to use regular
signed integers since the servers_waiting variable is signed and
therefore, all the tests must use signed arithmetic.
2004-06-14 20:08:12 +00:00
Robert James Kaes
cd9c768c59 (upstream_add): Fixed a spelling mistake with "Nonsence" 2003-11-19 19:20:18 +00:00
Robert James Kaes
b1d126c4bb (filter_init): Fixed up the comment handling code. Closes bug 822226
[https://sourceforge.net/tracker/index.php?func=detail&aid=822226&group_id=2632&atid=102632]
2003-10-16 21:19:09 +00:00
Robert James Kaes
e04dd2ee69 # Misspelled the __cplusplus define. 2003-08-06 20:46:04 +00:00
Robert James Kaes
c315bce11b (debugging_realloc): Remove the assert on the ptr being NULL since a
NULL pointer is allowed by the realloc() spec.
2003-08-06 20:44:09 +00:00
Robert James Kaes
6a11a9c909 (child_main): Fixed an off-by-one error with the maxrequestsperchild
variable.  [Fix proposed by Yannick Koehler]
2003-08-06 20:23:06 +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
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
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
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
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
91e082671a (upstream_get):
(upstream_add): Added support to allow ip addresses and networks to be
used when matching an upstream proxy directive.
[Code by Peter da Silva]
2003-06-02 21:55:14 +00:00
Robert James Kaes
ea50171a95 Changed the safefree() macro to make it safe to use a conditional
statement, and also safe to use with a rvalue that has a side
effect.  [Bug fix recommended by Peter da Silva]
2003-05-31 23:04:15 +00:00
Robert James Kaes
77ca1c8ce0 # Changed all the for calls to use the != test rather than < test.
The change was recommended in the C/C++ User Journal magazine.
2003-05-31 23:02:21 +00:00
Robert James Kaes
af5e1e29f6 # Changed the calls to vector_getentry() to use the new calling
convention.
2003-05-30 16:22:30 +00:00
Robert James Kaes
1955dcd47b (vector_getentry): Changed the API to return the data pointer and have
the length returned in a argument variable pointer.  This should be a
more natural way of using the function.
2003-05-30 16:21:48 +00:00
Robert James Kaes
c3eaebd1c5 # Added a vector_prepend() function and recoded the old vector_insert()
to be a general "insert" for both vector_append() and vector_prepend()
2003-05-29 21:07:22 +00:00
Robert James Kaes
8ab278998f # Renamed the vector_insert() calls to vector_append() 2003-05-29 20:48:25 +00:00
Robert James Kaes
42f9f37afc (vector_append): Renamed the vector_insert() function to more
accurately indicate that entries are appended to the end of the
vector.
2003-05-29 20:47:52 +00:00
Robert James Kaes
4a377a712d Improved the upstream proxy support by making the upstream proxy
server configurable based on the destination host.  [Code written by
Peter da Silva]
2003-05-29 19:44:00 +00:00
Robert James Kaes
5e1303ecd1 (establish_http_connection): If the port being requested is not a
standard HTTP port (80 or 443) append the port string to the host
header; otherwise, leave the host string with only the host's domain
name.

Replaced all occurrences of constant 80 and 443 with defines HTTP_PORT
and HTTP_PORT_SSL.
2003-05-05 16:46:05 +00:00
Robert James Kaes
ac88af1f71 Fixed a bug that would kill a child process because of an invalid
safefree() call.  Basically, destroy_conn() was trying to free memory
not allocated by malloc.  [Fix by David T. Pierson]
2003-05-04 04:35:10 +00:00
Robert James Kaes
c94bfa8223 (build_url): Rebuild the URL from the component pieces. This function
is used by the transparent proxy code.  [Anatole Shaw]
(process_request): Fixed up the transparent proxy code so that
filtering can be done on the whole URL.  [Anatole Shaw]

(pull_client_data): Added a bug fix for Internet Explorer (IE).  IE
will leave an extra CR and LF after the data in an HTTP POST.  The new
code will eat the extra bytes if they're present.  Thanks to Yannick
Koehler for finding the bug and offering an explanation as to why it
was happening.

Changed all calls of connptr->remote_content_length to
connptr->content_length.server
2003-04-16 18:11:58 +00:00
Robert James Kaes
648e8f1438 # Changed it again to this time use the TINYPROXY_DEBUG environment
variable to determine whether to wait for a connection from GDB.
2003-04-16 18:04:58 +00:00
Robert James Kaes
4a942bc59a # The programmer is now made to _explicitly_ enable the GDB support in
the child handling function.
2003-04-16 16:39:23 +00:00
Robert James Kaes
6ff4192069 Removed the remote_content_length field in the "conn" structure and
replaced it with a smaller structure containing both the remote/server
and the local/client content-length fields if they're present in the
HTTP response headers.
2003-04-16 16:37:59 +00:00
Robert James Kaes
bcf25dc67e (add_error_variable): Test whether connptr->error_variable is NULL,
and if so call safemalloc().  This is needed since saferealloc() will
assert() if the first argument is a NULL pointer.
2003-04-01 16:41:33 +00:00
Robert James Kaes
7cd19206cc (establish_http_connection): Always include the port number for the
requested server.  This fixes a problem when the server is not
listening on the default port, 80.
[Fix suggested by duncan@sapio.co.uk]
2003-03-26 16:47:30 +00:00