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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							e58343012f 
							
						 
					 
					
						
						
							
							Included code to disable the sending of the Via header.  This is now  
						
						... 
						
						
						
						controlled by the ViaHeader configure directive. 
						
					 
					
						2002-11-26 21:44:43 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							d40a4e8af7 
							
						 
					 
					
						
						
							
							(relay_connection): Shutdown the client socket for writing once all  
						
						... 
						
						
						
						the data has been sent. 
						
					 
					
						2002-11-13 17:48:48 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							3b2be8ae88 
							
						 
					 
					
						
						
							
							Removed all the code supporting the TCP tunnelling feature of  
						
						... 
						
						
						
						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. 
						
					 
					
						2002-11-03 17:10:33 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							69be2b84d7 
							
						 
					 
					
						
						
							
							(relay_connection): Ivan pointed out a bug with the code to send any  
						
						... 
						
						
						
						remaining data to the server when the connections are being closed.
It was a one line fix. 
						
					 
					
						2002-10-17 19:27:08 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							f47685c861 
							
						 
					 
					
						
						
							
							A bunch of changes from Petr Lampa that add transparent proxy support to tinyproxy.  The additional code is in process_request(), but Petr also had to change around some of the other functions (like process_client_headers and handle_connection.)  Note: Right now this code has not been tested, but it is believed to work.  To enable run ./configure --enable-transparent-proxy  
						
						
						
					 
					
						2002-06-06 20:32:30 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							26a983b467 
							
						 
					 
					
						
						
							
							(process_server_headers): Since we're stripping off the carriage return and newline, we need to add them back on when sending the response header to the client.  
						
						
						
					 
					
						2002-05-31 18:09:09 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							9b13e9bda8 
							
						 
					 
					
						
						
							
							(add_header_to_connection): Removed the "double_cgi" boolean, since tinyproxy now ignores all the headers after a "double CGI" situation has occurred.  
						
						... 
						
						
						
						(get_all_headers): Instead of dropping duplicate headers when the "double CGI" situation occurs, tinyproxy will now drop _all_ the headers from the "inner" HTTP response. 
						
					 
					
						2002-05-29 18:11:57 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							e7fcb5fc7d 
							
						 
					 
					
						
						
							
							(add_header_to_connection): Added a boolean to indicate that a "Double CGI" situation is in affect.  This is needed to solve a problem with some sites (like cgi.ebay.com) where they are sending two HTTP response lines (and associated headers) with a response.  
						
						... 
						
						
						
						(get_all_headers): Detect if a "Double CGI" situation has occured. 
						
					 
					
						2002-05-28 20:40:01 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							cf2bd809fb 
							
						 
					 
					
						
						
							
							(get_all_headers): Added code to ignore a "response" line in a header.  This was pointed out as being a problem with eBay (cgi.ebay.com)  
						
						... 
						
						
						
						(process_server_headers): Added code to make skip blank lines before a response line. 
						
					 
					
						2002-05-28 04:53:33 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							4ce9674365 
							
						 
					 
					
						
						
							
							(process_request): Changed the filtering code around to handle both domains and URLs.  
						
						
						
					 
					
						2002-05-27 02:00:22 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							63f481c61a 
							
						 
					 
					
						
						
							
							Spelling changes (from thread to child.)  
						
						
						
					 
					
						2002-05-26 18:55:19 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							391a408eee 
							
						 
					 
					
						
						
							
							Fixed a tonne of spelling mistakes.  
						
						
						
					 
					
						2002-05-24 04:45:32 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							47ab97a347 
							
						 
					 
					
						
						
							
							Fixed up a spelling mistake and changed various bits of code to take  
						
						... 
						
						
						
						advantage of the fact that the peer's socket information is now stored
inside the connection structure. 
						
					 
					
						2002-05-23 18:24:46 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							e4e78e0f1b 
							
						 
					 
					
						
						
							
							request->host might have been freed by the time we get to  
						
						... 
						
						
						
						free_request_struct(), so make sure it's pointing to memory. 
						
					 
					
						2002-05-17 16:34:42 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							bb9f206529 
							
						 
					 
					
						
						
							
							Moved the definition of the struct buffer_s into the buffer.c file and out  
						
						... 
						
						
						
						of the buffer.h file.  This also required the removal of the BUFFER_SIZE
macro, and replace it with the buffer_size() function. 
						
					 
					
						2002-05-14 00:43:38 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							cf2ecb83b8 
							
						 
					 
					
						
						
							
							Removed the request logging in the tunnel because it breaks the tunnel  
						
						... 
						
						
						
						concept since it blocks waiting for information from the client before any
data from the remote is relayed. 
						
					 
					
						2002-05-08 03:29:23 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							ed90a4676f 
							
						 
					 
					
						
						
							
							Added more error checking in process_client_headers() and  
						
						... 
						
						
						
						process_server_headers() functions.
Also, better reporting of errors back to the client. 
						
					 
					
						2002-04-28 20:03:18 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							1a8c914dd2 
							
						 
					 
					
						
						
							
							Changed the len type to ssize_t because we need to detect errors in the  
						
						... 
						
						
						
						recv() call.  Thanks to Tom Cross for discovering this bug. 
						
					 
					
						2002-04-26 19:33:09 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							0e7182533c 
							
						 
					 
					
						
						
							
							Need to check the return value of hashmap_first() since it could be  
						
						... 
						
						
						
						negative. 
						
					 
					
						2002-04-26 16:43:20 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							6992c74bba 
							
						 
					 
					
						
						
							
							Check to see if request->path is actually allocated before trying to free  
						
						... 
						
						
						
						it. 
						
					 
					
						2002-04-25 19:20:56 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							b4ef24844f 
							
						 
					 
					
						
						
							
							First change all the hashmap related calls to use the new API.  
						
						... 
						
						
						
						The remove_connection_headers() function now handles both the Connection
header _and_ the Proxy-Connection header. 
						
					 
					
						2002-04-25 18:58:08 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							335d787018 
							
						 
					 
					
						
						
							
							Fixed a couple of problems where tinyproxy was trying to free a memory  
						
						... 
						
						
						
						block which had not been allocated.
Also, the "proxy-connection" to the list of headers we don't pass. 
						
					 
					
						2002-04-24 16:47:19 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							1953348c90 
							
						 
					 
					
						
						
							
							Added the "Proxy-Connection" header to the list of client headers which  
						
						... 
						
						
						
						are not passed along. 
						
					 
					
						2002-04-22 19:34:50 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							60f0a86c75 
							
						 
					 
					
						
						
							
							The stats now wait until after the client has finished sending all its  
						
						... 
						
						
						
						headers before sending the HTTP response back.  This should be more
standards compliant. 
						
					 
					
						2002-04-18 21:43:53 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							a66aae880c 
							
						 
					 
					
						
						
							
							Fixed a memory leak in reading in headers from the client or server.  
						
						
						
					 
					
						2002-04-18 17:58:52 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							1d85484c3a 
							
						 
					 
					
						
						
							
							If the initialize_conn() function fails, close the socket and return.  
						
						... 
						
						
						
						Also, changed the call to check_acl() to include the peer's IP and string
addresses. 
						
					 
					
						2002-04-17 20:55:21 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							ca10b1353d 
							
						 
					 
					
						
						
							
							Various code clean up.  There is nothing new here, just mechanical changes  
						
						... 
						
						
						
						to the source to either remove code which is not needed, or consolidate
common code into a common section. 
						
					 
					
						2002-04-16 03:20:43 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							550145d49e 
							
						 
					 
					
						
						
							
							Changed the variable type in read_request_line() to an unsigned variable  
						
						... 
						
						
						
						in order to detect negative returns. 
						
					 
					
						2002-04-15 04:14:03 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							a5d3212751 
							
						 
					 
					
						
						
							
							Changed the error boolean flag into a pointer to an error string and an  
						
						... 
						
						
						
						error code.  We're storing this information because tinyproxy doesn't
output the error information until _after_ the client has sent it's
information. 
						
					 
					
						2002-04-15 02:07:27 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							ecb249f424 
							
						 
					 
					
						
						
							
							Added code to support the new ConnectPort directive which is needed to  
						
						... 
						
						
						
						improve security of the tinyproxy system.  This new directive allows the
admin to block CONNECT methods to illegal ports. 
						
					 
					
						2002-04-12 17:00:42 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							f1a451faea 
							
						 
					 
					
						
						
							
							Added a write_via_header() function which is now used in both header  
						
						... 
						
						
						
						processing functions.  Also, added a list of headers to drop in the
process server header functions. 
						
					 
					
						2002-04-12 03:09:04 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							85a82af5f5 
							
						 
					 
					
						
						
							
							Did a bit of consolidation by moving code into remove_connection_headers()  
						
						... 
						
						
						
						and added the get_content_length() function.
The process_server_headers() function was rewritten to remove the
Connection header correctly, and also retrieve the Content-Length value.
This value is needed in the relay_connection() function since there are
some remote machines which do not properly close down the connection once
the body has been retrieved.  Thanks to James Flemer for finding a test
case for this problem. 
						
					 
					
						2002-04-11 20:44:15 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							eef4559783 
							
						 
					 
					
						
						
							
							Removed the compare_header() function since it's been replaced by a call  
						
						... 
						
						
						
						the anonymous_search().
Added a few more log_message() calls to better explain error conditions.
Fixed up a problem with X-Tinyproxy sending logic. 
						
					 
					
						2002-04-09 20:06:24 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							fb736ec3fb 
							
						 
					 
					
						
						
							
							A _tonne_ of changes.  It would almost be easier to just read the source  
						
						... 
						
						
						
						itself to find out all the changes.  Changed the process_client_header()
function to use the hashmap and vector modules.  I've made this change to
better handle the Connection header.  The Connection header, it it's
present, lists all the headers which should _not_ be transmitted any
further along.  An HTTP/1.1 proxy must respect this.
Other changes are basically cosmetic. 
						
					 
					
						2002-04-07 21:35:59 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							475e526a48 
							
						 
					 
					
						
						
							
							Moved write_message() into sock.c because I'm using it in other places.  
						
						
						
					 
					
						2001-12-24 00:01:02 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							c3124815a1 
							
						 
					 
					
						
						
							
							Cleaned up the code which sends the "Via" header. It now uses  
						
						... 
						
						
						
						write_message(). 
						
					 
					
						2001-12-23 21:55:08 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							93f0406b7e 
							
						 
					 
					
						
						
							
							Created the CHECK_CRLF() macro to handle the tests for the appropriate  
						
						... 
						
						
						
						control characters in a string. 
						
					 
					
						2001-12-20 04:48:32 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							63a1fa96cc 
							
						 
					 
					
						
						
							
							Removed duplicate code from process_server_headers() and removed the calls  
						
						... 
						
						
						
						to strlen(); readline() already returns the length of the string, so use
that instead. 
						
					 
					
						2001-12-19 20:40:23 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							e964cf0d35 
							
						 
					 
					
						
						
							
							Damn---removed the debugging code from write_message().  
						
						
						
					 
					
						2001-12-19 05:20:01 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							5140f01d5c 
							
						 
					 
					
						
						
							
							Opps! Fixed a problem with negative numbers. :)  
						
						
						
					 
					
						2001-12-19 05:19:03 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							56b541d76b 
							
						 
					 
					
						
						
							
							Redefined HTTP_LINE_LENGTH to be based on MAXBUFFSIZE (and set to around  
						
						... 
						
						
						
						16 KB.)
Added the TUNNEL_CONFIGURED() macro to help with testing for the tunnel
support code.
Create the write_message() function to encapsulate the code which sends
the information to the file descriptor.
Moved the tunnel code into it's own function. 
						
					 
					
						2001-12-19 05:13:40 +00:00 
						 
				 
			
				
					
						
							
							
								Robert James Kaes 
							
						 
					 
					
						
						
						
						
							
						
						
							17103bf8fe 
							
						 
					 
					
						
						
							
							Updated the list of headers to ignore.  
						
						
						
					 
					
						2001-12-18 05:01:03 +00:00