From 0697a9047d6de3640416df6c76ec00397a571aa1 Mon Sep 17 00:00:00 2001 From: Mukund Sivaraman Date: Mon, 25 Jan 2010 21:16:39 +0530 Subject: Remove obsolete ChangeLog file --- ChangeLog | 2155 ------------------------------------------------------------- 1 file changed, 2155 deletions(-) delete mode 100644 ChangeLog (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 379e2ab..0000000 --- a/ChangeLog +++ /dev/null @@ -1,2155 +0,0 @@ -2004-08-10 Robert James Kaes - - Merged in changes from 1.6.3. - -2004-01-26 Robert James Kaes - - Released tinyproxy 1.7.0 (2004-01-26) - - * configure.ac, doc/tinyproxy.conf, src/conns.c, src/conns.h, src/grammar.y, src/reqs.c, src/reqs.h, src/scanner.l, src/tinyproxy.c, src/tinyproxy.h: - Added reverse proxy support from Kim Holviala. - -2003-11-19 Robert James Kaes - - * src/reqs.c (upstream_add): Fixed a spelling mistake with "Nonsence" - -2003-10-17 Robert James Kaes - - * src/filter.c, ChangeLog, Makefile.am, configure.ac: - Merged in changes from the 1.6.2 release. (Fixes for the filtering code - and the HTML installation script.) - -2003-10-17 Robert James Kaes - - Released tinyproxy 1.6.2 (2003-10-17) - - * Makefile.am: - Removed a redundant "mkdir" command, since the $(mkinstalldirs) - command handles it correctly. - -2003-10-16 Robert James Kaes - - * src/filter.c (filter_init): - Fixed up the comment handling code. Closes bug 822226 - [https://sourceforge.net/tracker/index.php?func=detail&aid=822226&group_id=2632&atid=102632] - -2003-08-06 Robert James Kaes - - Released tinyproxy 1.6.1 (2003-08-06) - - * heap.c (debugging_realloc): - Remove the assert on the ptr being NULL since a NULL pointer is - allowed by the realloc() spec. - - * child.c (child_main): - Fixed an off-by-one error with the maxrequestsperchild - variable. [Fix proposed by Yannick Koehler] - -2003-07-14 Robert James Kaes - - Released tinyproxy 1.6.0 (2003-07-14) - - * src/htmlerror.c (indicate_http_error): - Added calls to va_end() before leaving the function. - -2003-06-26 Robert James Kaes - - * src/reqs.c (upstream_add): - Rewrote the function to actually handle the various types of - upstream configurations correctly. Hopefully, the code is also a - little clearer in it's implementation. - - * src/scanner.l: - Modified the patterns to allow the new upstream directives to work - as defined in the tinyproxy.conf documentation. - - * src/heap.c (debugging_free): - Rather than assert on a NULL pointer, log the NULL pointer and - return. - -2003-06-25 Robert James Kaes - - * src/common.h: - Added a test to define INADDR_NONE if it's not present. For - example, SunOS (solaris 2.8) does not include this define. [Thank - to Ben Hartshorne for pointing this out.] - - * doc/report.sh.tmpl: - Changed the calls to "ps" and "grep" to use a more portable - syntax. - -2003-06-20 Robert James Kaes - - * doc/tinyproxy.conf, src/grammar.y, src/reqs.c, src/scanner.l, src/tinyproxy.h: - Removed the "ViaHeader" directive and replaced it with the - "ViaProxyName" directive. The "Via" HTTP header is _required_ by - the HTTP spec, so the code has been changed to always send the - header. However, including the proxy's host name could be - considered a security threat, so the "ViaProxyName" directive is - used to set the token sent in the "Via" header. If the directive - is not enabled the proxy's host name will be used. - -2003-06-06 Robert James Kaes - - * src/reqs.c (connect_to_upstream): - Fixed an off-by-one error in the snprintf() call used to build the - URL for the upstream proxy. [Patch suggested by David T. Pierso] - -2003-06-02 Robert James Kaes - - * configure.ac: - Remove the -O2 optimization if debugging is enabled. Also, remove - the -g option if the code does _not_ have debugging enabled. - - * doc/tinyproxy.conf: - Included additional examples of how to configure the upstream - proxy support for more selective proxying. - - * src/reqs.c, src/tinyproxy.h: (upstream_get): - (upstream_add): Added support to allow ip addresses and networks - to be used when matching an upstream proxy directive. - [Code by Peter da Silva] - -2003-05-31 Robert James Kaes - - * src/heap.h: - Changed the safefree() macro to make it safe to use a conditional - statement, and also safe to use with a rvalue that has a side - effect. [Bug fix recommended by Peter da Silva] - -2003-05-30 Robert James Kaes - - * src/vector.c, src/vector.h (vector_getentry): - Changed the API to return the data pointer and have the length - returned in a argument variable pointer. This should be a more - natural way of using the function. - -2003-05-29 Robert James Kaes - - * src/vector.c, src/vector.h (vector_append): - Renamed the vector_insert() function to more accurately indicate - that entries are appended to the end of the vector. - - * doc/tinyproxy.conf, src/grammar.y, src/reqs.c, src/reqs.h, src/tinyproxy.h: - Improved the upstream proxy support by making the upstream proxy - server configurable based on the destination host. [Code written by - Peter da Silva] - -2003-05-10 Robert James Kaes - - * Makefile.am: - Added support for installing the HTML error files used by tinyproxy. - -2003-05-05 Robert James Kaes - - * src/reqs.c (establish_http_connection): - If the port being requested is not a standard HTTP port (80 or - 443) append the port string to the host header; otherwise, leave - the host string with only the host's domain name. - - Replaced all occurrences of constant 80 and 443 with defines - HTTP_PORT and HTTP_PORT_SSL. - -2003-05-04 Robert James Kaes - - * src/conns.c, src/conns.h: - Fixed a bug that would kill a child process because of an invalid - safefree() call. Basically, destroy_conn() was trying to free - memory not allocated by malloc. [Fix by David T. Pierson] - -2003-04-16 Robert James Kaes - - * src/reqs.c (build_url): - Rebuild the URL from the component pieces. This function - is used by the transparent proxy code. [Anatole Shaw] - (process_request): Fixed up the transparent proxy code so that - filtering can be done on the whole URL. [Anatole Shaw] - - (pull_client_data): Added a bug fix for Internet Explorer (IE). - IE will leave an extra CR and LF after the data in an HTTP POST. - The new code will eat the extra bytes if they're present. Thanks - to Yannick Koehler for finding the bug and offering an explanation - as to why it was happening. - - Changed all calls of connptr->remote_content_length to - connptr->content_length.server - - * src/conns.c, src/conns.h: - Removed the remote_content_length field in the "conn" structure - and replaced it with a smaller structure containing both the - remote/server and the local/client content-length fields if - they're present in the HTTP response headers. - -2003-04-01 Robert James Kaes - - * configure.ac: - Reorganized some of the code, and remove some function tests for - which results were never used, and removed duplicate header tests. - - * src/htmlerror.c (add_error_variable): - Test whether connptr->error_variable is NULL, and if so call - safemalloc(). This is needed since saferealloc() will assert() if - the first argument is a NULL pointer. - -2003-03-26 Robert James Kaes - - * src/reqs.c (establish_http_connection): - Always include the port number for the requested server. This - fixes a problem when the server is not listening on the default - port, 80. [Fix suggested by duncan@sapio.co.uk] - -2003-03-17 Robert James Kaes - - * doc/Makefile.am: - Create the doc/report.sh script from the new template file. - - * doc/report.sh, doc/report.sh.tmpl: - Moved the doc/report.sh script to doc/report.sh.tmpl file. The - script is then updated by the make procedure to reflect the - correct location of the tinyproxy executable. - -2003-03-14 Robert James Kaes - - * src/htmlerror.c: - Made get_html_file() and lookup_variable() static functions since - they are only used with this file. - - * src/utils.c (send_http_message): - Changed the function to use the new http_message API. - -2003-03-13 Robert James Kaes - - * src/grammar.y, src/scanner.l: - Allow the URL for the statistic page to be controlled from the - configuration file, rather than being hard-coded in the program. - [John M Wright] - - * doc/tinyproxy.conf: - Include example information for the new "file" directives - (ErrorFile, DefaultErrorFile, StatFile.) [Steven Young] - - * src/utils.c, src/utils.h: - Moved the send_http_error_message() and indicate_http_error() - functions into the htmlerror.c file, and recoded them to use the - new variable substitution system. [Steven Young] - - * src/common.h: - Fixed up the include order for the and - headers. - - * src/http_message.c, src/http_message.h: - An API to handle HTTP messages as concrete entities. - - * src/text.c, src/text.h (chomp): - Fixed up the code to prevent negative array access. Added - code to make sure the supplied arguments are valid. - -2003-03-09 Steven Young - - * src/htmlerror.[ch]: Code to allow the use of substituted - variables in .html files for error reporting instead of - hard-coded HTML documents that use snprintf() for variable - substitution. - - * src/stats.c: Changed showstats to use the HTML variable - functions when possible. It still retains the hard-coded - page for when an HTML file is not available. - - * src/reqs.c: Changed calls to indicate_http_error() to - use the new HTML variable mechanism. - - * src/tinyproxy.h: Added variables to config structure - to keep track of the files to be displayed for various - HTTP errors and the stats page. - - * src/conns.h: Added variables to keep track of the - variables to be substituted in .html files displayed - to that client. - - * src/grammar.y, src/scanner.l: Added parser support - for the error file configuration keywords - (ErrorFile, DefaultErrorFile, StatFile) - -2003-03-08 Robert James Kaes - - Released tinyproxy 1.5.3 (2003-03-10) - - Added the files required for creating tinyproxy RPMs for Redhat based - systems. (See packaging/redhat) - -2003-02-26 Robert James Kaes - - * src/tinyproxy.c (main): - Removed duplicate code calling the filter_destroy() function. - Once is enough. [Detected by John M Wright] - -2003-01-27 Robert James Kaes - - * src/tinyproxy.c (display_usage): - Removed the output line mentioning that regular expression support - was included. It will be there always. - - * src/reqs.c (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. - - * doc/tinyproxy.conf, src/filter.c, src/grammar.y, src/scanner.l, - * src/tinyproxy.h: - Added support for conditionally using case sensitive filtering - files. Code changes from James E. Flemer. - - * configure.ac: - Moved the AH_TEMPLATE() macro for the GNU regex library to out - from inside an if...fi test. Thanks to James E. Flemer for - supplying a patch. - - Bumped up the version number. - - * doc/tinyproxy.8: - Changed the default manual section to section 8 (administrator - commands). - - * src/reqs.c (process_client_headers): - Fixed inverted anonymous header logic. Fix comes from the FreeBSD - port through James E. Flemer. - -2003-01-22 Robert James Kaes - - Released tinyproxy 1.5.2 (2003-01-22) - -2002-12-04 Robert James Kaes - - * src/reqs.c (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. - - * src/tinyproxy.c, src/tinyproxy.h, src/utils.c, src/utils.h, - * src/common.h, src/conns.h, src/reqs.c: - Removed the "bool_t" type since it conflicts with the newer C - standards. The type was just replaced by "unsigned int" types. - -2002-11-29 Robert James Kaes - - * src/reqs.c (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-26 Robert James Kaes - - * doc/tinyproxy.conf, src/grammar.y, src/reqs.c, src/scanner.l, - * src/tinyproxy.h: - Included code to disable the sending of the Via header. This is - now controlled by the ViaHeader configure directive. - -2002-11-21 Robert James Kaes - - * src/child.c (child_main): - Cleaned up the notice string to be more clear why a child is being - closed. - - * src/tinyproxy.c (main): - Check to see if the PID file was created successfully, and if not - report this to the user and close the program. - - * src/utils.c (create_file_safely): - Rather than exiting the program if there is an error, a negative - "error code" is returned to the program. The various callers then - need to decide what to do. - - (pidfile_create): Returns an error status depending on whether the - PID file was created successfully. - -2002-11-13 Robert James Kaes - - * src/reqs.c (relay_connection): - Shutdown the client socket for writing once all the data has been - sent. - - * src/conns.c (destroy_conn): - Added code to log any error messages when the sockets are closed. - -2002-11-05 Robert James Kaes - - * doc/tinyproxy.conf: - Removed the example for the Tunnel directive since it's been removed. - -2002-11-03 Robert James Kaes - - * configure.ac, src/grammar.y, src/reqs.c, src/scanner.l, - src/tinyproxy.c, src/tinyproxy.h: - - 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-10-17 Robert James Kaes - - * src/reqs.c (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-03 Robert James Kaes - - * src/tinyproxy.c: - Fixed up the storing and sending of the internal tinyproxy logs prior - to when the log file is created. Also, the log file is created with - the proper owner permissions. - - * src/log.c, src/log.h: - The internal log structure now uses a vector rather than a hash. This - change was required to actually display all the logs in the correct - order. Also, all log lines are stored internally while tinyproxy is - starting. At the appropriate point all the logs are written to the - log file. - - * src/filter.c: Filtering is now case insensitive. - - * src/child.c (child_main): - Check to make sure memory could be allocated to handle - the child request. - (child_main_loop): Added a call to truncate_log_file() when the log - file is to be rotated. - -2002-08-09 Robert James Kaes - - Released tinyproxy 1.5.1 (2002-08-09) - -2002-07-09 Robert James Kaes - - * 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 - - * README: - Updated the "Support" section to include a link to the tinyproxy - Bug Tracker system hosted by SourceForge. - -2002-07-05 Robert James Kaes - - * configure.ac: - Removed the -D_REENTRANT C flag since tinyproxy is no longer a - multi-threaded program. - -2002-06-27 Robert James Kaes - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - Released tinyproxy 1.5.0 (2002-05-09) - -2002-05-08 Robert James Kaes - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * src/thread.c (thread_main): Added code to check if tinyproxy is - being killed by the user. - -2001-12-28 Robert James Kaes - - * src/thread.c (thread_main): Added code to detect errors in the - accept() function. - -2001-12-23 Robert James Kaes - - * 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 - - * src/tinyproxy.h: Add a test for the MSG_NOSIGNAL define, so it's - apparently a non-standard extension to send(). Also, moved the - include after the includes for the various time - include files. - -2001-12-19 Robert James Kaes - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - Released tinyproxy 1.4.2 (2001-08-29) - -2001-08-28 Robert James Kaes - - 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 - - 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 - - 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 - - * 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 - - * 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 - - Released tinyproxy 1.4.0 (2001-06-24) - -2001-06-06 Robert James Kaes - - * configure.in: Total reorganization. - -2001-06-04 Robert James Kaes - - * 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 - - * 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 - - * 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 - - * 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 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 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 for autoconf anymore, so - move back to the 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 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 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) -- cgit v1.2.3