1731 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1731 lines
		
	
	
		
			61 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
2002-08-09  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.5.1 (2002-08-09)
 | 
						|
 | 
						|
2002-07-09  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/utils.c: (create_file_safely):
 | 
						|
	(pidfile_create): Changed all the error logging to write to
 | 
						|
	standard error and then exit the program.  This will prevent
 | 
						|
	segmentation fault problems from occurring because the log file
 | 
						|
	could not be created properly.
 | 
						|
 | 
						|
	* src/heap.c (malloc_shared_memory):
 | 
						|
	Changed the static character array to include the ".XXXXXX" string
 | 
						|
	already.  This saves one system call when creating a temporary
 | 
						|
	file name.
 | 
						|
 | 
						|
2002-07-08  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* README:
 | 
						|
	Updated the "Support" section to include a link to the tinyproxy
 | 
						|
	Bug Tracker system hosted by SourceForge.
 | 
						|
 | 
						|
2002-07-05  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac:
 | 
						|
	Removed the -D_REENTRANT C flag since tinyproxy is no longer a
 | 
						|
	multi-threaded program.
 | 
						|
 | 
						|
2002-06-27  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/child.c (child_make):
 | 
						|
	Reset the various signals to the default signal handler so that
 | 
						|
	the children can be properly destroyed.
 | 
						|
 | 
						|
2002-06-15  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/log.c (log_message):
 | 
						|
	Changed the code so that the log is opened, written, and closed
 | 
						|
	whenever a message is submitted.  This allows the log file to be
 | 
						|
	moved away, for example a rotating the log, and yet still have the
 | 
						|
	information written to the correct file name by all the children.
 | 
						|
 | 
						|
	* src/tinyproxy.c:
 | 
						|
	Renamed the "log_rotation_request" boolean to "received_sighup".
 | 
						|
	(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.
 | 
						|
 | 
						|
	* src/child.c (child_main_loop):
 | 
						|
	Moved the filter re-initiation code into the loop.  This code is
 | 
						|
	activated whenever the SIGHUP signal is received.
 | 
						|
 | 
						|
	* src/tinyproxy.h:
 | 
						|
	Removed the "logf" FILE structure from the config structure, and
 | 
						|
	also renamed the "log_rotation_request" boolean to
 | 
						|
	"received_sighup".
 | 
						|
 | 
						|
	* src/utils.c, src/utils.h:
 | 
						|
	Removed the rotate_log_files() function since I'm moving to an
 | 
						|
	Apache style where the _user_ needs to move the log file
 | 
						|
	themselves, and tinyproxy will continue to write to the original
 | 
						|
	name.  This allows more flexibility for users to determine their
 | 
						|
	own log rotation scheme.
 | 
						|
 | 
						|
2002-06-07  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/filter.c, src/filter.h:
 | 
						|
	Added code to handle the "FilterDefaultDeny" directive.  The
 | 
						|
	filter_set_default_policy() function is used to select the default
 | 
						|
	policy (either default allow or default deny) for the filtering
 | 
						|
	code.  Also, the two filtering functions now support the policy
 | 
						|
	code.
 | 
						|
 | 
						|
	* doc/tinyproxy.conf, src/grammar.y, src/scanner.l:
 | 
						|
	Added the "FilterDefaultDeny" directive to allow the user to
 | 
						|
	select whether the default policy of the filter is to allow
 | 
						|
	everything which isn't denied, or to deny everything which isn't
 | 
						|
	allowed.
 | 
						|
 | 
						|
2002-06-06  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c:
 | 
						|
	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
 | 
						|
 | 
						|
	* src/filter.c (filter_domain):
 | 
						|
	Removed code which stripped of a port number from the host name.
 | 
						|
	The "host" variable will _always_ be just the name by the time
 | 
						|
	filter_domain() is called.
 | 
						|
 | 
						|
	* src/tinyproxy.c (display_usage):
 | 
						|
	Added a message indicating whether transparent proxy support has
 | 
						|
	been compiled in.
 | 
						|
 | 
						|
	* configure.ac:
 | 
						|
	Added the "--enable-transparent-proxy" flag and moved the
 | 
						|
	AH_TEMPLATE() macros to _outside_ the "if" tests.
 | 
						|
 | 
						|
	* src/grammar.y:
 | 
						|
	Added a warning message to the Bind directive stating that it will
 | 
						|
	be ignored if "transparent proxy" has been compiled into
 | 
						|
	tinyproxy.
 | 
						|
 | 
						|
	* src/log.c (send_stored_logs):
 | 
						|
	Actually included the code to output the stored logs.  Plus, there
 | 
						|
	was a bug with how I was calling the hashmap_is_end() function.
 | 
						|
	This has now been fixed.
 | 
						|
 | 
						|
2002-06-05  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* doc/Makefile.am:
 | 
						|
	Added the "filter-howto.txt" file to the distribution.
 | 
						|
 | 
						|
	* doc/filter-howto.txt:
 | 
						|
	Added a short filtering HOWTO document from Patrick L. McGillan.
 | 
						|
 | 
						|
	* src/child.c (child_main):
 | 
						|
	Added a DEBUG call to let me know which process has accepted a
 | 
						|
	connection.  This is needed for debugging using "gdb".
 | 
						|
 | 
						|
	* src/heap.c (malloc_shared_memory):
 | 
						|
	Removed the assert() call for shared_file since it's now a static
 | 
						|
	variable.
 | 
						|
 | 
						|
	* src/acl.c (acl_string_processing):
 | 
						|
	Moved the string processing code out of check_acl() and into it's
 | 
						|
	own function because it now does two (2) tests.  If the ACL string
 | 
						|
	is a complete host name, in other words doesn't start with a
 | 
						|
	period, than a reverse DNS look-up is done on the host name and
 | 
						|
	compared to the IP address of the client; otherwise, the normal
 | 
						|
	text string comparison is done.
 | 
						|
	(check_acl): Moved the string text out of the function and removed
 | 
						|
	some logging code by jumping to the "Deny" code at the end of the
 | 
						|
	function.
 | 
						|
 | 
						|
2002-05-31  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/utils.c (create_file_safely):
 | 
						|
	Added the "truncate_file" boolean flag.  This is needed since I
 | 
						|
	use this function for both the log file and the pid file, and they
 | 
						|
	behave differently when tinyproxy is started.
 | 
						|
	(pidfile_create): Call create_file_safely() with a TRUE
 | 
						|
	"truncate_file" flag so that the file is emptied whenever the pid
 | 
						|
	file is needed.
 | 
						|
 | 
						|
	* src/tinyproxy.c:
 | 
						|
	The log file is now opened in "append" mode so that you can
 | 
						|
	restart tinyproxy without losing the log file.
 | 
						|
 | 
						|
	* src/reqs.c (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.
 | 
						|
 | 
						|
	* src/sock.c (getpeer_information):
 | 
						|
	Fixed a problem retrieving the FQDN of a host because I was
 | 
						|
	passing in an incorrect parameter to gethostbyaddr().  D'oh.
 | 
						|
 | 
						|
2002-05-29  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/heap.c (malloc_shared_memory):
 | 
						|
	Removed the MMAP_ANON and open("/dev/zero") since they are not
 | 
						|
	portable across a while enough spectrum of machines.  Right now
 | 
						|
	tinyproxy is using a "classic" temporary file method of sharing
 | 
						|
	memory.  This will likely be improved in the future.
 | 
						|
 | 
						|
	* src/child.c, src/stats.c:
 | 
						|
	Changed the tests on the return value from malloc_shared_memory()
 | 
						|
	to make tinyproxy more portable, since we can't be certain that
 | 
						|
	"if (!ret_value)" would actually detect a mmap() error.
 | 
						|
 | 
						|
	* src/reqs.c (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.
 | 
						|
 | 
						|
	* src/stats.c (init_stats):
 | 
						|
	Fixed a spelling mistake where the number of bytes being allocated
 | 
						|
	was incorrect.
 | 
						|
 | 
						|
2002-05-28  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (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 occurred.
 | 
						|
 | 
						|
	* src/reqs.c (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-27  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* doc/Makefile.am:
 | 
						|
	Fixed up a problem where the tinyproxy manual page was not getting
 | 
						|
	included with the distribution.
 | 
						|
 | 
						|
	* src/reqs.c (process_request):
 | 
						|
	Changed the filtering code around to handle both domains and URLs.
 | 
						|
 | 
						|
	* src/tinyproxy.h:
 | 
						|
	Added into the config structure the filter_urls and
 | 
						|
	filter_extended flags.
 | 
						|
 | 
						|
	* src/tinyproxy.c: Some spelling fixes.
 | 
						|
 | 
						|
	* src/sock.c (opensock):
 | 
						|
	Changed a comment around to better state what the code is actually
 | 
						|
	doing.
 | 
						|
 | 
						|
	* src/filter.c, src/filter.h:
 | 
						|
	Added a copyright for James E. Flemer since these are his changes.
 | 
						|
	(filter_init): Added code to handle both host and URLs.  Also
 | 
						|
	include code to use extended regular expressions.
 | 
						|
	(filter_domain): The old filter_url function has been renamed
 | 
						|
	filter_domain().
 | 
						|
	(filter_url): This function now actually filters complete URLs.
 | 
						|
 | 
						|
	* doc/tinyproxy.conf, src/grammar.y, src/scanner.l:
 | 
						|
	Added support for the "FilterURLs" and "FilterExtended" directives.
 | 
						|
	These directives were submitted by James Flemer for use with the new
 | 
						|
	filtering code.
 | 
						|
 | 
						|
	* configure.ac: Updated the version number (pre 1)
 | 
						|
 | 
						|
	* src/tinyproxy.c (display_license): Updated the copyright dates
 | 
						|
	(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.
 | 
						|
 | 
						|
2002-05-26  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* doc/tinyproxy.conf: Removed the "DNSserver" directives since
 | 
						|
	they're no longer needed.
 | 
						|
 | 
						|
	* configure.ac: Removed the pthread related tests and added a test
 | 
						|
	for the sys/mman.h header (needed for shared memory.)
 | 
						|
 | 
						|
	* src/Makefile.am: Removed the "dnsserver" program all together,
 | 
						|
	and changed the names of some of the files.
 | 
						|
 | 
						|
	* src/heap.c, src/heap.h: Added the malloc_shared_memory() and
 | 
						|
	calloc_shared_memory() function to allow the use of shared memory
 | 
						|
	between all the children.
 | 
						|
 | 
						|
	* src/log.h, src/reqs.c: Spelling changes (from thread to child.)
 | 
						|
 | 
						|
	* src/grammar.y, src/scanner.l: Removed the directives for the old
 | 
						|
	DNSserver process.
 | 
						|
 | 
						|
	* src/stats.c: The stats structure has been moved into a shared
 | 
						|
	memory block since it needs to be shared by all the children.
 | 
						|
 | 
						|
	* src/tinyproxy.c: Removed all the code relating to the DNS API as
 | 
						|
	it's no longer needed with the new pre-forked model.
 | 
						|
	
 | 
						|
	Updated the copyright dates.
 | 
						|
	
 | 
						|
	(main): Moved the signals around so that they are assigned to the
 | 
						|
	appropriate process level: either the parent only, or all
 | 
						|
	processes.
 | 
						|
 | 
						|
	* src/sock.c: Removed the DNS API calls and replaced them with the
 | 
						|
	standard gethostbyname() and gethostbyaddr() functions.  This is
 | 
						|
	possible because tinyproxy now uses a standard pre-forked() method.
 | 
						|
 | 
						|
	* src/common.h: Removed the "pthread" related includes.
 | 
						|
 | 
						|
	* src/thread.c, src/thread.h: No longer using a threading model;
 | 
						|
	so these files have been replaced by the child.c/child.h files, 
 | 
						|
	which use a pre-forked model.
 | 
						|
 | 
						|
	* src/dnsclient.h, src/dnsserver.c, src/dnsclient.c: I didn't like
 | 
						|
	the DNS co-process design so I changed tinyproxy from a threading
 | 
						|
	model to a standard pre-forked model.  This means I don't need the
 | 
						|
	DNS co-process files.  Gone.
 | 
						|
 | 
						|
	* src/child.c, src/child.h: Changed from using a threading model
 | 
						|
	to a standard pre-forked model.  Therefore the thread.c file has
 | 
						|
	been removed and this file replaces it.  These files are really
 | 
						|
	just the thread.c and thread.h files with all the threading stuff
 | 
						|
	replaced with fork() code.  Most of the code is identical.
 | 
						|
 | 
						|
2002-05-24  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/buffer.c, src/conns.c, src/dnsclient.c, src/hashmap.c,
 | 
						|
	  src/reqs.c, src/stats.c, src/text.c, src/thread.c,
 | 
						|
	  src/tinyproxy.c, src/utils.c, src/vector.c: Fixed a tonne of
 | 
						|
	spelling mistakes.
 | 
						|
 | 
						|
	* src/sock.c: Fixed some spelling mistakes, and removed the
 | 
						|
	getpeer_ip() and getpeer_string() functions as they've been
 | 
						|
	replaced by the getpeer_information() function.
 | 
						|
 | 
						|
2002-05-23  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/dnsserver.c: The DNS resolver for use by the various
 | 
						|
	tinyproxy threads.  The DNS resolver was moved into a separate
 | 
						|
	function to prevent the blocking problem the 1.4.x and 1.5.0
 | 
						|
	versions experienced when a DNS query would take a long time to
 | 
						|
	return.  While the query was blocking, other threads could not
 | 
						|
	establish their own queries, so they all blocked.  Not so good.
 | 
						|
 | 
						|
	* src/dnsclient.c: Introduce the new "dnsserver" API.  These
 | 
						|
	functions are the client side access points.
 | 
						|
 | 
						|
	* src/utils.c: Moved most of the code into separate files.  The
 | 
						|
	debugging heap related code is now in heap.c; the text string code
 | 
						|
	is in text.c; and, the daemon related code is in daemon.c.
 | 
						|
 | 
						|
	* src/tinyproxy.h: Moved all the system header include code into
 | 
						|
	the "common.h" file.
 | 
						|
 | 
						|
	* src/tinyproxy.c (takesig): Added a signal handler for the
 | 
						|
	SIGCHLD signals since a child process is spawned to handle the
 | 
						|
	"dnsserver" process.
 | 
						|
	(main): Added code to start and stop the "dnsserver" process.
 | 
						|
	Switched the signal setup function to the new portable
 | 
						|
	set_signal_handler() function.  Include a test to make sure the
 | 
						|
	two "dnsserver" directives are set.
 | 
						|
 | 
						|
	* src/sock.c (lookup_domain): Rewrote the function to use the new
 | 
						|
	"dnsserver" API.  This removes the need for the pthread mutex.
 | 
						|
	(getpeer_information): Replaced the two calls to getpeer_ip() and
 | 
						|
	getpeer_string() with one call to this function.  Streamlines the
 | 
						|
	peer information retrieval.
 | 
						|
	
 | 
						|
	Moved the safe_write(), safe_read(), readline(), write_message()
 | 
						|
	functions into a separate file: network.c
 | 
						|
 | 
						|
	* src/reqs.c (process_request): Fixed a spelling mistake.
 | 
						|
	(add_xtinyproxy_header): The peer information is stored in the
 | 
						|
	connection, so removed the call to query it again.
 | 
						|
	(handle_connection): Pass the peer socket's information into the
 | 
						|
	connection structure for later use.
 | 
						|
 | 
						|
	* src/grammar.y:
 | 
						|
	* src/scanner.l: Added the "DNSserverLocation" and
 | 
						|
	"DNSserverSocket" directives as they are required to properly run
 | 
						|
	the "dnsserver" DNS resolver.
 | 
						|
 | 
						|
	* src/conns.c (initialize_conn): Added the peer's IP
 | 
						|
	dotted-decimal address and hostname to the connection structure.
 | 
						|
	It's faster to get the information _once_ and just store it for
 | 
						|
	later use.
 | 
						|
 | 
						|
	* src/buffer.c (add_to_buffer): Changed the code to make the order
 | 
						|
	of insertion into the linked list explicit.  I'm not sure if this
 | 
						|
	fixes a bug or not, but clarity is alway nice.
 | 
						|
 | 
						|
2002-05-13  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/buffer.h: Moved the definition of the buffer_s structure.
 | 
						|
	Data hiding is a good thing.  Also, replaced the BUFFER_SIZE
 | 
						|
	macro with a buffer_size() function.
 | 
						|
 | 
						|
	* src/vector.c: Added the "tail" pointer to make insertions more
 | 
						|
	efficient.
 | 
						|
 | 
						|
	* src/hashmap.c (hashmap_insert): Fixed a potential SEGFAULT if
 | 
						|
	the memory for the new hashmap entry could not be allocated.
 | 
						|
	(hashmap_remove): Fixed a problem where an entry could have it's
 | 
						|
	"prev" pointer still pointing at freed memory.  Thanks to Justin
 | 
						|
	Guyett for finding and fixing this problem.
 | 
						|
	(hashmap_insert): Thanks to Justin Guyett for changing the code to
 | 
						|
	use a constant time insert.  Much cleaner _and_ faster.
 | 
						|
 | 
						|
2002-05-10  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* Makefile.am (install-data-local): Fixed up the tinyproxy.conf
 | 
						|
	test so that the file is only installed if it doesn't already
 | 
						|
	exist.
 | 
						|
 | 
						|
2002-05-09  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.5.0 (2002-05-09)
 | 
						|
 | 
						|
2002-05-08  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac: The --with-config option now supports absolute
 | 
						|
	paths.  If an absolute path is given, the full directory path and
 | 
						|
	file name are extracted into their appropriate parts.
 | 
						|
 | 
						|
2002-05-07  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (connect_to_tunnel): Removed request logging code in
 | 
						|
	the tunnel method since it breaks the "tunnel" concept.
 | 
						|
 | 
						|
2002-05-02  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac: Added code to figure out exactly where to install
 | 
						|
	the configuration file.
 | 
						|
 | 
						|
	* Makefile.am (install-data-local): Added a new install run to
 | 
						|
	install the configuration file to the location specified in
 | 
						|
	DEFAULT_CONF_FILE.
 | 
						|
 | 
						|
2002-04-28  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers):
 | 
						|
	(process_server_headers): Added more error checking code and
 | 
						|
	send HTTP errors back to the client to let them know what is
 | 
						|
	happening.
 | 
						|
	(handle_connection): If there was a server error when processing
 | 
						|
	the headers, send an error back to the client.
 | 
						|
 | 
						|
2002-04-27  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_pool_create): Set the thread's status
 | 
						|
	_before_ the thread is created.  Thanks to Hans-Georg Bork for
 | 
						|
	solving this problem.  
 | 
						|
	(thread_main): Fixed up the status setting code.  Removed
 | 
						|
	duplicated code and explicitly set the status when needed.
 | 
						|
 | 
						|
	Fixed up all the code checking the return value from the pthread
 | 
						|
	functions.  These functions return 0 if OK, but a _positive_ error
 | 
						|
	code.
 | 
						|
 | 
						|
2002-04-26  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c: servers_waiting needs to be signed, since it can
 | 
						|
	go below 0 without causing a problem, but if it wraps around all
 | 
						|
	hell can break loose.
 | 
						|
 | 
						|
	* src/reqs.c (connect_to_tunnel): Changed the len type to an
 | 
						|
	signed integer so that we can detect error conditions.  Thanks to
 | 
						|
	Tom Cross for pointing out this problem.
 | 
						|
 | 
						|
	* src/log.c (send_stored_logs): Check the return value of
 | 
						|
	hashmap_first() since it could be -1, indicating an empty hashmap.
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers):
 | 
						|
	(process_server_headers): Test the return value of hashmap_first()
 | 
						|
	since the hashmap could be empty (returning a -1 via hashmap_first.)
 | 
						|
 | 
						|
2002-04-25  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (remove_connection_headers): Handle both the
 | 
						|
	Connection header _and_ the Proxy-Connection header.
 | 
						|
	(free_request_struct): Check to see if request->path is actually
 | 
						|
	allocated before trying to delete it.
 | 
						|
 | 
						|
	* src/hashmap.c: The hashmap will now handle multiple keys with
 | 
						|
	the same value.  This change was need because some sites like
 | 
						|
	Yahoo will send out multiple "Set-Cookie" lines.  The
 | 
						|
	hashmap_keys() function has been removed and has been replaced
 | 
						|
	with the iterator concept.  Also, a few of the functions have had
 | 
						|
	either their arguments changed, or their return type.  Read the
 | 
						|
	comments in the header file for more information.
 | 
						|
 | 
						|
2002-04-22  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c: Renamed the LOCKing macros and added debugging
 | 
						|
	asserts to them.  Also, moved the mutex initialization into the
 | 
						|
	thread_pool_create() function since I would like to use an error
 | 
						|
	checking mutex, but my machine doesn't seem to work with it.  I
 | 
						|
	left the code there in case I can get it to work later.
 | 
						|
 | 
						|
	* src/log.c (send_stored_logs): Added this function since the
 | 
						|
	log_message() function will now stored the messages if the config
 | 
						|
	file has not been processed yet.  This function is called from
 | 
						|
	within main() to output the messages to the log file _after_ it's
 | 
						|
	been initialized.
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers): Added the
 | 
						|
	"Proxy-Connection" header to the list of client headers we don't
 | 
						|
	forward to the remote machine.
 | 
						|
 | 
						|
	Added the the "Bind" directive.  This is used to indicate which IP
 | 
						|
	address in a multi-homed machine you would like tinyproxy to bind
 | 
						|
	out-going connections to.  This complements the "Listen" directive
 | 
						|
	for incoming connections.
 | 
						|
 | 
						|
2002-04-18  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (lookup_domain): Removed the call to inet_aton()
 | 
						|
	since the gethostbyname() will handle the dotted-decimal case
 | 
						|
	anyway.
 | 
						|
 | 
						|
	* src/reqs.c: Added a new show_stats field in the conn_s structure
 | 
						|
	so that we will process the client's headers properly before
 | 
						|
	trying to send a HTTP response back.
 | 
						|
 | 
						|
	* src/sock.c (getpeer_string): Removed the hstrerror() call since
 | 
						|
	it's not supported on all machines, and it's not really needed
 | 
						|
	anyway.
 | 
						|
 | 
						|
	* src/vector.c:
 | 
						|
	* src/hashmap.c: Changed all calls to malloc, calloc, free, and
 | 
						|
	strdup to the appropriate safe variety.
 | 
						|
	(hashmap_delete): Fixed a memory leak where the maps were not
 | 
						|
	being freed properly.
 | 
						|
 | 
						|
	* src/utils.c (debugging_strdup): Added this function to be used
 | 
						|
	by the safestrdup() macro to replace all the calls to strdup().
 | 
						|
	This should allow better tracking of the memory usage.
 | 
						|
	Also, all the debugging_* functions have had asserts added to them
 | 
						|
	to hopefully improve the quality of the code.
 | 
						|
 | 
						|
	* src/reqs.c (get_all_headers): Fixed a memory leak since I was
 | 
						|
	not freeing the header variable, even though the hashmap makes a
 | 
						|
	copy of it.  Thanks to Petr Lampa for finding this one.
 | 
						|
 | 
						|
	* src/tinyproxy.c (takesig): Moved the filter_destroy() code out
 | 
						|
	of the signal handler and placed it inside of main().  Same
 | 
						|
	reasoning as the rotate_log_files() changes below.
 | 
						|
 | 
						|
	* src/utils.c (rotate_log_files): Moved the log rotation code out
 | 
						|
	of the signal handler and into it's own function.  Also improved
 | 
						|
	the robustness of the code.  Credit to Petr Lampa for suggesting
 | 
						|
	that system calls in a signal handler is bad magic.  Now the
 | 
						|
	signal handler sets a flag which is responded to inside of
 | 
						|
	thread_main_loop().
 | 
						|
 | 
						|
2002-04-17  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac: Added test for pthread_cancel() since it doesn't
 | 
						|
	seem to be available on every platform, even if the rest of
 | 
						|
	pthread is.  Thanks to Daniel Flemming and Petr Lampa for
 | 
						|
	reporting this problem.
 | 
						|
 | 
						|
	* src/sock.c (lookup_domain): Removed the LOOKUP_LOCK() and
 | 
						|
	LOOKUP_UNLOCK() macros and replaced them with calls the LOCK() and
 | 
						|
	UNLOCK().  The reason for this change is that I can not be sure
 | 
						|
	that calls to gethostbyname() and gethostbyaddr() will not
 | 
						|
	over-write the same static block of memory.  Potential problem
 | 
						|
	pointed out by Petr Lampa.
 | 
						|
 | 
						|
	* src/reqs.c (handle_connection): If the initialize_conn()
 | 
						|
	function fails, we need to close the socket.
 | 
						|
 | 
						|
	* src/acl.c (check_acl): Changed the code to accept the peer IP
 | 
						|
	address and string address from the calling function (in this case
 | 
						|
	handle_connection.)
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Removed close(connfd) since it has
 | 
						|
	already been closed from within handle_connection(). Thanks to
 | 
						|
	Petr Lampa for spotting this.
 | 
						|
	(thread_pool_create): Added test to make sure pthread_create()
 | 
						|
	succeeds, and returns -1 if all the threads could not be created.
 | 
						|
	(thread_main_loop): Added test to determine if the
 | 
						|
	pthread_create() call succeeded.  Warns the admin if there was a
 | 
						|
	problem, but tinyproxy will continue to run.
 | 
						|
 | 
						|
2002-04-15  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/anonymous.c (anonymous_insert): Now returns -1 upon error,
 | 
						|
	and 0 upon success.  This simplified the code, since I don't care
 | 
						|
	whether the success is from a successful insert, or because the
 | 
						|
	string was already present in the hashmap.
 | 
						|
	(anonymous_search): The function now returns a positive number
 | 
						|
	greater than zero if the string was found, otherwise zero or a
 | 
						|
	negative value is returned.  Needed to change the _one_ call to
 | 
						|
	this function to use the new return method.
 | 
						|
 | 
						|
	* src/reqs.c (pull_client_data): Moved the common error exit
 | 
						|
	together.  Better, smaller code is produced.
 | 
						|
	(add_header_to_connection): Changed the code a bit to remove the
 | 
						|
	call to strlen() and the variable associated with it.
 | 
						|
	(establish_http_connection): Changed the three calls to
 | 
						|
	write_message() and safe_write() into one combined call to
 | 
						|
	write_message().
 | 
						|
	(send_ssl_response): Replaced the three calls to safe_write() into
 | 
						|
	one call to write_message().
 | 
						|
	(extract_http_url): Moved the common error code into it's own
 | 
						|
	section and jump to it upon error.
 | 
						|
 | 
						|
2002-04-14  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/utils.c (chomp): Added an assert to detect a design error.
 | 
						|
 | 
						|
	* src/reqs.c (read_request_line): Fixed the return type to be an
 | 
						|
	signed variable, so that we preserve a negative return value
 | 
						|
	upon an error.
 | 
						|
 | 
						|
	* src/sock.c (readline): Added a test for allocating enough memory
 | 
						|
	for the whole_buffer.
 | 
						|
 | 
						|
	* src/conns.h: Replaced the error boolean with a pointer to an
 | 
						|
	error string and error number for use in the
 | 
						|
	send_http_error_message() function.
 | 
						|
 | 
						|
	* src/utils.c (indicate_http_error): Replaced the httperr()
 | 
						|
	function with this one.  Instead of sending the error right away,
 | 
						|
	we store the error string and number and send them _after_ the
 | 
						|
	client headers have been processed.
 | 
						|
 | 
						|
2002-04-13  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (opensock): If the Listen directive is in use, then
 | 
						|
	we should bind outgoing address to this address.
 | 
						|
	(listen_sock): Added error handling for the bind() and listen()
 | 
						|
	calls when setting up the listening socket.
 | 
						|
 | 
						|
2002-04-12  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/scanner.l:
 | 
						|
	* src/grammar.y: Added code for the ConnectPort directive.
 | 
						|
 | 
						|
	* src/reqs.c (add_connect_port_allowed):
 | 
						|
	(check_allowed_connect_ports): Added these two functions (breaking
 | 
						|
	by no new features rule) because they fix a security problem with
 | 
						|
	tinyproxy.  These functions are needed to support the ConnectPort
 | 
						|
	configuration directives, which allows the admin to specify which
 | 
						|
	ports are allowed by a CONNECT method.  This is needed to prevent
 | 
						|
	people from using tinyproxy to connect to mail servers (port 25)
 | 
						|
	to do "bad things."
 | 
						|
 | 
						|
2002-04-11  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (remove_connection_headers): Moved all the code for
 | 
						|
	detecting and removing headers based on the Connection header into
 | 
						|
	this function.
 | 
						|
	(get_content_length): Moved the check for a Content-Length value
 | 
						|
	into it's own function.
 | 
						|
	(process_client_headers): Changed the code to use the newer
 | 
						|
	remove_connection_headers() and get_content_length() functions.
 | 
						|
	(process_server_headers): Rewrote this function to handle the
 | 
						|
	headers in a more consistent manner.  The connection header is
 | 
						|
	handled correctly, and the content-length header is stored for
 | 
						|
	later use.  Also, include a list of headers to not send.
 | 
						|
	(relay_connection): Added a test to use the
 | 
						|
	connptr->remote_content_length value if it's present.
 | 
						|
	(write_via_header): Moved the creation/modification of the Via
 | 
						|
	header into it's own function since it's used by both
 | 
						|
	process_client_headers() and process_server_headers().  I still
 | 
						|
	need to add code to allow you to "hide" the host information if
 | 
						|
	you so choose.
 | 
						|
 | 
						|
	* src/conns.c: Added the remote_content_length variable to hold
 | 
						|
	the number of bytes the remove server is _supposed_ to send to
 | 
						|
	us.  This fixes a problem where the remote server doesn't close
 | 
						|
	the connection after sending the body.  Problem was reported by
 | 
						|
	James Flemer.
 | 
						|
 | 
						|
2002-04-10  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/Makefile.am: Removed the dependency on LIBOBJS and instead
 | 
						|
	replaced it with an ADDITIONAL_OBJECTS variable defined within the
 | 
						|
	configure script.  This allows greater control over what is
 | 
						|
	compiled.
 | 
						|
 | 
						|
	* configure.ac: Removed the AC_FUNC_LSTAT macro since it wants to
 | 
						|
	add lstat.o onto some machines.  I don't think the test was really
 | 
						|
	needed anyway, so it's better to have it gone.
 | 
						|
 | 
						|
2002-04-09  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/anonymous.c: Changed this module to use the hashmap module
 | 
						|
	instead of it's own internal linked list.  Common code is good. :)
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers): Fixed the XTINYPROXY_ENABLE
 | 
						|
	section to actually check if xtinyproxy has been configured.
 | 
						|
	(compare_headers): Removed this function since it's been replaced
 | 
						|
	by a call to anonymous_search().
 | 
						|
 | 
						|
	* src/acl.c (make_netmask): James Flemer cleaned up the
 | 
						|
	make_netmask() function to remove the big static table.  Much
 | 
						|
	nicer now.
 | 
						|
 | 
						|
	* configure.ac: The configure script now doesn't include a check
 | 
						|
	for the malloc.h header if tinyproxy is being compiled on an
 | 
						|
	OpenBSD machine.  I might actually just remove the malloc.h header
 | 
						|
	since the malloc/calloc/realloc/free functions are supposed to be
 | 
						|
	in the stdlib.h header.  I also changed the LIBOBJS="" lines to
 | 
						|
	AC_LIBOBJ() macro so conform to the new Autoconf rules.
 | 
						|
 | 
						|
	* src/hashmap.c:
 | 
						|
	* src/vector.c: Cleaned up the include headers to _hopefully_ be
 | 
						|
	more portable.  Who knows though.
 | 
						|
 | 
						|
2002-04-08  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_main_loop): Moved the looping code into
 | 
						|
	this function from the main() function.  Just a bit of clean up.
 | 
						|
	(thread_main): Changed the default cancellation point to
 | 
						|
	asynchronous, which means immediately.  This should fix up the
 | 
						|
	problem where the threads would not free correctly.
 | 
						|
 | 
						|
2002-04-07  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/hashmap.c:
 | 
						|
	* src/vector.c: These two "modules" are used within the reqs.c
 | 
						|
	file to better handle the headers from the clients.
 | 
						|
 | 
						|
	* src/reqs.c: Tonnes of functions changed.  The most significant
 | 
						|
	is the process_client_header() function which is now using the
 | 
						|
	hashmap functions to handle the Connection header more
 | 
						|
	accurately.  With the addition of the add_header_to_connection(),
 | 
						|
	get_all_headers(), and remove_connection_headers() function, the
 | 
						|
	compare_header() function is _vastly_ simplified.  Just read the
 | 
						|
	comments in the source itself for more information.
 | 
						|
 | 
						|
	* src/conns.c: Cleaned up the initialize_conn and destroy_conn
 | 
						|
	functions to better handle error conditions.
 | 
						|
 | 
						|
2002-04-02  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac: Patch from James Flamer which fixes a problem with
 | 
						|
	the --disable-* options and also prevents -lc_r from being
 | 
						|
	included on FreeBSD machines.
 | 
						|
 | 
						|
2002-01-13  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_kill_threads): Added a function to
 | 
						|
	explicitly go through all the active threads and kill them.
 | 
						|
 | 
						|
2002-01-07  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Added code to check if tinyproxy is
 | 
						|
	being killed by the user.
 | 
						|
 | 
						|
2001-12-28  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Added code to detect errors in the
 | 
						|
	accept() function.
 | 
						|
 | 
						|
2001-12-23  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/utils.c (send_http_message): Use the write_message()
 | 
						|
	function for creating and sending the headers to the client.
 | 
						|
	(httperr): Use similar code to write_message() to create the body
 | 
						|
	of the error message. I use this so that there is no limit to the
 | 
						|
	size of the error message (better coding. :) I'm still trying to
 | 
						|
	figure out how to combine this code with write_message() into a
 | 
						|
	common function.
 | 
						|
 | 
						|
	* src/sock.c (write_message): Moved write_message() into sock.c
 | 
						|
	since it's now accessed by more than just the reqs.c file.
 | 
						|
 | 
						|
	* src/tinyproxy.c (main): Made the error log for the idle time
 | 
						|
	setting more verbose so that it's explains the reasoning
 | 
						|
	better. Also, changed the level to WARNING.
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers): Cleaned up the code to send
 | 
						|
	the Via header by using the write_message() function.
 | 
						|
 | 
						|
2001-12-22  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/tinyproxy.h: Add a test for the MSG_NOSIGNAL define, so it's
 | 
						|
	apparently a non-standard extension to send(). Also, moved the
 | 
						|
	<sys/resource.h> include after the includes for the various time
 | 
						|
	include files.
 | 
						|
 | 
						|
2001-12-19  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (write_message): Encapsulate code to handle sending
 | 
						|
	snprintf() built lines to a file descriptor.
 | 
						|
	(process_server_headers): Removed duplicate code and used the
 | 
						|
	return value from readline() instead of recalculating it by
 | 
						|
	strlen().
 | 
						|
 | 
						|
2001-12-18  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (connect_to_tunnel): Moved the tunnel connection code
 | 
						|
	into its own function.
 | 
						|
	(TUNNEL_CONFIGURED): Added a macro to help simplify the tests for
 | 
						|
	tunneling support.
 | 
						|
 | 
						|
2001-12-17  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (handle_connection): Also log the request when
 | 
						|
	tinyproxy is in tunneling mode. This was implemented by
 | 
						|
	Hans-Georg Bork.
 | 
						|
 | 
						|
2001-12-16  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (safe_write): Add assert() calls to make sure the
 | 
						|
	arguments are sane.
 | 
						|
 | 
						|
	* src/reqs.c (read_request_line): Ignore any blank lines if
 | 
						|
	tinyproxy is expecting a request line. This is suggested by
 | 
						|
	RFC2616 for a tolerant application.
 | 
						|
	(UPSTREAM_CONFIGURED): Added a macro to encapsulate the test for
 | 
						|
	upstream proxy support.
 | 
						|
	(establish_http_connection): Lines are now composed in a buffer
 | 
						|
	and then sent to the safe_write() function. This was done because
 | 
						|
	some sites (like www.heise.de) do not like having the request
 | 
						|
	line sent in pieces.
 | 
						|
 | 
						|
2001-12-15  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (safe_write): In addition to handling "interruption"
 | 
						|
	errors, continue sending the buffer until it has been fully sent
 | 
						|
	or a fatal error occurred.
 | 
						|
 | 
						|
	* src/anonymous.c: Removed the calls to the ternary tree and just
 | 
						|
	use a basic linked list. The ternary tree might have been slightly
 | 
						|
	faster, but since tinyproxy is only dealing with a "few" anonymous
 | 
						|
	headers the ternary tree code was _way_ overkill.
 | 
						|
 | 
						|
	* src/sock.c (lookup_domain): Removed the DNS cache since
 | 
						|
	according to RFC2616 a HTTP client should not cache an address if
 | 
						|
	the client doesn't also respect the TTL value. tinyproxy does not
 | 
						|
	have a complete DNS resolver. Additionally, a caching DNS system
 | 
						|
	is an administrator decision which should not be included in
 | 
						|
	tinyproxy.
 | 
						|
 | 
						|
2001-11-25  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/buffer.c (makenewline): This function now copies the actual
 | 
						|
	data itself. This means any malloc() and free() functions are
 | 
						|
	closer together, instead of malloc()ing the data and then not
 | 
						|
	free()ing it.
 | 
						|
	(add_to_buffer): Add a new "line" to the buffer. I'm trying to
 | 
						|
	have more of the data go through the buffering code. Basically the
 | 
						|
	safe_write() function should only be called when the data needs to
 | 
						|
	be sent _now_.
 | 
						|
	(read_buffer): Fixed the code so that buffering _actually_
 | 
						|
	happens. :) The code will now buffer up to MAXBUFFSIZE bytes
 | 
						|
	(which is currently 48 KB.)
 | 
						|
 | 
						|
2001-11-24  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.ac: Changed the extension of the configure.in to match
 | 
						|
	the new standard for the autoconf program. Also, replaced all the
 | 
						|
	obsolete macros with the new standard. autoconf 2.52 is now the
 | 
						|
	minimum required to process this file.
 | 
						|
 | 
						|
2001-11-23  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (readline): Limit the maximum size of the buffer so
 | 
						|
	that we don't create a situation where tinyproxy could use all the
 | 
						|
	memory in a system. Right now we're limiting a line to a maximum
 | 
						|
	of 128KB.
 | 
						|
 | 
						|
2001-11-21  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.3 (2001-11-21)
 | 
						|
 | 
						|
	* src/utils.c (chomp): Replaced the "trim()" function in reqs.c
 | 
						|
	with the new chomp() function which has similar semantics as the
 | 
						|
	chomp() function in Perl.
 | 
						|
 | 
						|
	* src/sock.c (readline): Replaced the old function with a new
 | 
						|
	version that will allow an arbitrary long string.
 | 
						|
 | 
						|
2001-11-03  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/buffer.c (remove_from_buffer): This function is never
 | 
						|
	called with an empty buffer, so removed some inaccurate code which
 | 
						|
	would have removed an invalid line from the buffer if it was
 | 
						|
	empty. What was I thinking when I wrote that? Good thing is was
 | 
						|
	never called.
 | 
						|
	(add_to_buffer): Add a bit of a sanity check to make sure the
 | 
						|
	buffer structure hasn't been messed up some how.
 | 
						|
 | 
						|
2001-11-02  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/acl.c (insert_acl): Tightened the check regarding whether an
 | 
						|
	ACL is a string or a numeric address.
 | 
						|
 | 
						|
2001-10-25  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* Moved all the system header included into the tinyproxy.h header
 | 
						|
	and changed all the other files to include it. This should
 | 
						|
	centralize the header dependency issue into one file.
 | 
						|
 | 
						|
	* src/conns.c: Brought back the conns.{c,h} files which contain
 | 
						|
	the connection structure definition plus the creation/destruction
 | 
						|
	routines.
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers): Selectively send headers
 | 
						|
	based on whether we're using an upstream with a CONNECT
 | 
						|
	request. The short answer: all methods work correctly with
 | 
						|
	Upstream proxying and normal proxying.
 | 
						|
 | 
						|
	* src/tinyproxy.h: Added a upstream flag to the conn_s structure
 | 
						|
	so we can figure out when to send headers and when not to send
 | 
						|
	headers. This is extremely important when trying to do upstream
 | 
						|
	proxying of the CONNECT method.
 | 
						|
 | 
						|
	* src/reqs.c (relay_connection): Empty the contents of both
 | 
						|
	buffers when either socket is closed. This is more in line with
 | 
						|
	what a tunnel should do. Since either end could close with
 | 
						|
	information still in the buffers.
 | 
						|
	(connect_to_upstream): Cleaned up the code to re-use the
 | 
						|
	establish_http_connection() function.
 | 
						|
 | 
						|
	* src/buffer.c (readbuff): Changed the memory allocation to 2K
 | 
						|
	from 48K since an Ethernet connection is usually around 1400
 | 
						|
	bytes. There's little point in allocating a huge amount of memory,
 | 
						|
	only to shrink the memory map in the next breath.
 | 
						|
 | 
						|
2001-10-22  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/sock.c (getpeer_string): Added logging in case the
 | 
						|
	gethostbyaddr() function fails.
 | 
						|
 | 
						|
	* src/reqs.c (free_request_struct): Added a test to return if the
 | 
						|
	pointer is NULL.
 | 
						|
	(handle_connection): Cleaned up the code to better handle the
 | 
						|
	cause where the request is NULL.
 | 
						|
 | 
						|
	* src/sock.c (getpeer_string):
 | 
						|
	* src/sock.c (getpeer_ip): When the DNS lookup fails, we need to
 | 
						|
	initialized the user's buffer to an empty string; otherwise, the
 | 
						|
	user's buffer will contain garbage and cause a SEGFAULT. Thanks to
 | 
						|
	Jeffrey Wheelhouse for finding this bug.
 | 
						|
 | 
						|
2001-10-18  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (connect_to_upstream): Moved the code needed to
 | 
						|
	rebuild the request line when using the upstream feature into it's
 | 
						|
	own function. Simplifies the handle_connection() function.
 | 
						|
 | 
						|
	* src/buffer.c (readbuff): Fixed a problem where a full buffer
 | 
						|
	would cause the connection to be closed. Thanks to Jeffrey
 | 
						|
	Wheelhouse for helping me find this problem.
 | 
						|
 | 
						|
2001-09-29  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.in: Uses any CFLAGS variable passed to the configure
 | 
						|
	script. Also, '-g -Wall' is _not_ enabled unless debugging support
 | 
						|
	is compiled in. Use --enable-static to compile a statically linked
 | 
						|
	tinyproxy.
 | 
						|
 | 
						|
2001-09-16  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/tinyproxy.c (main): Don't allow Tunnel and Upstream
 | 
						|
	directives to be both set in the configuration file.
 | 
						|
 | 
						|
	* src/reqs.c (handle_connection): Added support for an upstream
 | 
						|
	proxy. What we used to use for our upstream proxy has now become a
 | 
						|
	TCP tunnel. The difference is that the upstream proxy will do
 | 
						|
	domain filtering, anonymous headers, etc. while the TCP tunnel
 | 
						|
	just sends the data without any processing. You can not have both
 | 
						|
	at the same time.
 | 
						|
 | 
						|
	* src/utils.c (send_http_message): Instead of creating a block of
 | 
						|
	memory with the output message, just send it to the client. We
 | 
						|
	still need to process the various headers from the client, but it
 | 
						|
	will pick up the error when it's done talking to the proxy. Uses
 | 
						|
	less memory.
 | 
						|
 | 
						|
	* src/sock.c: Moved safe_write() and safe_read() into sock.c since
 | 
						|
	I'm using them in more than just reqs.c.
 | 
						|
 | 
						|
2001-09-15  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* Removed all the log_message()s which reported that memory could
 | 
						|
	not be allocated. There's little point in reporting a memory
 | 
						|
	shortage since the computer will probably crash soon anyway.
 | 
						|
 | 
						|
	* src/reqs.c (process_request): Added the code for showing the
 | 
						|
	stats back into the function.
 | 
						|
 | 
						|
	* src/tinyproxy.c (takesig): When SIGHUP is received the log file
 | 
						|
	is rotated instead of being truncated. The rotated log has ".rot"
 | 
						|
	appended to the file name.
 | 
						|
 | 
						|
2001-09-14  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/uri.c: Removed this file since it's no longer needed.
 | 
						|
 | 
						|
	* src/reqs.c: Split the process_method() function into separate
 | 
						|
	smaller functions. Added support for tunnel SSL connections.
 | 
						|
 | 
						|
	* src/tinyproxy.h: Added a field to handle SSL connections.
 | 
						|
 | 
						|
2001-09-11  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/reqs.c (process_method): Fixed a memory leak due to the
 | 
						|
	change to heap allocation if there is an error.
 | 
						|
 | 
						|
	* src/utils.c (debugging_realloc): Added the debugging version of
 | 
						|
	realloc().
 | 
						|
 | 
						|
	* src/thread.c (THREAD_STACK_SIZE): Changed a threads stack size
 | 
						|
	to 32KB from 128KB.
 | 
						|
 | 
						|
	* src/reqs.c (process_method):
 | 
						|
	* src/reqs.c (pull_client_data):
 | 
						|
	* src/reqs.c (process_client_headers):
 | 
						|
	* src/reqs.c (process_server_headers):
 | 
						|
	* src/buffer.c (readbuff): Using heap allocated memory for the
 | 
						|
	buffer rather than stack memory.
 | 
						|
 | 
						|
	* src/uri.c (explode_uri): Fixed a potential memory leak where the
 | 
						|
	regular expression structure might not be freed if there was an
 | 
						|
	error in the expression.
 | 
						|
 | 
						|
2001-09-08  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/ternary.c (BUFARRAY & BUFSIZE): Lowered the values to help
 | 
						|
	lower memory usage. A ternary tree will now max out at 4MB.
 | 
						|
 | 
						|
	* src/utils.c: Added debugging_(malloc|calloc|free) to help track
 | 
						|
	down memory leaks.
 | 
						|
 | 
						|
	* src/dnscache.c (DNS_INSERT_LIMIT): Lower the number of
 | 
						|
	insertions before the ternary tree is rebuilt.
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Fixed a memory leak.
 | 
						|
 | 
						|
2001-09-07  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_pool_create): Explicitly set the detach
 | 
						|
	state for threads to PTHREAD_CREATE_DETACHED.
 | 
						|
 | 
						|
	* Various error message clean up.
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Add locking around the
 | 
						|
	servers_waiting thread.
 | 
						|
 | 
						|
2001-09-06  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_main): The code which closes a thread
 | 
						|
	doesn't actually work correct so I've moved the test to just after
 | 
						|
	a thread has handled a connection. The code still needs to be
 | 
						|
	cleaned up to handle locking.
 | 
						|
 | 
						|
	* src/ternary.c (ternary_destroy): Fixed the deletion code as it
 | 
						|
	would cause a segfault if it was every called. Also, lowered the
 | 
						|
	sizes of the arrays for better memory usage.
 | 
						|
 | 
						|
	* src/dnscache.c: After a certain number of insertions delete the
 | 
						|
	DNS cache and free the memory. The reason for this is that a
 | 
						|
	ternary tree doesn't lend itself to removing individual
 | 
						|
	entries. It's just easier (and cleaner) to simply delete the cache.
 | 
						|
 | 
						|
2001-09-04  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.2.2 (2001-09-04)
 | 
						|
 | 
						|
	* src/reqs.c (process_client_headers): Moved the skip header test
 | 
						|
	in front of the compare_header() function.
 | 
						|
 | 
						|
	* src/ternary.c (ternary_search): Switched to doing case
 | 
						|
	insensitive searching.
 | 
						|
 | 
						|
	* src/log.c (log_message): Thanks to NeilK for finding and fixing
 | 
						|
	a problem with the syslog code which can lead to a format string
 | 
						|
	attack.
 | 
						|
 | 
						|
2001-08-30  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/dnscache.c: Removed the insert_data() function and replaced
 | 
						|
	the "replace" logic in dns_insert() with a call to
 | 
						|
	ternary_replace(). This fixes the segmentation fault problem which
 | 
						|
	I introduced when I "tried" to fix the memory leak. Also changed
 | 
						|
	the LOCKing to be around the entire dnscache() again since I still
 | 
						|
	need to work out how locking should be done when accessing the
 | 
						|
	ternary tree.
 | 
						|
 | 
						|
	* src/ternary.c (ternary_insert_replace): Renamed ternary_insert()
 | 
						|
	to ternary_insert_replace() and added a extra argument. The
 | 
						|
	function can now "replace" data already in the tree without
 | 
						|
	causing a memory leak. Added two DEFINES to make coding easier:
 | 
						|
	ternary_insert() and ternary_replace() which both call this
 | 
						|
	function with the right arguments.
 | 
						|
 | 
						|
	* src/utils.c: Removed xstrstr() since it was only used in one
 | 
						|
	place, and could be safely replaced with strstr. I can't even
 | 
						|
	remember why we had this function to begin with.
 | 
						|
 | 
						|
	* src/reqs.c (compare_header): Removed the call to xstrstr() since
 | 
						|
	it's been removed from the source.
 | 
						|
 | 
						|
2001-08-29  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.2 (2001-08-29)
 | 
						|
 | 
						|
2001-08-28  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.1.5 (2001-08-28)
 | 
						|
 | 
						|
	* src/log.c (log_message): Handle a debug enabled compile better.
 | 
						|
 | 
						|
	* src/dnscache.c (dns_insert): Fixed a memory leak if the same
 | 
						|
	information was inserted into the ternary tree twice.
 | 
						|
 | 
						|
	* configure.in: Fixed the test regarding the REGEX library. Even
 | 
						|
	if a working REGEX was found on the system, the included REGEX was
 | 
						|
	being compiled in. Double Doh.
 | 
						|
 | 
						|
	* src/log.c (log_message): Finally got the log levels worked out
 | 
						|
	properly. I've tested all the levels and they now produce the
 | 
						|
	correct output.
 | 
						|
 | 
						|
2001-08-27  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.1.4 (2001-08-27)
 | 
						|
 | 
						|
	* src/reqs.c (trim): Moved the trim functionality out of
 | 
						|
	process_request() and added a test to make sure we don't back the
 | 
						|
	pointer past the beginning of the string.
 | 
						|
 | 
						|
	* src/log.c (log_message): Fixed a problem where the connect
 | 
						|
	messages were not getting through if the log level was set to
 | 
						|
	INFO.
 | 
						|
 | 
						|
	* src/tinyproxy.h: Moved some of the includes around so that
 | 
						|
	tinyproxy can compile correctly on FreeBSD systems.
 | 
						|
 | 
						|
	* src/thread.c: Added the pthread_attr_t structure since we're
 | 
						|
	going to be using a non-default sized stack because some OS's have
 | 
						|
	a stack size which is too small.
 | 
						|
 | 
						|
	* configure.in: Added a test for detecting FreeBSD's -pthread
 | 
						|
	mechanism for telling GCC to use POSIX threading.
 | 
						|
 | 
						|
	* src/utils.c (httperr): Fixed the MIME type. Should be be
 | 
						|
	text/html, not text/mime. Fix one bug, add two new ones. Sigh.
 | 
						|
 | 
						|
2001-08-26  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.1.3 (2001-08-26)
 | 
						|
	Released tinyproxy 1.4.1 (2001-08-26)
 | 
						|
 | 
						|
	* src/utils.c (httperr): Split the headers from the actual message
 | 
						|
	and include more headers like Date, Server, Content-Length,
 | 
						|
	etc. Also set the type for the error message to const char*.
 | 
						|
 | 
						|
	* src/reqs.c (process_method): Fixed a SEGV problem if an invalid
 | 
						|
	request was submitted.
 | 
						|
 | 
						|
	* Makefile.am (EXTRA_DIST): Don't include ./reconf in the
 | 
						|
	tarball.
 | 
						|
 | 
						|
	* src/log.c (log_message): Fixed a problem with the new LOG_CONN
 | 
						|
	log level.
 | 
						|
 | 
						|
	* configure.in: The debugging code was being included even on
 | 
						|
	non-debugging builds.
 | 
						|
 | 
						|
	* src/anonymous.c (anonymous_insert): Moved the creation of the
 | 
						|
	search tree into the anonymous_insert() function. Therefore, the
 | 
						|
	search tree is _not_ created until the first insertion. This
 | 
						|
	should also fix a bug in main() where I was inserting headers
 | 
						|
	before creating the search tree. Doh.
 | 
						|
	(is_anonymous_enabled): Removed the tests for config.anon and
 | 
						|
	replaced it with a function call which returns a BOOL.
 | 
						|
 | 
						|
	* Spell checked the ChangeLog file! :)
 | 
						|
 | 
						|
2001-08-25  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/thread.c (thread_main): Thanks to Hans-Georg Bork for
 | 
						|
	fixing a problem where the status of the threads was not
 | 
						|
	going back to T_WAITING if MaxRequestsPerChild was 0. Also, fixed
 | 
						|
	a problem with the looping system where the Debian
 | 
						|
	start-stop-daemon script would not stop all the threads if new
 | 
						|
	threads had been created.
 | 
						|
 | 
						|
	* src/log.h (LOG_CONN): Added the LOG_CONN log level. This is less
 | 
						|
	verbose than LOG_INFO.
 | 
						|
 | 
						|
	* doc/tinyproxy.8: Added the -l option to the list of command line
 | 
						|
	options.
 | 
						|
 | 
						|
	* src/anonymous.c (anon_insert): Fixed a bug where anonymous
 | 
						|
	filtering wasn't working even if it was specified in the
 | 
						|
	configuration file.
 | 
						|
 | 
						|
2001-07-02  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/tinyproxy.c (versiondisp): Added George Talusan to the
 | 
						|
	copyright message. Also now include the target system name to the
 | 
						|
	version message.
 | 
						|
 | 
						|
2001-06-24  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	Released tinyproxy 1.4.0 (2001-06-24)
 | 
						|
 | 
						|
2001-06-06  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.in: Total reorganization.
 | 
						|
 | 
						|
2001-06-04  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.in: Remove the --with-* for port, logfile, and user
 | 
						|
	since the configuration file handles this now. Fixed a problem
 | 
						|
	where we were testing for the libraries correctly, but not
 | 
						|
	actually including them in the linking.
 | 
						|
 | 
						|
2001-06-02  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* doc/tinyproxy.conf: Clarified the LogLevel directive.
 | 
						|
 | 
						|
	* configure.in: Fixed up the tests for libsocket, libnsl, and
 | 
						|
	libresolv. Also improved the test for the yacc program since I
 | 
						|
	used bison 1.25 to originally write it. Updated the list of
 | 
						|
	headers to look for when configuring. Bumped up the version.
 | 
						|
 | 
						|
2001-06-01  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* configure.in: Fixed a problem when using the --with-port= config
 | 
						|
 | 
						|
	* src/tinyproxy.c (main): Change the logging level from LOG_EMERG
 | 
						|
	(which doesn't exist anymore) to LOG_CRIT.
 | 
						|
 | 
						|
	* src/scanner.l: Added the strings in the data structure to handle
 | 
						|
	the LogLevel switch.
 | 
						|
 | 
						|
	* src/log.c (set_log_level): Code for handling selective logging.
 | 
						|
 | 
						|
	* src/grammar.y: Added the tokens and code for handling the
 | 
						|
	LogLevel switch in the configuration file.
 | 
						|
 | 
						|
	* configure.in: Added a test for the resolv library for the
 | 
						|
	gethostby* functions. Also bumped up the pre-version.
 | 
						|
 | 
						|
2001-05-26  Robert James Kaes  <rjkaes@flarenet.com>
 | 
						|
 | 
						|
	* src/tinyproxy.c (main): Added code to stop the creation of core
 | 
						|
	files.
 | 
						|
 | 
						|
	* src/reqs.c (process_method): Fixed a memory leak.
 | 
						|
	(relay_connection): Cleaned up the code to remove some unneeded
 | 
						|
	variables and removed redundant code.
 | 
						|
 | 
						|
	* src/log.c (log_message): Renamed "log()" function to
 | 
						|
	log_message().
 | 
						|
 | 
						|
	* src/dnscache.c (new_dnscache):
 | 
						|
	* src/anonymous.c (new_anonymous): Fixed the return type.
 | 
						|
 | 
						|
2001-03-26 00:00  rjkaes
 | 
						|
 | 
						|
	Released tinyproxy 1.3.3b (2001-03-26)
 | 
						|
 | 
						|
2001-01-17 00:00  rjkaes
 | 
						|
 | 
						|
	Released tinyproxy 1.3.3a (2001-01-17)
 | 
						|
 | 
						|
2001-01-15 12:13  rjkaes
 | 
						|
 | 
						|
	* configure.in: Bumped up the pre version number
 | 
						|
 | 
						|
2001-01-15 12:11  rjkaes
 | 
						|
 | 
						|
	* ChangeLog, src/reqs.c, src/stats.c: Fixed more potential overflow
 | 
						|
	bugs.
 | 
						|
 | 
						|
2001-01-15 12:06  rjkaes
 | 
						|
 | 
						|
	* ChangeLog, src/utils.c: Fixed a potential security bug in
 | 
						|
	http_err. There was a possibility of a heap overflow exploit.
 | 
						|
 | 
						|
2001-01-02 14:30  rjkaes
 | 
						|
 | 
						|
	* src/scanner.l: Fixed a bug where the ':' character was not being
 | 
						|
	properly detected.
 | 
						|
 | 
						|
2000-12-09 15:03  rjkaes
 | 
						|
 | 
						|
	* configure.in: Rolling out the first pre to 1.4.0
 | 
						|
 | 
						|
2000-12-08 21:35  rjkaes
 | 
						|
 | 
						|
	* src/thread.c: Implemented the MaxRequestsPerChild directive.
 | 
						|
 | 
						|
2000-12-07 22:35  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated changelog
 | 
						|
 | 
						|
2000-12-07 22:35  rjkaes
 | 
						|
 | 
						|
	* src/: thread.c, tinyproxy.c: Fixed a problem with polling for the
 | 
						|
	number of active threads. No longer polls. :)
 | 
						|
 | 
						|
2000-11-22 23:49  rjkaes
 | 
						|
 | 
						|
	* src/ternary.c: Fixed MACRO error.
 | 
						|
 | 
						|
2000-11-22 23:46  rjkaes
 | 
						|
 | 
						|
	* src/tinyproxy.c: Fixed spelling mistake.
 | 
						|
 | 
						|
2000-11-22 23:46  rjkaes
 | 
						|
 | 
						|
	* src/: filter.c, filter.h, reqs.c: Changed the filter_host command
 | 
						|
	to filter_url.
 | 
						|
 | 
						|
2000-10-23 17:47  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated Information.
 | 
						|
 | 
						|
2000-10-23 17:46  rjkaes
 | 
						|
 | 
						|
	* src/ternary.c: In the Key Found code, don't display the string in
 | 
						|
	the debug code since it doesn't exist anymore when we display it.
 | 
						|
	Doh!
 | 
						|
 | 
						|
2000-10-23 17:44  rjkaes
 | 
						|
 | 
						|
	* src/tinyproxy.c: Added the initialization section for the DNS and
 | 
						|
	Anonymous sub systems.
 | 
						|
 | 
						|
2000-10-23 17:43  rjkaes
 | 
						|
 | 
						|
	* src/: anonymous.c, anonymous.h: Added the new_anonymous
 | 
						|
	initialize routine
 | 
						|
 | 
						|
2000-10-23 17:42  rjkaes
 | 
						|
 | 
						|
	* src/: dnscache.c, dnscache.h: Added the new_dnscache routine to
 | 
						|
	initialize the Ternary tree. Also, removed the garbage collection
 | 
						|
	routine.
 | 
						|
 | 
						|
2000-09-26 01:00  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated documentation.
 | 
						|
 | 
						|
2000-09-26 00:59  rjkaes
 | 
						|
 | 
						|
	* src/dnscache.c: Fixed the insert function to handle a failed
 | 
						|
	insert properly.
 | 
						|
 | 
						|
2000-09-26 00:59  rjkaes
 | 
						|
 | 
						|
	* src/: ternary.c, ternary.h: Added the TE_EXISTS return code, and
 | 
						|
	cleaned up the ternary_destroy function.
 | 
						|
 | 
						|
2000-09-26 00:58  rjkaes
 | 
						|
 | 
						|
	* src/: tinyproxy.h, utils.h: Moved the safefree() macro to the
 | 
						|
	tinyproxy.h header.
 | 
						|
 | 
						|
2000-09-26 00:57  rjkaes
 | 
						|
 | 
						|
	* src/: acl.c, reqs.c: Updated the free() calls to the safefree()
 | 
						|
	calls.
 | 
						|
 | 
						|
2000-09-21 12:58  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated documentation.
 | 
						|
 | 
						|
2000-09-21 12:57  rjkaes
 | 
						|
 | 
						|
	* src/tinyproxy.c: There is no LOG_EMERG level, so changed to
 | 
						|
	LOG_CRIT.
 | 
						|
 | 
						|
2000-09-21 12:53  rjkaes
 | 
						|
 | 
						|
	* src/: log.c, log.h: Added the LOG_NOTICE level.
 | 
						|
 | 
						|
2000-09-15 16:58  rjkaes
 | 
						|
 | 
						|
	* src/: grammar.c, grammar.h, scanner.c: These are generated by
 | 
						|
	grammar.y and scanner.l respectively, don't include them in the
 | 
						|
	CVS.
 | 
						|
 | 
						|
2000-09-15 16:57  rjkaes
 | 
						|
 | 
						|
	* src/stamp-h.in: Automatically generated file.
 | 
						|
 | 
						|
2000-09-15 16:55  rjkaes
 | 
						|
 | 
						|
	* src/Makefile.in, doc/Makefile.in: Don't include automatically
 | 
						|
	generated files.
 | 
						|
 | 
						|
2000-09-15 16:53  rjkaes
 | 
						|
 | 
						|
	* install-sh, missing, mkinstalldirs: Don't included automatically
 | 
						|
	generated files.
 | 
						|
 | 
						|
2000-09-15 16:52  rjkaes
 | 
						|
 | 
						|
	* Makefile.in, config.guess, config.sub, configure: Flipping again.
 | 
						|
	:) Don't include any of the automatically generated stuff.
 | 
						|
 | 
						|
2000-09-14 12:41  rjkaes
 | 
						|
 | 
						|
	* ChangeLog, configure.in, src/tinyproxy.h: Need to do a check for
 | 
						|
	the <stdint.h> header since it's not a standard header available on
 | 
						|
	all systems.
 | 
						|
 | 
						|
2000-09-12 14:10  rjkaes
 | 
						|
 | 
						|
	* Makefile.in, doc/Makefile.in, src/Makefile.in: Again, needed for
 | 
						|
	configure script. Automatically built by ./reconf
 | 
						|
 | 
						|
2000-09-11 20:45  rjkaes
 | 
						|
 | 
						|
	* config.guess, config.sub: Needed for running configure.
 | 
						|
	Automatically built with reconf
 | 
						|
 | 
						|
2000-09-11 20:43  rjkaes
 | 
						|
 | 
						|
	* configure: Can be made from configure.in (and should be), but I
 | 
						|
	want to be able to check out the source and immediately configure
 | 
						|
	it.
 | 
						|
 | 
						|
2000-09-11 20:22  rjkaes
 | 
						|
 | 
						|
	* doc/tinyproxy.conf: Example tinyproxy configuration file.
 | 
						|
 | 
						|
2000-09-11 20:21  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: We all know what this is. :)
 | 
						|
 | 
						|
2000-09-11 20:20  rjkaes
 | 
						|
 | 
						|
	* acinclude.m4: A M4 macro for finding the various types on the
 | 
						|
	system (typedefs, etc.)
 | 
						|
 | 
						|
2000-09-11 20:18  rjkaes
 | 
						|
 | 
						|
	* Makefile.am, acconfig.h, configure.in: New defaults, and better
 | 
						|
	checking for various features needed by tinyproxy. Looks like fun!
 | 
						|
	:)
 | 
						|
 | 
						|
2000-09-11 20:16  rjkaes
 | 
						|
 | 
						|
	* AUTHORS, BUGS, INSTALL, README, THANKS: Just updating the
 | 
						|
	documentation.
 | 
						|
 | 
						|
2000-09-11 20:12  rjkaes
 | 
						|
 | 
						|
	* src/: grammar.c, grammar.h, grammar.y, scanner.c, scanner.l:
 | 
						|
	These all handle reading the tinyproxy configuration file.
 | 
						|
 | 
						|
2000-09-11 20:10  rjkaes
 | 
						|
 | 
						|
	* src/: ternary.c, ternary.h: Generalized the ternary code which
 | 
						|
	was already being used in anonymous.* now it can be used (and is
 | 
						|
	used) in both anonymous and dnscache
 | 
						|
 | 
						|
2000-09-11 20:08  rjkaes
 | 
						|
 | 
						|
	* src/: acl.c, acl.h: Improved access control semantics. Allows
 | 
						|
	for a finger control for allowing and denying hosts.
 | 
						|
 | 
						|
2000-09-11 20:07  rjkaes
 | 
						|
 | 
						|
	* src/: thread.c, thread.h: tinyproxy now uses a pool of threads to
 | 
						|
	handle connections. All the work for creating new threads, deleting
 | 
						|
	old thread, and generally managing the pool is done here.
 | 
						|
 | 
						|
2000-09-11 20:06  rjkaes
 | 
						|
 | 
						|
	* src/: stats.c, stats.h: This module handles the various stats
 | 
						|
	relating to tinyproxy's functionality.
 | 
						|
 | 
						|
2000-09-11 20:04  rjkaes
 | 
						|
 | 
						|
	* src/: reqs.c, reqs.h: MAJOR RE-WRITE! Read the ChangeLog and look
 | 
						|
	at the source. It's shorter than re-documenting the changes here. :)
 | 
						|
 | 
						|
2000-09-11 20:03  rjkaes
 | 
						|
 | 
						|
	* src/: tinyproxy.c, tinyproxy.h: Fixed the change user/group
 | 
						|
	ability.  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.
 | 
						|
 | 
						|
2000-09-11 20:01  rjkaes
 | 
						|
 | 
						|
	* src/: utils.c, utils.h: Removed the xmalloc() and xstrdup()
 | 
						|
	functions.  Added the pidfile_create() function.  Added the OpenBSD
 | 
						|
	style strlcat() and strlcpy() functions.
 | 
						|
 | 
						|
2000-09-11 19:57  rjkaes
 | 
						|
 | 
						|
	* src/: uri.c, uri.h: Switched to the new logging style and
 | 
						|
	replaced the xmalloc() with straight malloc().
 | 
						|
 | 
						|
2000-09-11 19:56  rjkaes
 | 
						|
 | 
						|
	* src/: sock.c, sock.h: Needed locking in getpeer_string().  Added
 | 
						|
	mutex locking around the dnscache() call.  Removed the global
 | 
						|
	sockaddr and setup_fd variables.  Added the socket_blocking() and
 | 
						|
	socket_nonblocking() functions.  Gutted the readline() function and
 | 
						|
	replaced it with something similar to the 1.0 version. :)
 | 
						|
 | 
						|
2000-09-11 19:50  rjkaes
 | 
						|
 | 
						|
	* src/regexp.h: Moved back to the <config.h> for autoconf defines.
 | 
						|
 | 
						|
2000-09-11 19:47  rjkaes
 | 
						|
 | 
						|
	* src/: log.c, log.h: Cleaned up the logging format, and also
 | 
						|
	included logging levels (which are similar to the syslogd format.)
 | 
						|
 | 
						|
2000-09-11 19:46  rjkaes
 | 
						|
 | 
						|
	* src/gnuregex.c: Not using <defines.h> for autoconf anymore, so
 | 
						|
	move back to the <config.h> format.
 | 
						|
 | 
						|
2000-09-11 19:43  rjkaes
 | 
						|
 | 
						|
	* src/: filter.c, filter.h: Just using standard malloc() since the
 | 
						|
	xmalloc() didn't really add anything useful to the command.
 | 
						|
 | 
						|
2000-09-11 19:42  rjkaes
 | 
						|
 | 
						|
	* src/: dnscache.c, dnscache.h: Removed the custom hash routines.
 | 
						|
	Using the ternary module instead.
 | 
						|
 | 
						|
2000-09-11 19:41  rjkaes
 | 
						|
 | 
						|
	* src/: buffer.c, buffer.h: Cleaned up the source so that the
 | 
						|
	internal structure is no exposed by the buffer.h header.
 | 
						|
 | 
						|
2000-09-11 19:38  rjkaes
 | 
						|
 | 
						|
	* src/: anonymous.c, anonymous.h: Removed the ternary tree code
 | 
						|
	from these files and made it a separate module.
 | 
						|
 | 
						|
2000-09-11 19:37  rjkaes
 | 
						|
 | 
						|
	* src/Makefile.am: Modified to include all the files needed to
 | 
						|
	build tinyproxy, plus the special targets for building the LEX and
 | 
						|
	YACC files. (Also included the GNU license.)
 | 
						|
 | 
						|
2000-09-11 19:33  rjkaes
 | 
						|
 | 
						|
	* doc/tinyproxy.8: Since the tinyproxy program has changed, the
 | 
						|
	manual had to change as well.  Documents all the command line
 | 
						|
	arguments, though I think I need to document the configuration file
 | 
						|
	as well.
 | 
						|
 | 
						|
2000-09-11 19:32  rjkaes
 | 
						|
 | 
						|
	* doc/: Makefile.am, TODO: Updated to reflect the new reality of
 | 
						|
	the tinyproxy source code.
 | 
						|
 | 
						|
2000-09-11 19:31  rjkaes
 | 
						|
 | 
						|
	* doc/CONFIG: This was the layout for the purposed config file.
 | 
						|
	This is no more.
 | 
						|
 | 
						|
2000-09-11 19:27  rjkaes
 | 
						|
 | 
						|
	* INSTALL.configure: This was the generic INSTALL file, but the
 | 
						|
	INSTALL file itself is again the generic file. :)
 | 
						|
 | 
						|
2000-09-11 19:24  rjkaes
 | 
						|
 | 
						|
	* src/: config.h, conns.c, conns.h: These files are no longer used
 | 
						|
	within tinyproxy.
 | 
						|
 | 
						|
2000-06-06 13:58  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Reflect changes made in source.
 | 
						|
 | 
						|
2000-06-06 13:56  rjkaes
 | 
						|
 | 
						|
	* doc/tinyproxy.8: Fixed the links for finding tinyproxy. Thanks to
 | 
						|
	Simon Baker for pointing this out.
 | 
						|
 | 
						|
2000-04-26 12:31  rjkaes
 | 
						|
 | 
						|
	* ChangeLog, src/dnscache.c, src/uri.c: Reorganized (or added) the
 | 
						|
	#include <sys/types.h> line so tinyproxy would compile cleanly on
 | 
						|
	FreeBSD systems.
 | 
						|
 | 
						|
2000-04-03 00:00  rjkaes
 | 
						|
 | 
						|
	Released tinyproxy 1.3.3 (2000-04-03)
 | 
						|
 | 
						|
2000-03-31 17:55  rjkaes
 | 
						|
 | 
						|
	* ChangeLog, src/reqs.c: Fixed a bug with the path in clientreq. If
 | 
						|
	the path was empty it caused a malformed request to be sent.
 | 
						|
 | 
						|
2000-03-31 15:15  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: A whole whack of changes and bug fixes.
 | 
						|
 | 
						|
2000-03-31 15:14  rjkaes
 | 
						|
 | 
						|
	* src/Makefile.am: Added a line for the anonymous.* files.
 | 
						|
 | 
						|
2000-03-31 15:14  rjkaes
 | 
						|
 | 
						|
	* src/config.h: Changed the socket time out to 10 secs.
 | 
						|
 | 
						|
2000-03-31 15:13  rjkaes
 | 
						|
 | 
						|
	* src/reqs.c: Updated the anonheader function to use the new
 | 
						|
	anonymous API. Removed the hack for the POST method in clientreq.
 | 
						|
 | 
						|
2000-03-31 15:10  rjkaes
 | 
						|
 | 
						|
	* src/sock.c: Completely rewrote the readline function.
 | 
						|
 | 
						|
2000-03-31 15:09  rjkaes
 | 
						|
 | 
						|
	* src/: buffer.c, buffer.h: Added the working_* fields as a scratch
 | 
						|
	pad for readline().
 | 
						|
 | 
						|
2000-03-31 15:08  rjkaes
 | 
						|
 | 
						|
	* src/: tinyproxy.c, tinyproxy.h: Removed the allowedhdr_s
 | 
						|
	structure since it is now accessed through anonymous.*
 | 
						|
 | 
						|
2000-03-31 14:56  rjkaes
 | 
						|
 | 
						|
	* src/: anonymous.c, anonymous.h: Moved the anonymous header code
 | 
						|
	into it's own file to make it easier to update.
 | 
						|
 | 
						|
2000-03-29 11:19  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated to list changes in src/reqs.c and
 | 
						|
	src/dnscache.c
 | 
						|
 | 
						|
2000-03-29 11:18  rjkaes
 | 
						|
 | 
						|
	* src/dnscache.c: Included the <sys/types.h> header.
 | 
						|
 | 
						|
2000-03-29 11:17  rjkaes
 | 
						|
 | 
						|
	* src/reqs.c: Fixed a bug with the clientreq function which was
 | 
						|
	incorrectly setting the clientheader flag and causing _all_ headers
 | 
						|
	to be sent even in anonymous mode.
 | 
						|
 | 
						|
2000-03-28 11:44  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated ChangeLog entry for new fix.
 | 
						|
 | 
						|
2000-03-28 11:41  rjkaes
 | 
						|
 | 
						|
	* src/reqs.c: Fixed another NULL bug with the uri->authority. If an
 | 
						|
	badly formed request was made in the form of
 | 
						|
	http:\\www.somewhere.com/ tinyproxy would SEGV.  This has been
 | 
						|
	corrected.
 | 
						|
 | 
						|
2000-03-28 11:21  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: Updated to reflect changes in src/reqs.c
 | 
						|
 | 
						|
2000-03-28 11:19  rjkaes
 | 
						|
 | 
						|
	* src/reqs.c: Fixed a NULL pointer bug in clientreq. If the SCHEME
 | 
						|
	in the URL was NULL the program would SEGV. This was caused by the
 | 
						|
	error logging code.
 | 
						|
 | 
						|
2000-03-12 19:56  rjkaes
 | 
						|
 | 
						|
	* src/config.h: Remove the defines for DEFAULT_* and UPSTREAM
 | 
						|
	(they've been moved into acconfig.h and configure).
 | 
						|
 | 
						|
2000-03-12 19:55  rjkaes
 | 
						|
 | 
						|
	* ChangeLog: List all the changes which has occurred on the program.
 | 
						|
 | 
						|
2000-03-11 15:43  rjkaes
 | 
						|
 | 
						|
	* acconfig.h: Added the support for the upstream proxy and also
 | 
						|
	made the defaults for the LOGFILE, USER, and PORT.
 | 
						|
 | 
						|
2000-03-11 15:37  rjkaes
 | 
						|
 | 
						|
	* src/: dnscache.c, reqs.c, tinyproxy.c, tinyproxy.h: Included the
 | 
						|
	changes needed to re-add the upstream proxy option.
 | 
						|
 | 
						|
2000-03-11 15:36  rjkaes
 | 
						|
 | 
						|
	* doc/tinyproxy.8: Updated the manual to reflect all the options,
 | 
						|
	plus provide additional information concerning the changes made to
 | 
						|
	some of the options.
 | 
						|
 | 
						|
2000-03-11 15:35  rjkaes
 | 
						|
 | 
						|
	* configure.in: Re-ordered some of the arguments.  Included the
 | 
						|
	support for the Upstream Proxy.
 | 
						|
 | 
						|
2000-03-11 15:34  rjkaes
 | 
						|
 | 
						|
	* src/: Makefile.in, defines.h.in: Once again, these files are made
 | 
						|
	automatically, don't include them.
 | 
						|
 | 
						|
2000-03-11 15:33  rjkaes
 | 
						|
 | 
						|
	* doc/Makefile.in: Again, the file is generated automatically, so
 | 
						|
	don't include it.
 | 
						|
 | 
						|
2000-03-11 15:32  rjkaes
 | 
						|
 | 
						|
	* Makefile.in, aclocal.m4, configure: These files are generated by
 | 
						|
	reconf, so don't include them in the CVS.
 | 
						|
 | 
						|
2000-02-16 12:32  sdyoung
 | 
						|
 | 
						|
	* AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, Makefile.in,
 | 
						|
	NEWS, README, THANKS, aclocal.m4, BUGS, INSTALL.configure,
 | 
						|
	acconfig.h, configure, configure.in, install-sh, missing,
 | 
						|
	mkinstalldirs, reconf, src/Makefile.am, src/Makefile.in,
 | 
						|
	src/defines.h.in, src/stamp-h.in, src/filter.c, src/buffer.c,
 | 
						|
	src/buffer.h, src/config.h, src/conns.c, src/conns.h,
 | 
						|
	src/dnscache.c, src/dnscache.h, src/gnuregex.c, src/log.c,
 | 
						|
	src/log.h, src/reqs.c, src/reqs.h, src/sock.c, src/sock.h,
 | 
						|
	src/tinyproxy.c, src/tinyproxy.h, src/uri.c, doc/Makefile.am,
 | 
						|
	doc/Makefile.in, doc/TODO, src/filter.h, src/gnuregex.h,
 | 
						|
	src/regexp.h, src/uri.h, src/utils.c, src/utils.h, doc/CONFIG,
 | 
						|
	doc/HTTP_ERROR_CODES, doc/RFC_INFO, doc/report.sh, doc/tinyproxy.8:
 | 
						|
	Initial revision
 | 
						|
 | 
						|
2000-02-16 12:32  sdyoung
 | 
						|
 | 
						|
	Released tinyproxy 1.3.2 (2000-02-16)
 | 
						|
 | 
						|
	* AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, Makefile.in,
 | 
						|
	NEWS, README, THANKS, aclocal.m4, BUGS, INSTALL.configure,
 | 
						|
	acconfig.h, configure, configure.in, install-sh, missing,
 | 
						|
	mkinstalldirs, reconf, src/Makefile.am, src/Makefile.in,
 | 
						|
	src/defines.h.in, src/stamp-h.in, src/filter.c, src/buffer.c,
 | 
						|
	src/buffer.h, src/config.h, src/conns.c, src/conns.h,
 | 
						|
	src/dnscache.c, src/dnscache.h, src/gnuregex.c, src/log.c,
 | 
						|
	src/log.h, src/reqs.c, src/reqs.h, src/sock.c, src/sock.h,
 | 
						|
	src/tinyproxy.c, src/tinyproxy.h, src/uri.c, doc/Makefile.am,
 | 
						|
	doc/Makefile.in, doc/TODO, src/filter.h, src/gnuregex.h,
 | 
						|
	src/regexp.h, src/uri.h, src/utils.c, src/utils.h, doc/CONFIG,
 | 
						|
	doc/HTTP_ERROR_CODES, doc/RFC_INFO, doc/report.sh, doc/tinyproxy.8:
 | 
						|
	Initial CVS checking of tinyproxy - version 1.3.2.
 | 
						|
 | 
						|
1999-12-24 20:33  sdyoung
 | 
						|
 | 
						|
	Released tinyproxy 1.3.1
 | 
						|
 | 
						|
1999-12-03 23:21  sdyoung
 | 
						|
 | 
						|
	Released tinyproxy 1.3.0 (1999-12-03 unconfirmed)
 |