summaryrefslogtreecommitdiffhomepage
path: root/ChangeLog
blob: b599736c67d35a595fcbb51854f843e038d82c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
2000-06-06  Robert James Kaes  <rjkaes@flarenet.com>

	* fixed the links in doc/tinyproxy.8 for locating tinyproxy to
	point to the new location at SorceForge.net. Thanks to Simon Baker
	for pointing this out.

2000-04-26  Robert James Kaes  <rjkaes@flarenet.com>

	* src/uri.c: Added the #include <sys/types.h> for compatibility
	with FreeBSD.

	* src/dnscache.c: Moved the #include <sys/types.h> above the
	#include <sys/socket.h> reference for compatibility with FreeBSD.

2000-03-31  Robert James Kaes  <rjkaes@flarenet.com>

	* 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.

	* 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)