root/cherokee/branches/0.5/ChangeLog

Revision 949, 206.2 kB (checked in by alo, 1 year ago)

--

Line 
1 2007-12-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>
2
3         * cherokee/util.c: Gcrypt's "enable quick random numbers" patch
4         ported from trunk. Patch by Philip Pemberton <lists@philpem.me.uk>.
5
6 2007-07-19  A.D.F  <adefacc@tin.it>
7
8         * cherokee/common-internal.c:
9           - CLOSE_ON_EXEC(), removed fourth argument in fcntl() call;
10
11         * cherokee/util.c:
12           - added cherokee_close_fd();
13
14         * cherokee/socket.c,
15           cherokee/thread.c:
16           - replaced socket close (fd) with cherokee_close_fd (fd);
17
18         * cherokee/thread.c
19           - __accept_from_server(), fixed a very uncommon memory leak
20             on a new connection object;
21           - enlarged MUTEX_LOCK / MUTEX_UNLOCK section;
22
23         * cherokee/fcgi_manager.c,
24           cherokee/handler_fcgi.c,
25           cherokee/handler_scgi.c
26           - use SOCKET_FD(socket) macro;
27           - always set non blocking mode for new connected socket fd.
28
29 2007-07-18  A.D.F  <adefacc@tin.it>
30             Alvaro Lopez Ortega  <alvaro@alobbs.com>
31
32         * cherokee/fdpoll-*.c:
33           - fixes to array initialization;
34
35         * cherokee/thread.c:
36           - added a few missing close(new_fd) calls;
37
38         * cherokee/handler_file.c:
39           - change Etag: to ETag:;
40
41         * cherokee/connection.c:
42           - cherokee_connection_send_header_and_mmaped(),
43             fixes to mmaped_len and mmaped increment;
44           - cherokee_connection_send(),
45             fix, return ret_eagain if write was partial;
46
47         * cherokee/connection_info.c:
48           - cherokee_connection_info_list_thread(),
49             fix CHEROKEE_MUTEX_LOCK / CHEROKEE_MUTEX_UNLOCK
50             section;
51
52         * cherokee/server.c:
53           - return a fatal error on chroot() failure;
54
55         * cherokee/logger_*.c:
56           - fixes to CHEROKEE_MUTEX_LOCK / CHEROKEE_MUTEX_UNLOCK
57             sections.
58
59 2006-12-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>
60
61         * configure.in: The initial CFLAGS was missing after testing for
62         the pthread_rwlock_t structure. Fixed.  Reported by Marcus
63         Rueckert <darix@web.de>
64
65 2006-12-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>
66
67         * 0.5.6 released.
68
69 2006-12-12  A.D.F  <adefacc@tin.it>
70
71         * cherokee/buffer.c:
72         - fixes to cherokee_buffer_ensure_size();
73         - add 1 to a few cherokee_buffer_ensure_size() calls,
74           in order to always reserve space
75           for buffer / string terminator '\0'.
76
77         * cherokee/handler_file.c:
78         - add a cherokee_buffer_ensure_size(buffer, 288)
79           to cherokee_handler_file_add_headers(),
80           in order to avoid too many reallocations
81           (now none for 99.99% of responses);
82
83           this modification speed up Cherokee by over 1.5%
84           when serving small files ( < 2KB)
85           with 200 or 304 responses.   
86
87         * cherokee/handler_error.c:
88         - add two calls to cherokee_buffer_ensure_size()
89           in order to avoid too many reallocations;
90
91           this modification speed up Cherokee by over 4%
92           when answering with 404 error message
93           (3020 -> 3150 responses / sec.).     
94        
95 2006-12-11  A.D.F  <adefacc@tin.it>
96
97         - BSD compilation fixes (macros.h, etc.);
98
99         - socket.c
100            - cherokee_socket_write() rename variable name
101              (_nwritten -> nwr);
102
103         - iocache.c
104            - fix a memory leak.
105        
106 2006-11-14  A.D.F  <adefacc@tin.it>
107
108         * cherokee/socket.c: add two new constants (MAX_SF_BLK_SIZE and
109         MAX_SF_BLK_SIZE2) (max. sendfile block size) to limit size of data
110         sent by each sendfile call, because this trick can improve things
111         a lot on small or old systems (FreeBSD 4.x, Linux 2.2, etc.),
112         specially when network speed is higher than disk speed;
113
114           NOTE: right now default is set to 1 MB
115                 which should be good even for 99.99% of systems
116                 (i.e. up to 10-50 GB / sec. of disk I/O).
117
118         - cherokee_socket_sendfile():
119           - if size of data to be sent is 0 then return
120             without calling sendfile;
121
122           - limit size of data to a value between
123             MAX_SF_BLK_SIZE and MAX_SF_BLK_SIZE2;
124
125           - fix FreeBSD return error handling,
126             only (re) variable has to be tested for error value,
127             return ret_eagain only if errno == EAGAIN && *sent == 0.
128
129 2006-11-03  A.D.F  <adefacc@tin.it>
130
131         * cherokee/thread.c: assign http version 1.1 to header.version,
132           instead of header.method. Backported from alo's patch in Trunk.
133
134         * cherokee/handler_error.c: build_hardcoded_response_page(), fix a
135         memory leak (on bad_request).
136
137 2006-10-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>
138
139         * README, cherokee/handler_server_info.c (PAGE_HEADER),
140         http-cherokee.xml, SUNWcherokee.spec (Source),
141         sites-default.sample.pre, cherokee.spec.in (URL), cget.1,
142         cherokee.1, cherokee_logrotate.1,cherokee/cherokee-panic (action),
143         qa/023-Host.py, qa/024-Host+Port.py, qa/046-Redir.py,
144         qa/128-ValidMethod-common.py, qa/134-HTTP_headers.py,
145         www/index.html: Domian changed. 0x50.org is no longer the
146         project's domain, from now on it's cherokee-project.com.
147
148 2006-10-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>
149
150         * cherokee/server.c (update_bogo_now): Date header wasn't
151         generated because of an error in the logic. Fixed.
152
153         * doc/develop/Makefile.am (EXTRA_DIST),
154         doc/develop/draft-coar-cgi-v11-03.txt, doc/develop/rfc1952.txt,
155         doc/develop/rfc2616.txt, doc/develop/rfc2817.txt : Removed
156         RFCs. It's non-free content.
157
158 2006-09-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>
159
160         * cherokee/read_config_scanner.l: Added support for local paths.
161         Eg: ../example
162
163         * qa/run-tests.py (CONF_BASE): Now, it uses the example mime types
164         file instead of the system one.
165
166         * cherokee/server.c (update_bogo_now): Partially rewritten.
167
168 2006-09-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>
169
170         * cherokee/server.c (update_bogo_now): Date string fixed.  It was
171         sending "GMT--5" instead of "GMT-5".
172
173         * cherokee/handler_error.c (cherokee_handler_error_add_headers):
174         Management of http_range_not_satisfiable has been improved.
175
176         * cherokee/handler_file.c (cherokee_handler_file_add_headers): It
177         was sending an incorrect Content-Range header. Fixed.
178
179         * qa/054-ContentRange.py, qa/055-ContentRange2.py,
180         qa/056-ContentRange3.py, qa/057-ContentRange4.py,
181         qa/058-ContentRange-Double.py, qa/059-ContentRange-Double2.py:
182         These tests were wrong. Fixed.
183
184         * cherokee/socket.c (cherokee_socket_sendfile): Updated.
185
186         * qa/Makefile.am (test): Test rule removed.
187
188 2006-09-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>
189
190         * Cherokee 0.5.5 released.
191
192 2006-09-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>
193
194         * cherokee/http.c (cherokee_http_code_copy): add missing
195         http_request_entity_too_large. In case of unknown status code now
196         500 code. Patch by A.D.F.
197
198         * cherokee/buffer.c (cherokee_buffer_cnt_spn,
199         cherokee_buffer_cnt_cspn): It is safer if these are functions
200         rather than macros. Converted.
201
202         * cget/Makefile.am (INCLUDES): Fixed minor compilation issue.
203
204         * cherokee/cherokee_admin.c, cherokee/cherokee_logrotate.c:
205         Compilation fix, add include config.h. Patch by A.D.F.
206
207         * cherokee/handler_file.c: Fix comparison of ETag and
208         If-Modified-Since header fields for HTTP 304 responses. Other
209         changes to handle 304 responses properly with all required
210         headers, etc.  Patches by A.D.F, reworked by me.
211
212         * cherokee/handler_file.c: Fix formatting of ETag string both in
213         check_cached() and *_add_headers(). Patch by A.D.F.
214
215         * cherokee/handler.h: Added not_modified field
216
217         * cherokee/macros.h: New FMT_OFFSET_HEX define. Patch by A.D.F.
218
219         * cherokee/macros.h: New macros equal_str() and equal_buf_str().
220        
221 2006-09-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>
222
223         * cherokee/thread.c (process_active_connections):
224         process_active_connections(), add tests for HTTP 5xx errors too.
225
226         * cherokee/socket.c: Increase the amount (256 -> 4096) of data
227         read when cherokee_read() is called with buffer == NULL; this
228         should lower the risk to reset connection because not all data has
229         been read in linger mode. Patch by A.D.F.
230
231         * cherokee/handler_error.c: don't generate a body for HTTP
232         responses which are not allowed to have it. don't send unrelated
233         HTTP headers in case of a 304 response: which should be managed by
234         other handlers. Patch by A.D.F
235
236         * cherokee/http.h: New macro http_code_with_body
237
238         * configure.in: Adds _GNU_SOURCE definition to config.h whether
239         it's compiling with Glibc.  Patch backported by A.D.F
240
241 2006-08-23  A.D.F  <adefacc@tin.it>
242
243         * advanced.conf.sample.pre: Typo fixed.  ListenQueue was meant to
244         be ListenQueueSize.
245
246 2006-08-09  A.D.F  <adefacc@tin.it>
247
248         * cherokee/header.c: Now the header parser accepts multi-line
249         values.
250
251         * cherokee/macros.h: Some new macros has been added to replace
252         literal strings like '\r' or '\r\n\r\n'.
253        
254 2006-08-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>
255
256         * cherokee/buffer.c (cherokee_buffer_add_version): A little clean
257         up.
258
259 2006-08-09  A.D.F  <adefacc@tin.it>
260
261         * cherokee/tdate_parse.c: Quite big performance patch has been
262         applied.
263
264 2006-08-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>
265
266         * cherokee/common-internal.h: endian.h was being included twice.
267         Fixed.
268
269 2006-08-07  A.D.F  <adefacc@tin.it>
270
271         * cherokee/handler_cgi_base.c, cherokee/request.c,
272         cherokee/common-internal.h, cherokee/handler_file.c,
273         cherokee/handler_remote_control.c, cherokee/handler_webcam.c,
274         cherokee/connection.c, cherokee/server.c: Some call to
275         cherokee_buffer_add() have been replaced by
276         cherokee_buffer_add_str()
277
278 2006-08-05  Alvaro Lopez Ortega  <alvaro@alobbs.com>
279
280         * cherokee/handler_redir.c, cherokee/handler_error_redir.c,
281         cherokee/handler_server_info.c, cherokee/handler_admin.c,
282         cherokee/handler_dirlist.c, cherokee/handler_nn.c,
283         cherokee/handler_common.c, cherokee/validator_plain.c,
284         cherokee/validator_htpasswd.c, cherokee/handler_file.c,
285         cherokee/handler_fcgi.c, cherokee/handler_fastcgi.c,
286         cherokee/handler_scgi.c, cherokee/handler_cgi.c,
287         cherokee/validator_htdigest.c, cherokee/handler_phpcgi.c,
288         cherokee/validator_pam.c: Moved to use the new modules
289         initialization macros.
290        
291         * cherokee/module.h (HANDLER_MODULE_INFO_INIT_EASY,
292         VALIDATOR_MODULE_INFO_INIT_EASY): Added two new convenient macros.
293
294         * cherokee/socket.c (cherokee_socket_init_client_tls): gcc-2.95
295         compilation fix.
296
297 2006-08-03  A.D.F  <adefacc@tin.it>
298
299         * cherokee/header.c: Removed strsep() definition.
300
301         * cherokee/util.h: Added strsep() and strcasestr() prototypes.
302
303         * cherokee/fdpoll-select.c: Added missing include sys/time.h.
304
305         * cherokee/module.h (HANDLER_MODULE_INFO_INIT,
306         VALIDATOR_MODULE_INFO_INIT): Fixed to be compilator neutral.
307        
308 2006-07-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>
309
310         * cherokee/util.c (cherokee_readdir): Windows compilation
311         fixed. Patch by Philip Pemberton <philpem@dsl.pipex.com>
312
313 2006-07-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>
314
315         * cherokee/handler_phpcgi.c: Added two new default values for
316         RedHat/Fedora.
317
318 2006-07-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>
319
320         * 0.5.4: Released
321
322 2006-07-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>
323
324         * cherokee/read_config_grammar.y (port, port_tls): Added check to
325         ensure that the port number is valid. Bug reported by A. Alejandro
326         Hernández Hernández <nitrousenador@gmail.com>
327
328 2006-07-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>
329
330         * cherokee/avl/avl.c, cherokee/avl/avl.h,
331         cherokee/session_cache.c, cherokee/table.c: Many functions renamed
332         to avoid a name confict in Solaris 11.
333
334 2006-07-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>
335
336         * cherokee/thread.c (process_active_connections): The
337         authentication wasn't working with the root directory because it
338         wasn't copying all the information needed from the default
339         handler. Fixed. Reported by Jose Parrella <joseparrella@cantv.net>
340
341 2006-06-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>
342
343         * qa/run-tests.py: Added a little delay while launching the
344         threads. The objective is to resynchronize the threads.
345
346         * cherokee/util.c (cherokee_split_pathinfo): There was a case in
347         which it could end up reading a byte out of memory.
348
349 2006-06-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>
350
351         * cherokee/handler_common.c, cherokee/iocache.c: Reference counter
352         fixed up.
353        
354         * cherokee/handler_redir.c: There was an initialized variable,
355         that could become a problem in some weird situations.
356        
357 2006-05-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>
358
359         * cherokee/http.c, cherokee/http.h: Added HTTP error code 303:
360         "See other".
361
362 2006-05-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>
363
364         * qa/135-RedirParams.py, qa/Makefile.am: Added new QA tests in
365         order to ensure previous bug is fixed. It should detect possible
366         regression is the future as well.
367
368         * cherokee/handler_redir.c, cherokee/reqs_list.c,
369         cherokee/header.c, cherokee/header.h, cherokee/util.c,
370         cherokee/util.h, cherokee/connection.c,
371         cherokee/reqs_list_entry.h: Fixed a redir handler problem. In some
372         situations, it was failing to redirect URLs with multiple
373         parameters. Reported by Xuzo, Ubuntu-es.
374
375 2006-04-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>
376
377         * qa/094-URL-request.py (Test.Prepare): Fixed.
378
379         * cherokee/handler_dirlist.c (generate_file_entry): Tiny memory
380         leak.
381
382         * configure.in, cherokee/module_loader.c (dylib_open): Native
383         MacOS X compilation fixed.  It was trying to use .dylib rather
384         than .so in the modules filename.
385
386 2006-04-17  Alvaro Lopez Ortega  <alvaro@alobbs.com>
387
388         * 0.5.2 released
389
390         * SUNWcherokee.spec: Updated
391
392         * cherokee/thread.c (process_active_connections): There was an
393         unhandler error case here. It was the source of some stability
394         problems detected in 0.5.1.  This problem was reported by Cesar
395         Fernandez and Rodolfo Pilas (thanks guys!)
396
397 2006-04-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>
398
399         * cherokee/read_config_grammar.y, cherokee/server-protected.h,
400         cherokee/module_read_config.c, cherokee/server.c: It was failing
401         to load more than one MimeFile.
402
403         * cherokee/handler_dirlist.c (cherokee_handler_dirlist_add_headers):
404         Added charset entry into Content-Type header.
405
406 2006-04-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>
407
408         * cherokee/main.c (common_server_initialization): PID file must to
409         written before the server changes its user identity.
410
411         * cherokee.1, cherokee_logrotate.1, doc/develop/Intro.txt, README,
412         sites-default.sample.pre, windows/cherokee.nsi.in: URL poiting to
413         alobbs.com has been fixed to point to 0x50.org.  Patch by Gunnar
414         Wolf <gwolf@gwolf.org>
415
416 2006-04-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>
417
418         * cherokee/table.c (del_item): It is no longer an inline'd
419         function.  There are some broken versions of gcc (or binutils, I
420         don't know) that don't handle it correctly.  Patch by David Kimpe
421         <DNAku@frugalware.org>
422
423         * 0.5.1 released
424
425 2006-04-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>
426
427         * cherokee/handler_error.c (build_hardcoded_response_page): Fixed
428         Cross Site Scripting bug discovered by Ruben Garrote Garcia.
429
430 2006-04-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>
431
432         * cherokee/util.c (cherokee_gethostbyname): Fixes segfault.
433
434         * cherokee/connection.c (get_host): Little clean up.
435
436         * cherokee/handler_error.c (build_hardcoded_response_page): It was
437         missing a break. Patch by Philip Pemberton <philpem@dsl.pipex.com>
438
439 2006-03-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>
440
441         * cherokee.spec.in: Fixed extra space. Reported by
442         rui.lapa@ruilapa.net
443
444 2006-03-29  Alvaro Lopez Ortega  <alvaro@alobbs.com>
445
446         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp):
447         Under some circumstances it was trying to access NULL. Fixed by
448         olivier-ml1@oleastre.be
449
450 2006-03-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>
451
452         * cherokee/ext_source.c (cherokee_ext_source_spawn_srv): Cleaned
453         up. olivier-ml1@oleastre.be reported problems compiling on Win32
454         because of a bunch of includes I forgot after some tests.
455
456         * cherokee/buffer.c (cherokee_buffer_print_debug): Improved by
457         olivier-ml1@oleastre.be.
458
459 2006-03-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>
460
461         * cherokee/handler_fcgi.c (cherokee_handler_fcgi_free): Memory
462         leak. Fixed.
463
464         * cherokee/header.c (cherokee_header_parse): Partially
465         rewritten. It should be slightly faster.  Some headers were added
466         as known as well.
467
468         * qa/134-HTTP_headers.py: New test to check HTTP_* headers inside
469         in cgi_base based handlers.
470
471         * cherokee/header.h, cherokee/header.c,
472         cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
473         From now on, "Cookie: " is a known header.
474
475         * qa/042-Pipelining.py, qa/043-Pipelining2.py: Fixed. It was using
476         "Connection-type: " instead of "Connection: "
477
478         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
479         Added HTTP_ACCEPT header.
480
481         * cherokee/socket.c: fd 0 is okay.  Fixed.
482
483 2006-03-25  Alvaro Lopez Ortega  <alvaro@alobbs.com>
484
485         * cherokee/handler_cgi_base.c, cherokee/handler_cgi_base.h,
486         cherokee/ext_source.c, cherokee/read_config_grammar.y,
487         cherokee/handler_fcgi.c: Many thing fixed in here.  Some
488         environment variables were fixed. New code to signal the FastCGI
489         that it is certainly a Fastcgi, and some clean up.
490
491 2006-03-22  Alvaro Lopez Ortega  <alvaro@alobbs.com>
492
493         * cherokee/handler_fcgi.c (process_package): Quite important bug
494         fix. It wasn't taking in consideration the padding when it was
495         checking if the fastcgi package was big enough to be processed.
496
497 2006-03-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>
498
499         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
500         Added some aditional headers: HTTP_IF_RANGE,
501         HTTP_IF_MODIFIED_SINCE, HTTP_AUTHORIZATION and
502         HTTP_ACCEPT_ENCODING.
503
504         * cherokee/read_config_scanner.l,
505         cherokee/read_config_grammar.y (fix_win32_path): The space
506         character wasn't allowed in Win32 paths. Fixed. Patch by
507         olivier-ml1@oleastre.be
508
509         * cherokee/header.h, cherokee/header.c: Losing some fat..
510         cherokee_header_foreach() removed.
511
512         * cherokee/header.h, cherokee/header.c,
513         cherokee/handler_file.c (check_cached): Yet another header
514         promoted to known: "If-Modified-Since"
515
516         * cherokee/handler_file.c (check_cached): Fixed. "If-None-Match"
517         is a known header, I made this change yesterday.
518
519         * cherokee/header.h, cherokee/header.c (cherokee_header_parse),
520         cherokee/connection.c: "Authorization" promoted to known header.
521
522         * cherokee/logger_w3c.c: Removed a static method array that was
523         used to look up the name of the http method used in the
524         connection.  Now, it uses cherokee_http_method_to_string().
525
526         * cherokee/handler_cgi_base.c, cherokee/validator.c,
527         cherokee/thread.c, cherokee/handler_file.c, cherokee/header.c,
528         cherokee/header.h, cherokee/handler_fcgi.c,
529         cherokee/handler_fastcgi.c, cherokee/logger_ncsa.c,
530         cherokee/handler_error.c, cherokee/handler_cgi.c,
531         cherokee/connection.c, cherokee/logger_w3c.c,
532         cherokee/connection-protected.h: con->header is no longer dynamic,
533         now it is embedded inside the connection object.
534
535         * cherokee/connection-protected.h, cherokee/connection.c,
536         cherokee/handler_cgi_base.c, cherokee/handler_dirlist.c,
537         cherokee/thread.c, cherokee/handler_file.c,
538         cherokee/logger_ncsa.c, cherokee/handler_error.c,
539         cherokee/connection_info.c, cherokee/url.c: Now conn->socket is
540         embedded inside connection. It does not logger use a _new/_free
541         object.
542
543         * cherokee/icons.c (cherokee_icons_get_icon): It was using a case
544         sensitive search for the extension, but it does much more sense to
545         do a case insensitive search. Changed.
546
547         * cherokee/table.h, cherokee/table.c (cherokee_table_init_case):
548         Added new method. If performs searches on the tree using
549         strcasecmp rather than strcmp.
550
551 2006-03-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>
552
553         * cherokee/Makefile.am: Applied a patch to compile Win32 modules,
554         by olivier-ml1@oleastre.be
555
556         * configure.in: Added check for the getopt.h header file.
557
558         * cherokee/handler_redir.c, cherokee/handler_server_info.c,
559         cherokee/handler_dirlist.c, cherokee/handler_file.c,
560         cherokee/handler_error.c, cherokee/connection.c: Some clean up.
561         There were many cherokee_buffer_add() calls with hardcoded
562         lenghts.  I have changed them for cherokee_buffer_add_str calls.
563
564         * cherokee/handler_file.c (check_cached): Fixed to work with
565         If-Range as a known header.
566
567         * cherokee/header.c (cherokee_header_parse): Little hack to
568         slightly speed up the header parsing.
569
570         * qa/133-If-None-Match.py, qa/Makefile.am: Added new test. It
571         checks the HTTP_IF_NONE_MATCH.
572
573         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
574         Now it adds HTTP_IF_NONE_MATCH.
575
576         * cherokee/header.h, cherokee/header.c (cherokee_header_parse):
577         Added support of If-Range and If-None-Match headers.
578
579         * cherokee/buffer.c (cherokee_buffer_drop_endding): Added a little
580         sanity check. It isn't possible to drop negative amounts.
581
582         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
583         Bug fix.  It was setting SERVER_NAME twice.
584
585         * cherokee/module.h, cherokee/validator_plain.c,
586         cherokee/read_config_grammar.y, cherokee/validator_htpasswd.c,
587         cherokee/validator_htdigest.c, cherokee/validator_pam.c: Added a
588         check in the configuration parser to ensure that the
589         authentification method are supported by the validators. It closes
590         bug #55.
591        
592         * cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_basic_env):
593         Bug fix.  It was setting the SERVER_NAME variable with the colon
594         and the port number.  Patch by olivier-ml1@oleastre.be
595
596 2006-03-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>
597
598         * qa/132-file-ContentType.py: Added another QA probe. It tests
599         that the Content-Type header is sent properly.
600
601         * qa/131-ChangeUser-phpcgi.py: Added new test. It checks the
602         ChangeUser property of the phpcgi handler.
603
604         * qa/130-Digest-EmptyPasswd.py: Added new test to ensure Digest
605         authentication works with emtpy passwords.
606
607         * cherokee/handler_fcgi.c, cherokee/handler_fcgi.h: Added new
608         handler.  It implements a very basic FastCGI protocol.. a so small
609         subset of the original spec that is even supported by the brain
610         death implementation of the PHP interpreter.
611
612         * qa/129-Basic-EmptyPasswd.py: Added new test case to ensure
613         previous bug is fixed.
614
615         * cherokee/validator_plain.c (cherokee_validator_plain_check): Bug
616         fix.  It was crashing it the password provided by the client was
617         emtpy.
618
619         * qa/040-Auth-Basic2.py: The Base64 string is not longer hardcoded
620
621 2006-03-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>
622
623         * cherokee/socket.h, cherokee/socket.c (cherokee_socket_init,
624         cherokee_socket_mrproper): Added new methods.
625
626 2006-02-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>
627
628         * qa/run-tests.py: Added new option -f to disable PHP/FastCGI in
629         the QA tests. By default it's enabled.
630
631         * cherokee/handler_fastcgi.c (send_post): Post greater than 64k
632         were broken. Now, it splits the post in smaller FCGI packages in
633         order to be able to send it all.
634
635         * cherokee/post.c, cherokee/post.h (cherokee_post_walk_finished):
636         Added new function.
637
638         * cherokee/handler_file.h, cherokee/handler_file.c: Fixes "IOCache
639         off".
640
641 2006-02-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>
642
643         * cherokee/thread.c (cherokee_thread_close_polling_connections):
644         New function.
645
646 2006-02-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>
647
648         * cherokee/thread.c (process_active_connections): Lingering close
649         related bug fixed.
650
651 2006-02-14  Alvaro Lopez Ortega  <alvaro@alobbs.com>
652
653         * cherokee/read_config_embedded.c, cherokee/handler_common.c,
654         cherokee/handler_file.c, cherokee/Makefile.embedded: There were
655         some problem with the IOCache in the embedded version.  This patch
656         fixes them.
657
658         * cherokee/read_config_embedded.c (cherokee_embedded_read_config):
659         I must use the default handler entry in the virtual server
660         structrure rather than the "/" directory.  Fixed.
661
662         * config.h.win32: Patch by Gisle Vanem <giva@bgnett.no>
663
664 2006-02-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>
665
666         * cherokee/handler_fastcgi.c (send_post): Oops! I forgot to
667         implement the POST. O:-)
668
669         * cherokee/socket.c: A few little problem were fixed.
670
671 2006-02-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>
672
673         * cherokee/handler_cgi.c (fork_and_execute_cgi_win32): A few bug
674         were fixed.
675
676         * cherokee/handler_redir.h, cherokee/handler_redir.c: is_hidden
677         must be a property of each regex entry rather than a global
678         property to the handler. It fixes bug #42.
679
680 2006-02-06  Alvaro Lopez Ortega  <alvaro@alobbs.com>
681
682         * qa/122-Methods.py: There were some wrong paths in these
683         requests. Fixed.
684
685         * qa/128-ValidMethod-common.py, qa/Makefile.am (EXTRA_DIST): Added
686         a new test case to cover the previous bug fix.
687
688         * cherokee/handler_common.c: valid_methods should be
689         http_all_methods.  This handler relays in other ones, so the final
690         handler should be the one which checks it.
691
692 2006-02-04  Alvaro Lopez Ortega  <alvaro@alobbs.com>
693
694         * cherokee/read_config_grammar.y: A few checks for Win32 paths
695         were added.
696
697 2006-02-03  Alvaro Lopez Ortega  <alvaro@alobbs.com>
698
699         * cherokee.nsi, configure.in: Added new file
700
701         * handler_gnomevfs.h handler_gnomevfs.c, cherokee/Makefile.am,
702         configure.in: Gnome-VFS stuff removed.  We are not longer
703         supporting it.
704
705 2006-02-02  Alvaro Lopez Ortega  <alvaro@alobbs.com>
706
707         * cherokee/read_config_grammar.y (fulldir): The grammar now uses
708         the rule fulldir instead of the T_FULLDIR token. This has allowed
709         me to fix up the paths on Windows.
710
711 2006-02-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>
712
713         * cherokee/macros.h: Added SLASH macro.
714
715         * cherokee/fdpoll.c (cherokee_fdpoll_new): If it has Win32 select,
716         don't try to use the common select as well.
717
718         * configure.in: Added check for the new Win32 select.
719
720         * cherokee/fdpoll-win32.c, cherokee/Makefile.am,
721         cherokee/fdpoll.c (cherokee_fdpoll_new, cherokee_fdpoll_best_new):
722         Added new I/O backend for Windows.
723
724         * cherokee/fdpoll.c (cherokee_fdpoll_has_method): Removed.
725
726         * cherokee/win32_misc.c (win_init): Added atexit to call
727         WSACleanup().  Is it really needed? I have no idea!
728
729 2006-01-31  Alvaro Lopez Ortega  <alvaro@alobbs.com>
730
731         * cherokee/win32_misc.c (win_dlopen): Patch for dlopen(NULL) on
732         Windows. By Gorka Eguileor Gimeno <gorka@eguileor.com>
733
734         * qa/126-SCGI.py, qa/127-SCGI-Post.py, qa/Makefile.am: Added new
735         couple of QA tests for SCGI.
736
737 2006-01-30  Alvaro Lopez Ortega  <alvaro@alobbs.com>
738
739         * cherokee/ext_source.h, cherokee/ext_source.c: Many changes to
740         share code between the FastCGI and SCGI handlers.
741
742         * cherokee/handler_cgi.c, cherokee/handler_cgi.h: This handler is
743         now based on handler_cgi_base.
744
745         * cherokee/handler_cgi_base.c, cherokee/handler_cgi_base.h: New
746         class.  It is the base for the handler CGI and SCGI.
747
748         * cherokee/handler_cgi.h, cherokee/handler_cgi.c,
749         cherokee/Makefile.am: New handler for SCGI!
750        
751 2006-01-28  Alvaro Lopez Ortega  <alvaro@alobbs.com>
752
753         * cget/main.c (do_download__has_headers): It has to use strrchr()
754         instead of rindex(). Fixed.
755
756         * cherokee/server.c (initialize_server_socket6,
757         initialize_server_socket4): Socket #0 is okay. The check was
758         wrong.
759
760         * cherokee/macros.h (CHEROKEE_EXPORT): New macho for Win32
761         defining __declspec(dllexport).
762
763         * cherokee/module_read_config.c (read_config_file): Use
764         CHEROKEE_EXPORT.  The server has to be able to discover this
765         symbol at run time.  In Win32 it is mandatory to use a flag for
766         this.
767        
768         * cherokee/win32_misc.h, cherokee/win32_misc.c (sleep):
769         Implemented sleep() system call for Win32.
770
771         * cherokee/handler_dirlist.c (generate_file_entry): User PATH_MAX
772         is _PC_NAME_MAX is undefined (in Win32).
773
774         * cherokee/ncpus.c: Don't use this function in Win32.  There is
775         port on win32_misc.c.
776
777 2006-01-27  Alvaro Lopez Ortega  <alvaro@alobbs.com>
778
779         * cherokee/socket.c (cherokee_socket_accept_fd): 0 is a valid file
780         descriptor. There is no problem if accept() returns it. Fixed. It
781         fixes bug #12: http://www.0x50.org/bugs/ticket/12
782
783         * cherokee/util.c (cherokee_trace): Now, it can log the debugging
784         information in syslog.  It is handy for debugging the server when
785         it has been launched as daemon (-b switch).
786
787         * cherokee/util.c (cherokee_estimate_va_length): Added support for
788         %p entries.
789
790 2006-01-26  Alvaro Lopez Ortega  <alvaro@alobbs.com>
791
792         * http-cherokee.xml: Added SMF support, by Rodrigo
793         Fernandez-Vizarra <rfdzvizarra@yahoo.ie>
794
795         * SUNWcherokee.spec: Updated. by Rodrigo Fernandez-Vizarra
796         <rfdzvizarra@yahoo.ie>
797
798         * contrib/cherokee: Bugfix by Alex del Pozo Peralta
799         <jdep0016@almez.pntic.mec.es>
800
801 2006-01-24  Alvaro Lopez Ortega  <alvaro@alobbs.com>
802
803         * cherokee/read_config_grammar.y (pidfile), cherokee/server.h,
804         cherokee/server.c (cherokee_server_write_pidfile),
805         cherokee/main.c (common_server_initialization): Now it writes down
806         the pid file after forking as a daemon.
807
808 2006-01-21  Alvaro Lopez Ortega  <alvaro@alobbs.com>
809
810         * cherokee/socket.c (cherokee_socket_connect): Now there are two
811         cases for the connect call: with and without IPv6.  Solaris was
812         failing (EINVAL) because the last argument (the size) was too big.
813
814         * cherokee/macros.h: CHEROKEE_FUNCTION_NAME macro removed in favor
815         of the C99 __func__ variable.
816
817         * configure.in: Added checks for __func__ and __FUNCTION__.
818
819         * qa/067-PathInfo.py: Added a comment about a bug in the current
820         version of PHP5 which affects this test.
821
822         * qa/066-DirectoryIndex3.py (Test.Prepare, Test.Precondition): It
823         wasn't using the Interpreter entry in the test configuration. It
824         is mandatory for the tests. Fixed.
825
826         * cherokee/handler_phpcgi.c (cherokee_handler_phpcgi_new): Fixed a
827         potential SEGFAULT printing the error message.
828
829         * qa/run-tests.py (mainloop_iterator): Little fix. It was failing
830         to test the preconditions in quiet mode (-q).
831
832         * qa/045-Home2.py (Test.Precondition): There was a little typo
833         here: f.close rather f.close(). It wasn't closing the descriptor.
834
835         * configure.in, cherokee/socket.c: Added a check for systems with
836         a broken version of setsockopt (SO_RCVTIMEO): SO_RCVTIMEO is
837         defined but unimplemented.
838
839         * cherokee/buffer.c (cherokee_buffer_escape_html): It was an out
840         by one here. Seems to be fixed now.
841
842         * cherokee/util.c (cherokee_short_path): After each removed block
843         it was coming back too much, which in some cases was causing it go
844         out of the buffer. Fixed.
845
846         * cherokee/handler_cgi.c (parse_header): It should access directly
847         to conn->header_buffer. There is local variable called "buffer"
848         for that. Actually, is the same buffer, but it is cleaner in this
849         way.
850
851         * qa/run-tests.py: Now the -d option (pause for attach a debugger)
852         accepts a number as argument.. it is really handy :-)
853
854         * configure.in: poll() took over port event in Solaris time ago,
855         but the configure information wasn't showing it like that.
856
857 2006-01-20  Alvaro Lopez Ortega  <alvaro@alobbs.com>
858
859         * cherokee/handler_redir.c, cherokee/virtual_server.c,
860         cherokee/virtual_server.h, cherokee/config_entry.c,
861         cherokee/config_entry.h, cherokee/read_config_grammar.y,
862         cherokee/thread.c, cherokee/connection.c, cherokee/dirs_table.c,
863         cherokee/connection-protected.h, configure.in,
864         qa/117-DomainToDir.py, qa/124-DomainToDir2.py, qa/Makefile.am,
865         qa/123-ImplicitRedit.py, qa/base.py, qa/115-Respin.py: This big
866         commit targets a healthier dirs_table and web_directory
867         management.  It adds a new default handler entry in each virtual
868         host, and takes care about redirect the requests that are equal to
869         any the directory entries if it don't end with a slash.  This
870         patch has also changed the way in which the directories are stored
871         in the table: now they never end with a slash.  A positive side
872         effect of this is that it will do less look-ups in each request.
873        
874         * cherokee/icons_grammar.y: Fixed shift/reduce conflict.  Reported
875         by Rodrigo Fernandez-Vizarra <rfdzvizarra@yahoo.ie>.  This fix
876         allows to generate the scanner using Lex (in addition to Flex).
877
878         * cherokee/handler_dirlist.c (generate_file_entry): Bugfix.  It
879         was using _PC_NAME_MAX like a constant with the maximun length
880         rather than call to pathconf(). It was causing a Segment Fault on
881         OpenSolaris.
882
883 2006-01-19  Alvaro Lopez Ortega  <alvaro@alobbs.com>
884
885         * cherokee/socket.c (cherokee_socket_gethostbyname): Wrong
886         conditional compilation entry fixed.  Patch by
887         olivier-ml1@oleastre.be
888
889         * 0.4.30 released
890
891 2006-01-18  Alvaro Lopez Ortega  <alvaro@alobbs.com>
892
893         * Makefile.am (EXTRA_DIST): Changed the old Blastwave compilation
894         scripts for a CBE spec file (by Damien Carbery)
895
896         * cherokee/handler_file.c (cherokee_handler_file_add_headers):
897         uCherokee compilation fix.
898
899         * cherokee/typed_table.h,
900         cherokee/typed_table.c (cherokee_typed_table_set_free): Added new
901         function.
902
903         * configure.in: Added tar-ustar to AM_INIT_AUTOMAKE. It doesn't
904         need to create tar v7.
905
906         * cherokee/fcgi_manager.c (process_buffer): strndup() is
907         unimplemented in both OpenSolaris and BSDes. I have replaced the
908         code which was using strndup() a couple of call to the
909         cherokee_buffer_*() API.
910
911         * configure.in: It uses printf rather than echo and sed in order
912         to fix a compilation problem in OpenSolaris and BSD machines:
913         http://www.0x50.org/bugs/ticket/10
914        
915 2006-01-16  Alvaro Lopez Ortega  <alvaro@alobbs.com>
916
917         * cherokee/util.c (cherokee_trace): Little improvement. I was
918         calling getenv many times if the TRACE_ENV variable wasn't set.
919         Now, it does it only once.
920
921         * cherokee/fcgi_manager.c (connect_to_srv): Now the socket opened
922         to the FastCGI is set in non-blocking mode.
923
924         * cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_step,
925         cherokee_handler_fastcgi_add_headers): Integrated with the
926         connection polling list.
927
928 2006-01-15  Alvaro Lopez Ortega  <alvaro@alobbs.com>
929
930         * cherokee/handler_fastcgi.c (cherokee_handler_fastcgi_add_headers):
931         If the connection could write the request to the server, but it
932         has an ret_error trying to read the reply, it means it must launch
933         a new one.
934
935         * cherokee/fcgi_manager.c, cherokee/fcgi_manager.h,
936         cherokee/read_config_grammar.y, cherokee/fastcgi-common.c,
937         cherokee/fastcgi-common.h, cherokee/handler_fastcgi.c,
938         cherokee/handler_fastcgi.h: Added support for setting environment
939         variables on the FastCGI process.
940
941         * cherokee/fastcgi-common.c (cherokee_fcgi_server_add_env): Added
942         new function.
943
944         * cherokee/handler_fastcgi.c, cherokee/fcgi_manager.c, ,
945         cherokee/fcgi_manager.h: Some FastCGI fixes by Mohammad DAMT.
946
947         * cherokee/handler_fastcgi.h,
948         cherokee/handler_fastcgi.c (add_more_env): Added "Env" support.
949         It allows to add custom environment variables just like the CGI
950         handler.
951
952 2006-01-13  Alvaro Lopez Ortega  <alvaro@alobbs.com>
953
954         * cherokee/http.c (entry): There was a memory corruption problem
955         here. It came from of the yesterday commits.
956
957         * mime.compression.types.sample, Makefile.am (uninstall-local,
958         install-data-local): Added mime.compression.types.sample
959         containing the mime types we want the server to send but not
960         really MIME types but compressors.
961
962         * cherokee/read_config_grammar.y, cherokee/handler_file.c,
963         cherokee/Makefile.am, cherokee/mime.c, cherokee/mime.h,
964         cherokee/server-protected.h, cherokee/module_read_config.c,
965         cherokee/read_config_scanner.l, cherokee/cherokee.h,
966         cherokee/server.c, cherokee/mime_entry.c, cherokee/mime_entry.h,
967         mime.types.sample: Now it reads the format of the /etc/mime.types
968         file.  It also accepts a new configuration entry in the main
969         grammar: MimeType to replace the old functionality.  This big
970         change shouldn't generate any kind of regression, besides the fact
971         the configuration file format has change slightly.
972
973         * mime.conf.sample, cherokee/mime_grammar.y,
974         cherokee/mime_scanner.l: Removed.
975        
976 2006-01-12  Alvaro Lopez Ortega  <alvaro@alobbs.com>
977
978         * cherokee/connection.c (cherokee_connection_get_request),
979         cherokee/thread.c (process_active_connections): It must use
980         http_method_with_input() instead of the checking with http_post.
981
982         * qa/122-Methods.py, qa/Makefile.am (EXTRA_DIST): New test to
983         check non common methods.
984
985         * cherokee/handler_redir.c, cherokee/handler_error_redir.c,
986         cherokee/handler_server_info.c, cherokee/handler_admin.c,
987         cherokee/handler_dirlist.c, cherokee/handler_nn.c,
988         cherokee/handler_common.c, cherokee/config_entry.c,
989         cherokee/module.h, cherokee/config_entry.h, cherokee/thread.c,
990         cherokee/handler_file.c, cherokee/handler.c, cherokee/handler.h,
991         cherokee/handler_fastcgi.c, cherokee/http.c,
992         cherokee/handler_gnomevfs.c, cherokee/http.h,
993         cherokee/logger_ncsa.c, cherokee/handler_cgi.c,
994         cherokee/connection.c, cherokee/server.c,
995         cherokee/handler_phpcgi.c, cherokee/logger_w3c.c,
996         cherokee/connection-protected.h: It will check if the used HTTP
997         method is valid. Each handler has an entry describing which ones
998         are allowed.
999
1000         * qa/base.py (TestCollection): New class
1001
1002         * cherokee/http.h (http_method_with_input): Added new macro. Now
1003         http_post isn't the only method with input.
1004
1005         * cherokee/http.h: Added new http error: 405, method not allowed.
1006         We will need it from now on.   
1007
1008 2006-01-11  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1009
1010         * cherokee/util.c (cherokee_short_path): There was an out by one
1011         here. In some situations, it was reading one byte outside the
1012         reserved memory. It is now fixed.
1013
1014         * cherokee/util.h, cherokee/util.c (cherokee_get_timezone_ref):
1015         timezone is long, not int.
1016
1017         * cherokee/header.c (parse_request_first_line, parse_method):
1018         Added a bunch of methods.  Now it should be able to parse WebDAV
1019         requests.
1020
1021         * cherokee/http.c (cherokee_http_method_to_string,
1022         cherokee_http_version_to_string): Rewritten.
1023
1024         * configure.in: Added a new check for the localtime localtime_r
1025         functions.
1026
1027         * cherokee/util.h, cherokee/util.c (cherokee_localtime,
1028         cherokee_get_timezone_ref): Added new functions.
1029
1030         * cherokee/server.c (update_bogo_now): Fixed, now it sends the
1031         header with the right GMT value. Until now, it was using the
1032         coverted time to GMT (which was the same time, but it is king of
1033         weird to be in GMT+1 and reply header like being in GMT).
1034
1035         * cherokee/logger_w3c.c (cherokee_logger_w3c_write_access)
1036         (cherokee_logger_w3c_write_error),
1037         cherokee/logger_ncsa.c (build_log_string): Integrated with
1038         cherokee_localtime() and cherokee_get_timezone_ref() functions.
1039
1040 2006-01-10  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1041
1042         * cherokee/handler_fastcgi.c (fixup_padding): It keeps track of
1043         the last header package. In this way, it doesn't need to parse the
1044         buffer header in order to set the padding length.
1045
1046 2006-01-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1047
1048         * cherokee/connection.c (cherokee_connection_get_request),
1049         cherokee/thread.c (process_active_connections): If UserDir is
1050         unset it should manage requests starting by /~ like common
1051         requests. Fixed.
1052
1053         * qa/121-NoUserDir.py, qa/Makefile.am: New test: "If UserDir isn't
1054         set, it should threat ~ as a common character"
1055
1056         * cherokee/connection.c (cherokee_connection_get_request): There
1057         was an error in the UserDir redirections.
1058
1059         * www/Makefile.am (install-data-local): Little bugfix.
1060
1061         * cherokee/handler_fastcgi.c (fixup_padding): Applied path by
1062         Mohammad DAMT <mdamt@gnome.org>. The padding entry of the last
1063         packet was set to zero (which was incorrect in 7 of 8 cases).
1064
1065 2006-01-07  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1066
1067         * www/Makefile.am: It shouldn't overwrtie /var/www/index.html if
1068         it already exits. Fixed.
1069
1070 2006-01-01  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1071
1072         * configure.in, cherokee_replace.c, cget/main.c,
1073         cherokee/win32_misc.c, cherokee.spec.in,
1074         cherokee/read_config_grammar.y, cherokee/logger_w3c.h,
1075         cherokee/handler_redir.c, cherokee/fcgi_manager.c,
1076         cherokee/handler_redir.h, fcgi_manager.h,
1077         cherokee/read_config_embedded.c, cherokee/handler_error_redir.c,
1078         module_loader.c, cherokee/handler_server_info.c,
1079         cherokee/read_config_embedded.h, m