Updated the change log

This commit is contained in:
Robert James Kaes 2001-05-23 18:19:47 +00:00
parent d32e0d1ccb
commit b33e41eff1

834
ChangeLog
View File

@ -1,546 +1,478 @@
2001-01-15 Robert James Kaes <rjkaes@flarenet.com>
2001-01-15 12:13 rjkaes
* src/reqs.c (process_method): A potential stack overflow bug fixed.
Though, I do not actually think a stack overflow could have occurred
in this case. Better safe than sorry.
* configure.in: Bumped up the pre version number
* src/stats.c (showstats): Another potential heap overflow bug fixed.
2001-01-15 12:11 rjkaes
* src/utils.c (httperr): A heap overflow bug fixed.
* ChangeLog, src/reqs.c, src/stats.c: Fixed more potential overflow
bugs.
2000-12-07 Robert James Kaes <rjkaes@flarenet.com>
2001-01-15 12:06 rjkaes
* src/thread.c (thread_main_loop): Removed all the weird timing
code which was used to monitor the number of threads in use.
* ChangeLog, src/utils.c: Fixed a potential security bug in
http_err. There was a possibility of a heap overflow exploit.
* src/tinyproxy.c (main): The thread count is now checked once a
second, and can be killed properly.
2001-01-02 14:30 rjkaes
2000-10-23 Robert James Kaes <rjkaes@flarenet.com>
* src/dnscache.c (new_dnscache): Creates a new DNS tree. Called
before any other DNS requests.
* src/dnscache.c (dnscache): Removed the garbage collection
routine since I haven't figured out how to delete the tree without
causing a SEGFAULT. Ugh.
* src/scanner.l: Fixed a bug where the ':' character was not being
properly detected.
* src/anonymous.c (new_anonymous): Create a new Anonymous tree.
2000-12-09 15:03 rjkaes
* src/tinyproxy.c (main): Initialize the DNS and Anonymous
subsytems.
* configure.in: Rolling out the first pre to 1.4.0
2000-09-25 Robert James Kaes <rjkaes@flarenet.com>
2000-12-08 21:35 rjkaes
* src/dnscache.c (dns_insert): If the insert fails, delete the
allocated memory. No more memory leak.
* src/thread.c: Implimented the MaxRequestsPerChild directive.
* src/ternary.c (ternary_insert): Return an error if the key is
already in the tree.
2000-12-07 22:35 rjkaes
2000-09-21 Robert James Kaes <rjkaes@flarenet.com>
* ChangeLog: Updated changelog
* src/log.c: Added the LOG_NOTICE level for more important than
LOG_INFO messages.
2000-12-07 22:35 rjkaes
2000-09-14 Robert James Kaes <rjkaes@flarenet.com>
* src/: thread.c, tinyproxy.c: Fixed a problem with polling for the
number of active threads. No longer polls. :)
* configure.in:
* src/tinyproxy.h: Check for the <stdint.h> header.
2000-11-22 23:49 rjkaes
2000-08-23 Robert James Kaes <rjkaes@flarenet.com>
* src/ternary.c: Fixed MACRO error.
* src/utils.c (pidfile_create): Improved the security of this
function. Prevents cracker abuse of the pid file creation.
2000-11-22 23:46 rjkaes
* sec/ternary.c: Overhauled to improve the robustness of the code.
Prevents people from effecting the internal system from outside
the official API. I think this is a good example of how all the
functions should be coded. It is a little more complex, but it
handles "problems" much better.
* src/tinyproxy.c: Fixed spelling mistake.
2000-08-21 Robert James Kaes <rjkaes@flarenet.com>
2000-11-22 23:46 rjkaes
* src/utils.c (strlcat)
* src/utils.c (strlcpy): Added these two functions which take their
API from the OpenBSD versions. Replaces strncpy/strncat.
* src/: filter.c, filter.h, reqs.c: Changed the filter_host command
to filter_url.
2000-08-17 Robert James Kaes <rjkaes@flarenet.com>
2000-10-23 17:47 rjkaes
* src/ternary.c: Added a ternary tree module to replace the uses
of hashes in the source. There _were_ two different hash methods
before, which have been replaced with this general purpose module.
2000-08-12 Robert James Kaes <rjkaes@flarenet.com>
* ChangeLog: Updated Information.
* src/log.c (log): Removed the static variables by changing them to
automatic.
2000-10-23 17:46 rjkaes
2000-08-03 Robert James Kaes <rjkaes@flarenet.com>
* 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!
* doc/tinyproxy.8: Updated the manual documentation to match what
tinyproxy actually does. :)
2000-10-23 17:44 rjkaes
* src/grammar.y: Finished handling the various config keywords.
* src/tinyproxy.c: Added the initialization section for the DNS and
Anonymous sub systems.
2000-08-02 Robert James Kaes <rjkaes@flarenet.com>
2000-10-23 17:43 rjkaes
* src/tinyproxy.c (main): Fixed the change user/group ability.
* src/: anonymous.c, anonymous.h: Added the new_anonymous
initialize routine
2000-07-31 Robert James Kaes <rjkaes@flarenet.com>
2000-10-23 17:42 rjkaes
* src/reqs.c (process_method): Trying to change to a 1.1 compliant
browser. So, the Host header is set and sent. Also, tinyproxy doesn't
handle persistent connections, so tinyproxy needs to send the
Connection: close header.
* src/: dnscache.c, dnscache.h: Added the new_dnscache routine to
initialize the Ternary tree. Also, removed the garbage collection
routine.
2000-07-30 Robert James Kaes <rjkaes@flarenet.com>
2000-09-26 01:00 rjkaes
* src/thread.c (thread_main_loop): Added in the controls for handling
the creating and destruction of threads based on their numbers.
This is used for load control. Adjust MaxSpareServers, MinSpareServers,
and MaxClients.
* ChangeLog: Updated documentation.
2000-07-29 Robert James Kaes <rjkaes@flarenet.com>
2000-09-26 00:59 rjkaes
* src/acl.c: Added the ACL control system. This is much more advanced
then the simple one IP address test. Read doc/tinyproxy.conf for
more information.
* src/dnscache.c: Fixed the insert function to handle a failed
insert properly.
2000-07-22 Robert James Kaes <rjkaes@flarenet.com>
2000-09-26 00:59 rjkaes
* src/log.h: Paired down the logging levels and provided a
description for each level. Please try to be consistent with
these. Also, added the two DEBUG?() function macros for use with
debugging.
* src/: ternary.c, ternary.h: Added the TE_EXISTS return code, and
cleaned up the ternary_destroy function.
* src/thread.c (thread_pool_create): Make sure we don't try to start
more than MaxClients servers.
2000-09-26 00:58 rjkaes
* src/tinyproxy.c (main): Log when tinyproxy is using default
values rather than specified ones.
* src/: tinyproxy.h, utils.h: Moved the safefree() macro to the
tinyproxy.h header.
* src/reqs.c (relay_connection): Fixed a few difftime() problems
where the two arguments were being reversed.
(relay_connection): Added logging to handle if an Idle Timeout
occured on a connection.
2000-09-26 00:57 rjkaes
2000-07-19 Robert James Kaes <rjkaes@flarenet.com>
* src/: acl.c, reqs.c: Updated the free() calls to the safefree()
calls.
* src/tinyproxy.c (main): Cleaned up the command line arguments
since we now have a configuration file. See grammar.y and
scanner.l for more information.
(versiondisp): Moved the version information out of usagedisp().
2000-09-21 12:58 rjkaes
2000-07-11 Robert James Kaes <rjkaes@flarenet.com>
* ChangeLog: Updated documentation.
* src/utils.c (pidfile_create): Moved from tinyproxy.c
2000-09-21 12:57 rjkaes
* src/thread.c: Moved all the thread creation code into a seperate
file.
* src/tinyproxy.c: There is no LOG_EMERG level, so changed to
LOG_CRIT.
2000-07-10 Robert James Kaes <rjkaes@flarenet.com>
2000-09-21 12:53 rjkaes
* src/tinyproxy.c (pidfile_create): All the process to write it's
PID to the specified file.
(thread_main, thread_make): Instread of creating a new thread on
each connection, we now have a pool of threads. Right now the pool
is hard coded, but I'd like to have a system similar to Apache
where the pool can change as demand changes.
* src/: log.c, log.h: Added the LOG_NOTICE level.
* src/sock.c (getpeer_string): Needed to add locking around the call
to gethostbyname(). Could use gethostbyname_r() but I can't find a
consistent definition for the function.
2000-09-15 16:58 rjkaes
2000-07-03 Robert James Kaes <rjkaes@flarenet.com>
* src/: grammar.c, grammar.h, scanner.c: These are generated by
grammar.y and scanner.l respectively, don't include them in the
CVS.
* src/reqs.c (safe_write): Added safe_write so that EINTR errors
would be handled correctly when trying to write on a blocking
socket. Non blocking is already handled in the writebuff function.
(safe_read): Matched pair for safe_write(). Same reason.
(pull_client_data): Removed the malloc of the length, and switched
to a fixed buffer. This prevents a DoS where the client specifies
a HUGE buffer and exhausted memory.
2000-09-15 16:57 rjkaes
2000-07-01 Robert James Kaes <rjkaes@flarenet.com>
* src/stamp-h.in: Automatically generated file.
* src/reqs.c: Added the ability for sheding connections due to high
system load.
2000-09-15 16:55 rjkaes
* src/buffer.c (readbuff): Now you can not have a buffer larger
than MAXBUFFSIZE. The read() function will attempt to read in
MAXBUFFSIZE - buffer_size().
* src/Makefile.in, doc/Makefile.in: Don't include automatically
generated files.
* src/tinyproxy.h (MAXBUFFSIZE): This is the main control for all
the buffers in tinyproxy. Currently it is set to 48K since that is
nicely divisable by 2 and 3. The key is by 3 since this give
you 16K which is more than enough for a header line.
2000-09-15 16:53 rjkaes
* src/stats.c: New file to handle the statistic functions. Needed
since with multiple threads, there has to be some locking around
any changes to the values. Moved the showstats() function here from
utils.c since logically it should be with the other stats routines.
* install-sh, missing, mkinstalldirs: Don't included automatically
generated files.
* src/tinyproxy.c (main): Removed the USR1 signal since
LinuxThreads on a libc5 system needs the USR1 and USR2 for internal
processing. This means the USR1 signal dump stats is removed.
2000-09-15 16:52 rjkaes
* src/reqs.c (handle_connection): Log incoming connections here so
that the information is logged even if we are doing an upstream
relay.
* Makefile.in, config.guess, config.sub, configure: Flipping again.
:) Don't include any of the automatically generated stuff.
* src/tinyproxy.h: Moved all the common header files here to help
remove the clutter from all the other source files. Removed the
references to client_header and server_header from struct conn_s
since they are no longer used.
2000-09-14 12:41 rjkaes
* src/reqs.c (validuser): Had the test for a valid user in reverse.
Fixed.
* 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.
* src/tinyproxy.c (main): Moved the getreqs() function back into
the main function.
2000-09-12 14:10 rjkaes
2000-06-30 Robert James Kaes <rjkaes@flarenet.com>
* Makefile.in, doc/Makefile.in, src/Makefile.in: Again, needed for
configure script. Automatically built by ./reconf
* src/dnscache.c (dnscache): Added back the garbage collection
phase of the DNS caching system. Also, cleaned up the source so
only dnscache() is exposed to the rest of the system.
2000-09-11 20:45 rjkaes
* src/buffer.c: Moved the structure definitions into src/buffer.c
from src/buffer.h. Removed *_buffer() functions. Made buffer_size()
a function so the structure definition does not need to be included
in the header. Removed the references to working_string and
working_length in struct buffer_s since it is no longer needed.
* configure.in: Added the checks for various "standard" data types.
Cleaned up the source, and fixed a problem with SOCKs support.
* config.guess, config.sub: Needed for running configure.
Automatically built with reconf
* acinclude.m4: Added the AC_UNP_CHECK_TYPE macro from
Unix Network Programming, W. Richard Stevens.
* src/reqs.c (handle_connection): Added the UPSTREAM_PROXY code
back into tinyproxy. It uses GOTOs, but it doesn't create spaghetti
code, at least it better not! :)
2000-09-11 20:43 rjkaes
* src/utils.h:
* src/utils.c: Removed the xmalloc and xstrdup functions since they
really did not add anything to the standard malloc and strdup
functions.
* 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.
* (all) Went through and removed all the references to xmalloc and
xstrdup. Still need to add the error checking to all these calls
though.
2000-09-11 20:22 rjkaes
2000-06-29 Robert James Kaes <rjkaes@flarenet.com>
* src/sock.c (opensock): Added mutex locking around the call to
dnscache since I don't want more than one thread to be adding to
the linked list.
* doc/tinyproxy.conf: Example tinyproxy configuration file.
* configure.in: moved the tests for USE_PROC, UPTIME_PATH,
DEFAULT_CUTOFFLOAD, DEFAULT_STATHOST from src/config.h
2000-09-11 20:21 rjkaes
* src/tinyproxy.c: Moved the LOAD_RECALCTIMER define from
src/config.h
* ChangeLog: We all know what this is. :)
* src/reqs.c (handle_method, process_server_headers,
handle_connection):
Handle simple and HTTP/0.9 requests properly.
2000-09-11 20:20 rjkaes
* src/buffer.h: Changed the default MAXBUFFSIZE to 24 KB.
* acinclude.m4: A M4 macro for finding the various types on the
system (typedefs, etc.)
2000-06-28 Robert James Kaes <rjkaes@flarenet.com>
2000-09-11 20:18 rjkaes
* src/sock.c (listen_sock): This replaces the init_listen_sock
function and removed the global sockaddr and setup_fd variables.
* Makefile.am, acconfig.h, configure.in: New defaults, and better
checking for various features needed by tinyproxy. Looks like fun!
:)
* src/tinyproxy.c (getreqs): Not at all like the old function by the
same name. This just blocks on accept for new connections and then
creates a new thread for each connection.
2000-09-11 20:16 rjkaes
* src/tinyproxy.h: Moved the struct conn_s into this header so
we can completely remove the src/conns.h and src/conns.c files as
they are no longer needed.
* AUTHORS, BUGS, INSTALL, README, THANKS: Just updating the
documentation.
* src/reqs.c (process_server_headers): Handle server headers
separately from relay_connection since we'll need to be able to read
them in the future if we want to support caching.
(process_client_headers): Check for the Content-Length header. If
it is present then we need to read in all the client's data before
we can process any server headers or send back an error message.
(pull_client_header): Read in Content-Length number of bytes from
the client.
2000-09-11 20:12 rjkaes
2000-06-27 Robert James Kaes <rjkaes@flarenet.com>
* src/sock.c (socket_blocking, socket_nonblocking): Added the
functions since we need to selectively change a socket's state as
the program runs.
(opensock): Removed the call for making the socket nonblocking since
it should only be switched into nonblocking when it's absolutely
needed.
* src/: grammar.c, grammar.h, grammar.y, scanner.c, scanner.l:
These all handle reading the tinyproxy configuration file.
* src/buffer.c (readbuff, writebuff): Added tests at the beginning of
the functions to return if the limits on the buffer size have been
exceeded. Maybe this should be an assert instead, since these
functions should not be called with exceeded limits.
2000-09-11 20:10 rjkaes
* src/config.h: Moved this to ./config.h instead. Updated the source
to reflect this change.
* 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
* src/log.c: Added logging levels which are duplicates of the syslog
levels. Helps to make the logfile a little easier to parse. This
also means all the calls to log(...) needed to be changed to
log(level, ...)
2000-09-11 20:08 rjkaes
2000-06-26 Robert James Kaes <rjkaes@flarenet.com>
* src/: acl.c, acl.h: Improvied access control semantics. Allows
for a finger control for allowing and denying hosts.
* src/sock.c (readline): Completely gutted the function and replaced
it with a simpler function which is very similar to the original
function back in version 1.0. :) We can reuse this function again
since the sockets are now blocking again.
2000-09-11 20:07 rjkaes
2000-06-22 Robert James Kaes <rjkaes@flarenet.com>
* 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.
* src/reqs.c: A _MASSIVE_ rewrite of the whole connection process.
The old state machine is now gone. Each new connection is now a
separate thread. This allows the sockets to be blocking most of
the time, which made the rest of the functions a lot easier to
code. Some functions have been renamed and a bunch are new. The
changes are really too numerous to list, but the main idea is that
there is a separate function to handle each part of a connection and
the non-blocking code is only needed in the relay_connection
function. Take a look at the code, it's a lot easier to understand
now.
2000-09-11 20:06 rjkaes
2000-06-21 Robert James Kaes <rjkaes@flarenet.com>
* src/: stats.c, stats.h: This module handles the various stats
relating to tinyproxy's funcationality.
* src/dnscache.h:
* src/dnscache.c: Renamed the functions lookup and insert to
dns_lookup and dns_insert.
(dns_lookup): Cleaned up the code to make it more streamlined.
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 redocumenting the changes here. :)
2000-06-06 Robert James Kaes <rjkaes@flarenet.com>
2000-09-11 20:03 rjkaes
* fixed the links in doc/tinyproxy.8 for locating tinyproxy to
point to the new location at SourceForge.net. Thanks to Simon Baker
for pointing this out.
* 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-04-26 Robert James Kaes <rjkaes@flarenet.com>
2000-09-11 20:01 rjkaes
* src/uri.c: Added the #include <sys/types.h> for compatibility
with FreeBSD.
* src/: utils.c, utils.h: Removed the xmalloc() and xstrdup()
functions. Added the pidfile_create() function. Added the OpenBSD
style strlcat() and strlcpy() functions.
* src/dnscache.c: Moved the #include <sys/types.h> above the
#include <sys/socket.h> reference for compatibility with FreeBSD.
2000-09-11 19:57 rjkaes
2000-03-31 Robert James Kaes <rjkaes@flarenet.com>
* src/: uri.c, uri.h: Switched to the new logging style and
replaced the xmalloc() with straight malloc().
* src/reqs.c (clientreq): Removed the hack for POST methods with
regard to anonymous access.
(clientreq): fixed a bug with the request line. If the PATH was
empty, it would send an malformed request to the server. This is
checked now and if the path is empty, a "/" is used instread.
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 readling() 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-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 occured 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
* 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.
* src/config.h (SOCK_TIMEOUT): Increased the time out to 10
seconds.
* src/buffer.c (new_buffer): Additional initialization code for
new elements of the buffer_s structure.
(delete_buffer): Code to delete the working_* fields.
* src/buffer.h: Added the working_string and working_length method
for use as a scratch pad in the readline function.
* src/sock.c (readline): A major rewrite of this routine. Lines of
text are now built incrementally with a new scratch pad built into
the buffer.
2000-03-30 Robert James Kaes <rjkaes@flarenet.com>
* src/Makefile.am (tinyproxy_SOURCES): include the line for the
anonymous.* files.
* src/tinyproxy.h: removed all references to struct allowed_hdrs.
* src/tinyproxy.c (main): removed all the old anonymous code, and
added a test for the anonymous code so the Content-Type and
Content-Length headers are allowed to pass through if the
anonymous mode is turned on. This is needed for POSTs to work.
* src/reqs.c (anonheader): removed all the code which used the old
method of anonymous headers and replaced it using the new API.
* src/anonymous.h:
* src/anonymous.c: Moved the anonymous header code into it's own
sections with a well defined API. Internally it uses a Ternary
Search Tree.
2000-03-29 Robert James Kaes <rjkaes@flarenet.com>
* src/dnscache.c: added the <sys/types.h> header.
* src/reqs.c (clientreq): fixed a problem with the anonymous
headers. There was a test for the POST line since we have to send
all headers at the moment to handle that (actually, that might not
be true anymore...), but the test was incorrect and would send all
the headers through on all requests. Fixed the test and now only
the selected headers are sent.
2000-03-28 Robert James Kaes <rjkaes@flarenet.com>
* src/reqs.c (clientreq): Fixed a bug which would cause a SEGV if
the scheme was NULL. The cause was the error logging code to
report an invalid scheme. Fixed another bug with the
uri->authority. If a request in the form of
http:\\www.somewhere.com/ was entered, tinyproxy would SEGV.
2000-03-12 Robert James Kaes <rjkaes@flarenet.com>
* src/tinyproxy.c: include the upstream command line option. Also,
re-organized the help to have the options in be in alphabetical
order.
* src/reqs.c: include the code for handling the upstream proxy.
* src/dnscache.c: removed an assert from lookup so that it can be
used as method to simply verify if a domain name is already in the
cache.
* src/config.h: removed the defines dealing with DEFAULT_* and
UPSTREAM declarations.
* doc/tinyproxy.8: expanded the manual to include all the
command line options. Also, organized the options in alphabetical
order.
* acconfig.h: fixed the defines for DEFAULT_LOG, DEFAULT_PORT,
and DEFAULT_USER to have real default values.
* configure.in: include support for upstream proxies with
the --enable-upstream option. Also, fixed the AC_MSG_CHECKING
functions to include better wording.
1.3.2 2000/02/15
- Fixed null requests bug.
- Fixed fd leak bug.
- Fixed connptr bug.
- Updated docs.
1.3.1 1999/12/21
- made the dns cache hashing algorithm case-insensitive.
- fixed a bug in log() that would cause it to dump garbage to
the log file when in unrestricted mode.
- this is an interim release to fix the above log() bug.
1.3.0 1999/12/01
- autoconf enabled the source tree and moved some of the
documentation files into the proper locations. Also, added any
files which were needed to conform with the GNU autoconf directory
structure.
- Changed the debugging code to use asserts(). I don't know if I'm
completely happy with this. One the one hand it shrinks the size
of the executable, but on the other, it doesn't handle weird
situations in production code. It's still a toss up.
- Did a major reorganization of the source tree. The biggest
change is moving a lot of code from reqs.c into more appropriate
files.
- ANON mode is now always compiled in (since it doesn't take up
that much space) and is enabled from the command line.
- Changed the states a connection can be in, and also merged both
sockets (server/client) into one structure. Makes the code a lot
cleaner.
- Added a DNS caching mechanism. What happens it that a hash of
previously looked up names is maintained, so additional host names
will not need to be fetched from the DNS server again. Helps on
most web pages, which have a lot of images from the same server.
- Removed the global error variable (tinyerr) by making the
functions more consistent with what they return for an error.
- Removed the global.* files and merged them back into the
tinyproxy.* source.
- Added bug fixes in reqs.c to handle bad servers, which do not
follow the basic RFC protocol (i.e. using just a LF instead of a
CRLF).
- Most of reqs.c has been changed to use the readline
function. Also, it has been organized around the new connection
states and connection structure.
- xstrstr can now be both case sensitive or insensitive. Also,
added a check to make sure the haystack is longer than the needle.
1.2.10 1999/08/20
- Found a memory free bug in the buffer code, and also, a bug in
allocating memory for the buffer. Both could be fatal. One leaked
memory, and the other could allow all memory to be exhausted. Both
are now fixed.
- Reorganized some of the code. Moved global variables into the
proper files. Should help to eliminate them altogether someday.
- Shaun Johnson fixed a problem with compiling with syslog enabled
on a SunOS box.
1.2.9 1999/08/17
- Changed the writebuff to more explicitly be designed to write
from the other connection's buffer. A connection reads into it's
own buffer, but write's the other connection's buffer.
- You can now specify a particular IP address to listen on. By
default, tinyproxy listens on all IP addresses.
1.2.8.1 1999/08/13 (Internal release)
- Improved the portability by removing the daemon call and
removing the calls to index().
- added the buffer.* source into the CVS tree.
1.2.8 1999/08/06
- Better logging of incoming connections. Now both the IP address
and the requested URL are logged.
- You can now specify that only a certain subnet is allowed to
access tinyproxy. Currently it only supports one subnet with
matching against a string with the IP address.
- a bunch of just general code clean up. Mostly stylistic stuff.
1.2.7 1999/07/28
- Incoming connections are now logged to the log file/syslog
- An "XTinyproxy" header can now sent with each request which
includes the IP address of the client.
- Fixed some of the size of the members in the structures.
- Fixed an argument problem in listen_sock which was using the
size of the wrong variable.
1.2.6 1999/06/05
- Added the ability to send the HTTP requests to a proxy
server running on a different machine (or even the same
machine if you like)
- Fixed a bug in the clientreq() routine which would choke on
requests in the form of GET http://www.url.com HTTP/1.0 (thanks
to Bruno Viaris <viaris@galilee.univ-paris13.fr> for pointing
out the bug and providing the initial fix.)
1.2.5 1999/05/21
- Now maintained by Robert James Kaes (rjkaes@flarenet.com)
- Non-blocking sockets
- Cleaned up the style, and code. Compiles cleanly with -Wall
- Logs to syslogd with -S command line argument
- Rewrote the clientreq routine to remove tonnes of code
- Removed unused routines (rstrtolower, xstrndup, readline, etc.)
- Moved the user configurable options into config.h
1.1 1998/09/15
- Load average monitoring added
- Remote proxy monitoring added
- Added -u (change user).
1.0d
- ANON mode now supports -a to let user-specified headers
through
- various bug fixes in readline()
1.0c
- Support for ANON mode
1.0b
- Cleaned up exit codes (now uses sysexits.h)
- Uses daemon() from -lbsf instead of daemonize()
- Now supports ports other than 80
1.0a
- Created by Steven Young (sdyoung@well.com)