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  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							63a7914830 
							
						 
					 
					
						
						
							
							# Moved the location of the "initializing" log message to below the  
						
						 
						
						... 
						
						
						
						processing of the command line options. 
						
					 
					
						2003-03-17 04:24:19 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							d2c9ffac23 
							
						 
					 
					
						
						
							
							Made get_html_file() and lookup_variable() static functions since they  
						
						 
						
						... 
						
						
						
						are only used with this file. 
						
					 
					
						2003-03-14 22:49:03 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							5faa0879ec 
							
						 
					 
					
						
						
							
							# Added copyright notices for Steve.  Reformatted the source code to  
						
						 
						
						... 
						
						
						
						better match the existing tinyproxy practise.  Included a few bug
  fixes from Steve. 
						
					 
					
						2003-03-14 22:45:59 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							cc90414b29 
							
						 
					 
					
						
						
							
							(send_http_message): Changed the function to use the new http_message  
						
						 
						
						... 
						
						
						
						API. 
						
					 
					
						2003-03-14 06:15:27 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							c76183a3f0 
							
						 
					 
					
						
						
							
							# Updated all the calls to indicate_http_error() to include a  
						
						 
						
						... 
						
						
						
						terminating NULL.  The va_arg() function requires it to work
  properly. 
						
					 
					
						2003-03-14 06:13:04 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							75dd0b22c4 
							
						 
					 
					
						
						
							
							Allow the URL for the statistic page to be controlled from the  
						
						 
						
						... 
						
						
						
						configuration file, rather than being hard-coded in the program.
[John M Wright] 
						
					 
					
						2003-03-13 21:42:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							a46bfdc2e0 
							
						 
					 
					
						
						
							
							Moved the send_http_error_message() and indicate_http_error()  
						
						 
						
						... 
						
						
						
						functions into the htmlerror.c file, and recoded them to use the new
variable substitution system. [Steven Young] 
						
					 
					
						2003-03-13 21:34:38 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							badd237fe6 
							
						 
					 
					
						
						
							
							# Added variables to config structure to keep track of the files to be  
						
						 
						
						... 
						
						
						
						displayed for various HTTP errors and the stats page. [Steven Young] 
						
					 
					
						2003-03-13 21:32:33 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							b06f26cba1 
							
						 
					 
					
						
						
							
							# Changed showstats() to use the HTML variable functions when  
						
						 
						
						... 
						
						
						
						possible.  It still retains the hard-coded page for when an HTML file
  is not available. [Steven Young] 
						
					 
					
						2003-03-13 21:31:03 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							cb8aaf521e 
							
						 
					 
					
						
						
							
							# Changed calls to indicate_http_error() to use the new HTML variable  
						
						 
						
						... 
						
						
						
						substitution mechanism. [Steven Young] 
						
					 
					
						2003-03-13 21:29:45 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							7995027c8c 
							
						 
					 
					
						
						
							
							# Added parser support for the error file configuration keywords  
						
						 
						
						... 
						
						
						
						(ErrorFile, DefaultErrorFile, StatFile) [Steven Young] 
						
					 
					
						2003-03-13 21:28:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							056bbf84bd 
							
						 
					 
					
						
						
							
							# Added variables to keep track of the variables to be substituted in  
						
						 
						
						... 
						
						
						
						.html files displayed to the client [Steven Young] 
						
					 
					
						2003-03-13 21:27:29 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							a830af5097 
							
						 
					 
					
						
						
							
							# Steve Young's code to implement file based HTML error messages,  
						
						 
						
						... 
						
						
						
						rather than the hard coded string. 
						
					 
					
						2003-03-13 21:25:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							d28d9fb195 
							
						 
					 
					
						
						
							
							# Added htmlerror.c and htmlerror.h  
						
						 
						
						
						
					 
					
						2003-03-13 21:23:01 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							2057ffdb50 
							
						 
					 
					
						
						
							
							# Changed the wording of the header comment to remove the reference to  
						
						 
						
						... 
						
						
						
						"dnsserver" 
						
					 
					
						2003-03-13 19:31:09 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							99ec965544 
							
						 
					 
					
						
						
							
							# (child_main): If this is a debugging build output the child process  
						
						 
						
						... 
						
						
						
						ID and wait for 10 seconds so we have time to connect gdb to the
  child.  This is needed if we want to use gdb against the child
  process. 
						
					 
					
						2003-03-13 19:30:19 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							0a3a1d7c71 
							
						 
					 
					
						
						
							
							Fixed up the include order for the <sys/time.h> and <time.h> headers.  
						
						 
						
						
						
					 
					
						2003-03-13 16:56:28 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							e04ff12768 
							
						 
					 
					
						
						
							
							# Include the http_message.[ch] into the compiled tinyproxy object.  
						
						 
						
						
						
					 
					
						2003-03-13 05:28:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							686826c3b0 
							
						 
					 
					
						
						
							
							An API to handle HTTP messages as concrete entities.  
						
						 
						
						
						
					 
					
						2003-03-13 05:25:30 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							2f9370afe7 
							
						 
					 
					
						
						
							
							(chomp): Fixed up the code to prevent negative array access.  Added  
						
						 
						
						... 
						
						
						
						code to make sure the supplied arguments are valid. 
						
					 
					
						2003-03-13 05:20:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							20d3008c38 
							
						 
					 
					
						
						
							
							(main): Removed duplicate code calling the filter_destroy() function.  
						
						 
						
						... 
						
						
						
						Once is enough.  [Detected by John M Wright] 
						
					 
					
						2003-02-26 22:37:38 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							40c4d3c57a 
							
						 
					 
					
						
						
							
							# (connect_to_upstream): Improved the preprocessor directives to make  
						
						 
						
						... 
						
						
						
						sure the function would compile cleanly regardless of how the
  directive was set. 
						
					 
					
						2003-01-28 21:21:55 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							2f98fec1aa 
							
						 
					 
					
						
						
							
							# Style clean up.  
						
						 
						
						
						
					 
					
						2003-01-27 18:45:25 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							abbf826445 
							
						 
					 
					
						
						
							
							(display_usage): Removed the output line mentioning that regular  
						
						 
						
						... 
						
						
						
						expression support was included.  It will be there always. 
						
					 
					
						2003-01-27 18:44:43 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							2fc9c76969 
							
						 
					 
					
						
						
							
							(connect_to_upstream): Reorganized the preprocessor directives to make  
						
						 
						
						... 
						
						
						
						sure the function's symbol name is stored, even if upstream was not
compiled it.  This should keep some compilers from reporting errors. 
						
					 
					
						2003-01-27 18:42:18 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							cb7e3eef04 
							
						 
					 
					
						
						
							
							Added support for conditionally using case sensitive filtering files.  
						
						 
						
						... 
						
						
						
						Code changes from James E. Flemer. 
						
					 
					
						2003-01-27 17:57:45 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							212abd64d7 
							
						 
					 
					
						
						
							
							(process_client_headers): Fixed inverted anonymous header logic.  Fix  
						
						 
						
						... 
						
						
						
						comes from the FreeBSD port through James E. Flemer. 
						
					 
					
						2003-01-27 17:39:02 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							59ec5dc69f 
							
						 
					 
					
						
						
							
							(strip_username_password): New function to remove any  
						
						 
						
						... 
						
						
						
						username/password part from the host URI.
(extract_http_url), (extract_ssl_url): Use the new
strip_username_password function to remove any non-host information
from the URI. 
						
					 
					
						2002-12-04 17:36:48 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							0a20bdd5b4 
							
						 
					 
					
						
						
							
							Removed the "bool_t" type since it conflicts with the newer C standards.  
						
						 
						
						... 
						
						
						
						The type was just replaced by "unsigned int" types. 
						
					 
					
						2002-12-04 17:06:14 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							d069b4fce9 
							
						 
					 
					
						
						
							
							(extract_http_url): Removed the leading "http://" from all the tests,  
						
						 
						
						... 
						
						
						
						since it's skipped by the caller before the URL is passed to this
function.
(process_request): Include code to handle proxy FTP requests as
well.  This also lead to a bit of a cleanup in the calling conventions
of extract_http_url function.  tinyproxy can handle both types of
resources by skipping the leading :// part. 
						
					 
					
						2002-11-29 19:25:59 +00:00