-
Notifications
You must be signed in to change notification settings - Fork 105
/
ChangeLog
9542 lines (6283 loc) · 310 KB
/
ChangeLog
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
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2007-07-28 A.D.F <adefacc@tin.it>
* cherokee/source_interpreter.c,
cherokee/sha1.c,
cherokee/regex.c,
cherokee/post.c,
cherokee/ncpus.c,
cherokee/md5crypt.c,
cherokee/md5.c,
cherokee/matching_list.c,
cherokee/match.c,
cherokee/icons.c,
cherokee/header.c
- space / indentation / code style cleanups.
2007-07-26 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/util.c (cherokee_mkstemp): Added new function. It wraps
mkstemp() and cherokee_win32_mkstemp().
2007-07-23 Ross Smith II <cherokeespam at netebb.com>
* cherokee/post.c, cherokee/win32_misc.c, cherokee/win32_misc.h:
Add mkstemp() functionality missing in MinGW.
2007-07-26 Alvaro Lopez Ortega <alvaro@alobbs.com>
* qa/run-tests.py: Added new option for showing how much memory is
the server using during the QA test execution.
2007-07-25 Alvaro Lopez Ortega <alvaro@alobbs.com>
* qa/run-tests.py, qa/help.py (HELP_PRINT_PARAMETERS): -m was
duplicated. The "delay between tests" parameter is now -j.
2007-07-22 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/handler_redir.c, cherokee/read_config_embedded.c,
cherokee/read_config_embedded.h, cherokee/plugin_loader.c,
cherokee/handler_dirlist.c, cherokee/virtual_server.c,
cherokee/win32_misc.c, cherokee/handler_common.c,
cherokee/thread.c, cherokee/buffer.c, cherokee/handler_file.c,
cherokee/main.c, cherokee/unix4win32.h,
cherokee/Makefile.embedded, cherokee/connection.c,
cherokee/server.c, cherokee/virtual_entries.c,
cherokee/reqs_list_entry.c: CHEROKEE_EMBEDDED removed. Nobody was
using it; it didn't make sense to continue maintaining
it. Besides, embedded devices are much more powerful nowadays.
* cherokee/handler.c (cherokee_handler_free): Free the handler
even of something goes wrong with the ->free method.
* cherokee/handler_error.c (build_hardcoded_response_page),
cherokee/connection-protected.h, cherokee/connection.c: Adapted to
the new cherokee_buffer_escape_html() interface and the
buffer_escape removal.
* cherokee/buffer_escape.h, cherokee/buffer_escape.c,
cherokee/Makefile.am: Removed. This class was a mistake and
should no longer exist.
* cherokee/buffer.c (cherokee_buffer_escape_html),
cherokee/buffer.h: Reworked: instead the allocating a new buffer
it generates the escaped version inside the second buffer provided
as argument.
2007-07-21 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/util.h, cherokee/util.c (cherokee_print_errno): Added
new printing error function.
* cherokee/regex.c (cherokee_regex_table_free): Again, another
little tiny memory leak. The server leaked 41 bytes on each
reload. Fixed.
* cherokee/plugin_loader.c (cherokee_plugin_loader_mrproper):
Fixed nano memory leak - no more than 30 or 40 bytes.
* cherokee/avl.c, cherokee/avl.h, cherokee/dirs_table.c,
cherokee/encoder_table.c, cherokee/handler_fastcgi.c,
cherokee/iocache.c, cherokee/thread.h: Converted to use
cherokee_func_free()
* cherokee/common.h: Added new function type: cherokee_func_free.
* cherokee/source_interpreter.c, cherokee/source_interpreter.h,
cherokee/source.h, cherokee/source.c: Another little tiny memory
leak has been fixed here. The freed object wasn't calling its
predecessor destructor.
* cherokee/balancer.c (cherokee_balancer_mrproper): Memory leak
fixed. It wasn't freeing the source objects.
* cherokee/validator_plain.c (cherokee_validator_plain_check):
Rewritten from scratch. Now, it uses temporal buffers instead of a
fixed size temporal array - among other improvements.
* cherokee/validator.c (cherokee_validator_digest_check),
cherokee/validator_plain.c (cherokee_validator_plain_check),
cherokee/validator_mysql.c (cherokee_validator_mysql_check),
cherokee/validator.h: The battle against char * continues! Another
parameter char * converted to our sweet cherokee_buffer_t *.
* cherokee/validator.c (digest_HA2,
cherokee_validator_digest_check): Slightly optimized, a call to
cherokee_buffer_add_va() has been replaced.
* cherokee/validator.c (cherokee_validator_digest_response): Fixed
a 32 bytes memory leak.
* cherokee/iocache.c (cherokee_iocache_free): Now it uses
cherokee_avl_mrproper() instead of cherokee_avl_while() plus
free(). Besides the correctness, it fixed a memory leak.
* cherokee/avl.c: Clean up: avl_node_* static methods renamed.
Rewritten as _new/_free instead of _init/_mrproper.
(cherokee_avl_mrproper): Rewritten to use node_free().
* cherokee/thread.c (process_active_connections),
cheroke/server.c, cherokee/server-protected.h: Reworked in order
to remove the call to cherokee_server_get_conns_num(). A thread
should never query or access other threads (and that's exactly
what method was doing).
* cherokee/thread.c (cherokee_thread_free): It wasn't freeing the
reusable connections. Fixed.
* qa/util.py (count_down): Refactored. There were two places in
which it needed count-downs. This is the common function.
* qa/run-tests.py (clean_up): Added a little pause. We should give
the server sometime to die gratefully between the SIGTERM and
SIGKILL signals.
* qa/Makefile.am, qa/143-ContentRange-NoIO.py,
qa/144-ContentRange2-NoIO.py, qa/145-ContentRange3-NoIO.py,
qa/146-ContentRange4-NoIO.py, qa/147-ContentRange-Double-NoIO.py,
qa/148-ContentRange-Double2-NoIO.py: Added 6 new test to check
partial file management without IOcache.
* cherokee/icons.c (cherokee_icons_free),
cherokee/avl.c (node_first): Protected against NULL pointers.
* cherokee/server.c (cherokee_server_handle_panic): PRINT_ERROR_S
to PRINT_MSG_S. Source file and line number don't help in this
case.
2007-07-19 A.D.F <adefacc@tin.it>
* cherokee/fcgi_manager.c
- removed double call to cherokee_fd_set_nonblocking().
2007-07-19 A.D.F <adefacc@tin.it>
* cherokee/thread.c
- __accept_from_server(), fixed a very uncommon memory leak
on a new connection object;
- enlarged MUTEX_LOCK / MUTEX_UNLOCK section.
2007-07-19 A.D.F <adefacc@tin.it>
* cherokee/socket.c
- cherokee_socket_close(), use cherokee_close_fd()
instead of socketclose(fd) / close(fd);
- space cleanup.
2007-07-17 Alvaro Lopez Ortega <alvaro@alobbs.com>
* doc/Makefile.am: Inhibit concurrent compilation.
2007-07-17 A.D.F <adefacc@tin.it>
* cherokee/util.c
- cherokee_parse_query_string(), skip empty tokens.
2007-07-17 Alvaro Lopez Ortega <alvaro@alobbs.com>
* qa/142-SCGI-ExtraVars.py (PORT): If was duplicated with QA test
#141. It's fixed now.
* cherokee/virtual_server.c, cherokee/virtual_server.h,
cherokee/module.h, cherokee/validator.c, cherokee/encoder_table.c,
cherokee/validator.h, cherokee/regex.c, cherokee/thread.h,
cherokee/handler.h, cherokee/header.h, cherokee/handler_fastcgi.c,
cherokee/handler_proxy.h, cherokee/mime.h, cherokee/logger.h,
cherokee/cherokee.h, cherokee/dirs_table.c, cherokee/mime_entry.h,
cherokee/socket.c: Removed all the cherokee_table_t references.
* cherokee/table.h, cherokee/table.c, cherokee/Makefile.am:
cherokee_table_t does no longer exist.
* cherokee/validator.c:
* cherokee/plugin_loader.h, cherokee/plugin_loader.c,
cherokee/handler_fastcgi.c, cherokee/thread.h, cherokee/thread.c:
cherokee_table_t to cherokee_avl_t convertion.
* cherokee/avl.h, cherokee/avl.c (cherokee_avl_del_ptr): Added
missing method.
* cherokee/resolv_cache.c (cherokee_resolv_cache_clean):
cherokee_table_t to cherokee_avl_t convertion.
* cherokee/avl.c (cherokee_avl_mrproper): Implemented.
* qa/run-tests.py: Count down fixed.
* cherokee/util.h, cherokee/util.c, cherokee/connection.c,
cherokee/connection-protected.h, cherokee/validator.c,
cherokee/nonce.c, cherokee/nonce.h: cherokee_table replaced by
cherokee_avl.
* cherokee/handler_dirlist.c (render_file): Adapted to the last
icons.c change.
* cherokee/icons.h, cherokee/icons.c: Added a new property
blank_icon that is returned when nothing else matches.
2007-07-16 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/icons.c: Converted to use cherokee_buffer_t * instead
of char *.
* cherokee/avl.c (cherokee_avl_mrproper2): Added new method.
* cherokee/exts_table.c, cherokee/regex.c, cherokee/mime.c,
cherokee/encoder_table.c: cherokee_table_t replaced by a
cherokee_avl_t.
* cherokee/avl.c (cherokee_avl_get_ptr): Added new method.
(cherokee_avl_add_ptr): Added new method.
* cherokee/table.c (cherokee_table_add, cherokee_table_get)
(cherokee_table_del): Optimized to use cherokee_buffer_fake
instead of allocating and freeing memory. It should improve the
performance a little bit.
* cherokee/buffer.h (cherokee_buffer_fake): Added new method.
* cherokee/handler_common.c (stat_file): Fixed to handle
ret_no_sys. It's returned when the iocache reaches its limit.
* cherokee/table.c (cherokee_table_get_val): Removed. It was a
mitake to add that method; we should rather use
cherokee_table_get().
* cherokee/exts_table.c (cherokee_exts_table_has),
cherokee/regex.c (cherokee_regex_table_get, _add): We shouldn't
use cherokee_table_get_val(). Moved to use cherokee_table_get().
* cherokee/dirs_table.c, cherokee/dirs_table.h: This class used to
be based on cherokee_table. Switch to cherokee_avl in order to
improve the performance.
* cherokee/iocache.c: Added a new TRACE entries.
* cherokee/handler_file.c (cherokee_handler_file_init): There was
an invalid call to cherokee_iocache_mmap_release() that was the
cause of the infamous 'iocache bug' that has been bothering us for
a couple of weeks. As soon as I have removed it, everything began
to work just fine.
2007-07-16 Brian Rosner <brosner@gmail.com>
* www/doc/django: updated django to r5717 and added VERSION file
to keep track of what version is being used.
* www/index.html: made the default index.html pass w3c validation
defined by the DOCTYPE.
2007-07-14 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/iocache.c: Clean up and added a few TRACE entries.
* qa/run-tests.py, qa/help.py: Depending on the machine and
environment, ten additional seconds to start the server might not
be enough. This change adds a new parameter -r that allows to
specify how long the test runner should wait before running the
first one. Eg: CHEROKEE_TRACE="all" ./run-tests.py -v -c -r50
* qa/run-tests.py: If the server runs with Valgrind, wait 10 more
seconds to start the tests. There were many occasions in which the
servers wasn't ready when the first test was executed.
* cherokee/handler_common.c: Updated. Now it uses the new iocache
interface (buffers instead of char pointers).
* cherokee/avl.c (cherokee_avl_del): Bugfix. Recursion array base
is 0, not 1.
* cherokee/avl.c (cherokee_avl_del): Return the value in the third
parameter (double pointer).
* cherokee/iocache.c: Now it uses an AVL tree instead of a
table. It also accepts cherokee_buffer_t* paths instead of char*
2007-07-13 Brian Rosner <brosner@gmail.com>
* doc/Makefile.am: forgot to include new documentation into
the makefile.
2007-07-13 Alvaro Lopez Ortega <alvaro@alobbs.com>
* doc/Makefile.am: It shouldn't delete the css on clean-up (it
isn't autogenerated). Fixed.
2007-07-13 Brian Rosner <brosner@gmail.com>
* doc/: added some more documentation pages.
* doc/build_docs.py: removed code to delete output_dir and moving
the media folder to output_dir.
2007-07-13 Alvaro Lopez Ortega <alvaro@alobbs.com>
* doc/build_docs.py, doc/Makefile.am: Default building directory
is no longer "./build". Changed to ./
* doc/Makefile.am (CLEANFILES): Added new cleaning rule
* cherokee/server.c (cherokee_server_get_reusable_conns): Clean
up: Removed unused variable.
* cherokee/avl.c: Many changes. It should be working much better
now. For instance, it's no longer recursive.
2007-07-12 A.D.F <adefacc@tin.it>
* cherokee/macros.h
- added get_buf_str(b) macro to get the string member
of a buffer_t.
* cherokee/fdpoll.h
- added cherokee_fdpoll_str_to_method() prototype.
* cherokee/fdpoll.c
- added cherokee_fdpoll_str_to_method() function.
* cherokee/fdpoll-select.c,
cherokee/fdpoll-win32.c
- renamed maxfd_changed to maxfd_recompute.
* cherokee/server.c
- configure_server_property():
- replaced sequence of equal_buf_str() calls with a call to
cherokee_fdpoll_str_to_method();
- added a call to cherokee_fdpoll_get_fdlimits()
to verify whether the chosen poll method is supported by
current environment / OS.
* cherokee/*.c
- added a few comments;
- minor space cleanups.
2007-07-11 A.D.F <adefacc@tin.it>
* cherokee/fdpoll.h
- added cherokee_fdpoll_get_fdlimits() prototype.
* cherokee/fdpoll.c
- added cherokee_fdpoll_get_fdlimits() in order to get
max. system and poll-set fd limits.
* cherokee/fdpoll-protected.h
- added fdpoll_*_get_fdlimits() function prototypes.
* cherokee/fdpoll-epoll.c,
cherokee/fdpoll-kqueue.c,
cherokee/fdpoll-port.c,
cherokee/fdpoll-poll.c,
cherokee/fdpoll-select.c,
cherokee/fdpoll-win32.c
- added fdpoll_*_get_fdlimits() to get specific
fd limits.
* cherokee/server.c
- added test and auto-tune code for fdpoll system and per poll-set
fd limits before cherokee_fdpoll_new();
NOTE: new tests and auto-tune code are performed only
if a poller name (epoll, poll, etc.) is specified
among configuration parameters (righ now,
these tests are meaningful only for select based pollers).
2007-07-11 Brian Rosner <brosner@gmail.com>
* doc/build_docs.py
- ignores hidden files
- various clean-ups for 80 char consoles.
2007-07-11 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/avl.h, cherokee/avl.c (cherokee_avl_check): Added new
check() method to the AVL class. It ensures that the order and
balance is correct.
2007-07-11 Brian Rosner <brosner@gmail.com>
* doc/locale/en/handlers/common.txt,
doc/locale/en/handlers/dirlist.txt,
doc/locale/en/handlers/file.txt,
doc/locale/en/server.txt,
doc/locale/en/configuration.txt,
doc/locale/en/index.txt,
doc/locale/en/validators/mysql.txt,
doc/locale/en/authentication.txt
- fixed line wrapping to work better on consoles of 80 chars.
* doc/build_docs.py
- fixed the docutils requirement. even though it is still
required, it just doesn't fail now.
2007-07-11 Brian Rosner <brosner@gmail.com>
* doc/*,
configure.in,
Makefile.am
- Rewrote the entire documentation system. Everything is done
inside Python using the Django template classes and ReST for
the documentation.
2007-07-10 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/table.c: Adapted to use the new AVL class. There are a
few temporal methods that need to be improved. I'll work on it in
the next days.
* cherokee/avl.c, cherokee/avl.h: Rewritten from scratch. It uses
cherokee_buffer_t's as the index of the nodes, so it should be
slightly faster than the previous implementation.
* cherokee/connection.c (cherokee_connection_setup_error_handler):
It is safer to return ret_ok instead of ret in this case. Fixed.
2007-07-10 A.D.F <adefacc@tin.it>
* cherokee/fdpoll.c
- cherokee_fdpoll_new():
- added error test on max. sys_fd_limit and fd_limit.
* cherokee/fdpoll.h,
cherokee/fdpoll-protected.h
- updated function prototypes.
* cherokee/fdpoll-epoll.c,
cherokee/fdpoll-kqueue.c
- renamed sys_limit to sys_fd_limit and limit to fd_limit
in order to be consistent with other fdpoll-*.c modules;
- space cleanups.
* cherokee/fdpoll-select.c
- _watch():
- use proper type as return value;
- fdpoll_select_new():
- added error test on max. sys_fd_limit.
* cherokee/fdpoll-win32.c
- _set_mode():
- added missing return value;
- fdpoll_win32_new():
- added error test on max. fd_limit.
2007-07-10 Brian Rosner <brosner@gmail.com>
* themes/default_header.html, themes/default_entry.html:
- fixed an issue where User and Group did not display correctly
when they were configured to display.
2007-07-10 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/fdpoll.h: It was missing cherokee_fdpoll_is_empty()
prototype declaration.
* cherokee/fdpoll-select.c (_set_mode): Return the error code on
error.
2007-07-08 Alvaro Lopez Ortega <alvaro@alobbs.com>
* qa/142-SCGI-ExtraVars.py, qa/Makefile.am (EXTRA_DIST): New QA
test. It checks the new 'pass_req_headers' parameter.
* cherokee/handler_cgi_base.c (cherokee_handler_cgi_base_build_envp,
foreach_header_add_unknown_variable): Added new configuration
token 'pass_req_headers' (boolean). It allows to enable to copy
all the unknown headers to the CGI-based handler, whether it's
SCGI, FastCGI or CGI.
* cherokee/header.h,
cherokee/header.c (cherokee_header_foreach_unknown): Added new
method.
2007-07-07 A.D.F <adefacc@tin.it>
* cherokee/cherokee-panic
- added a second call to mktemp that is called
whenever the first call with -t option fails
(old versions of mktemp(1) don't have -t option).
2007-07-07 Alvaro Lopez Ortega <alvaro@alobbs.com>
* qa/run-tests.py, qa/help.py: Added new parameter -m to allow
adding delays between tests.
* qa/run-tests.py, qa/help.py (help_print_parameters): Added a
help message and a new parameter -h.
2007-07-07 A.D.F <adefacc@tin.it>
* cherokee/connection.c
- cherokee_connection_send_header_and mmaped():
- always decrement conn->mmaped_len;
- avoid ptr. math with pointers to void
by using a cast to (char *) and then back to (void *).
* qa/run-tests.py
- Corrected mispelled word (Sucess -> Success).
2007-07-04 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/post.c (cherokee_post_mrproper): Checks if unlink() has
returned an error, and warn if so.
* cherokee/post.c, cherokee/cherokee/post.h: It does no longer use
a FILE * for read/write the temporal files. The call to mktemp()
has been changed by a call to mkstemp() (safer).
2007-07-03 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/win32_cservice.h, cherokee/win32_cservice.c,
cherokee/win32_cherokeeserv.c, windows/cherokee.reg: Added a Win32
service. Code by Ross Smith II <cherokeespam at netebb.com>
* cherokee/Makefile.am (win32_cherokeeserv), windows/cherokee.reg:
Created new binary target, and added win32_cservice.h,
win32_cservice.c and win32_cherokeeserv.c
* cherokee/win32_misc.c: Fixed Emacs indentation mark.
(win_dlerror): Fixed compilation problem around win_dlerror_buf.
* cherokee/win32_misc.h, cherokee/win32_misc.c: Added new func
cherokee_win32_shutdown_signaled(). Patch by Ross Smith II
<cherokeespam at netebb.com>
* cherokee/server.c (cherokee_server_step): Call
cherokee_win32_shutdown_signaled() before checking if the server
wants to stop iterating. (srv->wanna_exit)
* windows/cherokee.nsi.in: MUI_ICON and MUI_ICON needed to be
undefined.
2007-07-03 A.D.F <adefacc@tin.it>
* cherokee/fdpoll-epoll.c,
cherokee/fdpoll-kqueue.c,
cherokee/fdpoll-port.c
- added include file util.h (compilation fix).
2007-07-02 A.D.F <adefacc@tin.it>
* cherokee/win32_misc.c
- win_strerror(): moved a string termination;
- win_dlerror(): added missing ';' (my bad).
2007-07-02 A.D.F <adefacc@tin.it>
* cherokee/plugin_loader.c
- removed redundant call to cherokee_buffer_mrproper (my bad);
- removed a goto;
- space / indentation cleanups.
2007-07-02 A.D.F <adefacc@tin.it>
* cherokee/win32_misc.c
- added comments about MUTEX_LOCK protection to win_dlerror();
* cherokee/plugin_loader.c
- added MUTEX_LOCK protection to dlerror() calls;
- added a few missing cherokee_buffer_mrproper() calls.
2007-07-02 A.D.F <adefacc@tin.it>
* cherokee/util.h
- added new cherokee_strerror_r() prototype;
* cherokee/util.c
- added new cherokee_strerror_r() function
in order to ensure thread safety;
* cherokee/win32_misc.h
- changed win_strerror() prototype;
* cherokee/win32_misc.c
- changed win_strerror() function to accept
a buffer in formal parameters;
* cherokee/buffer.c,
cherokee/cherokee_logrotate.c,
cherokee/fdpoll_epoll.c,
cherokee/fdpoll_kqueue.c,
cherokee/fdpoll_port.c,
cherokee/handler_cgi.c,
cherokee/logger_writer.c,
cherokee/ncpus.c,
cherokee/server.c,
cherokee/socket.c,
cherokee/validator_ldap.c
- replaced strerror() with cherokee_strerror_r() calls.
2007-06-29 A.D.F <adefacc@tin.it>
* cherokee/macros.h
- added new macros: CHEROKEE_MK_TYPE, CHEROKEE_MK_NEW,
CHEROKEE_DCL_STRUCT;
- modified other CHEROKEE_* macros in order to avoid
macro duplication.
2007-06-29 A.D.F <adefacc@tin.it>
* cherokee/validator_plain.c,
cherokee/validator_pam.c,
cherokee/validator_mysql.c,
cherokee/validator_ldap.c,
cherokee/validator_htpasswd.c,
cherokee/validator_htdigest.c,
cherokee/validator.c
- space / indentation / style cleanups.
2007-06-27 A.D.F <adefacc@tin.it>
* cherokee/levenshtein_distance.c,
cherokee/virtual_server_names.c,
cherokee/virtual_server.c,
cherokee/virtual_entries.c
- space / indentation / style cleanups;
- changed #ifdef HAVE_TLS ... #endif
scope in order to not compile unreacheable code.
2007-06-27 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/win32_misc.c: Shouldn't return a pointer to a local
buffer; that memory would be already being used by another
function when the string is needed.
2007-06-27 A.D.F <adefacc@tin.it>
* cherokee/win32_misc.c
- added a few TODO comments on non-thread safe
functions;
- micro style cleanups.
2007-06-27 A.D.F <adefacc@tin.it>
* cherokee/url.c:
- replaced cherokee_buffer_add_va() with equivalent
but faster cherokee_buffer_add_xxx() functions.
2007-06-27 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/win32_misc.c (win_strerror): Fixed infinite
recursion. Patch by Ross Smith II, and Gisle Vanem.
2007-06-25 A.D.F <adefacc@tin.it>
* cherokee/server.c:
- removed multiple calls to cherokee_iocache_cleanup();
- space cleanups;
* cherokee/win32_misc.c:
- space / indentation cleanup.
2007-06-21 A.D.F <adefacc@tin.it>
* cherokee/connection_info.c:
- fix, added MUTEX_UNLOCK where required;
- space cleanups;
* cherokee/thread:
- space cleanup;
* cherokee/util.c:
- fix, test return value of gmtime(), getpwnam(), etc.
calls because they may fail and we don't want
to crash the server because of a NULL pointer
dereference;
- improvement, if thread safe functions (i.e. gmtime_r())
are available then always use them
because they are a bit faster and avoid code duplication
for #ifndef HAVE_PTHREAD case;
- fix, added MUTEX_UNLOCK where required;
- space cleanups.
2007-06-19 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/virtual_server.h: Included unistd.h. Fixes a FreeBSD
compilation problem. Reported by Brian Rosner.
2007-06-13 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/handler_common.c, cherokee/macros.h,
cherokee/handler_file.c, cherokee/Makefile.am, cherokee/table.h,
cherokee//cherokee.h, cherokee/iocache.c, cherokee/connection.c,
cherokee/iocache.h, cherokee/server.c: Many changes that aim to
fix the IOcache class. It is still failing though, this is the
first approach to solve the problem, but there is still work to be
done.
2007-06-11 A.D.F <adefacc@tin.it>
* cherokee/handler_common.c:
- always test for ret == ret_ok before assigning
result to boolean variables;
- sparse space cleanups;
2007-06-01 A.D.F <adefacc@tin.it>
* cherokee/connection.c:
- sparse cleanups;
- cherokee_connection_linger_read(),
retry read only if tmp_buf has been completely filled
so that we spare one read during linger phase
(cherokee_connection_linger_read() is called
in thread.c -> purge_connection() too, so it should
try to read EOF if EOF has not been read yet);
* cherokee/fcgi_manager.c:
- cherokee_fcgi_manager_send_remove(),
removed redundant break (replaced by a return).
2007-05-31 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/thread.c (process_active_connections): It was not
checking for the ret_eagain after calling to the
cherokee_connection_send() function. It was causing some
handlers (like the fcgi one) to truncate the output.
2007-05-30 A.D.F <adefacc@tin.it>
* cherokee/connection.c:
- added a few return(s) after RET_UNKNOWN()
because it is only a debug print (it does no return);
- cherokee_connection_send*():
- reworked code after cherokee_socket_writev()
in order to speedup things for small writes;
- added a couple of FIXME (to avoid ptr. void math).
* cherokee/thread.c:
- cherokee_thread_new:
- added a comment to replace hardcoded numbers
with a formula;
- process_active_connections(),
- added a few decrease of private connection counter
before each purge_closed_connection().
2007-05-30 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/connection.c (cherokee_connection_send): It wasn't
returning ret_eagain when there was remaining information in the
connection buffer. This bug showed up because both IE7 and FF2 had
problems loading some files on Windows.
* cherokee/server.c (cherokee_server_initialize): Not being able
to jail the server inside the chroot is important enough to abort
execution. Previously to this change, it was only warning about
the problem.
2007-05-22 A.D.F <adefacc@tin.it>
* cherokee/macros.h:
- use saner values in defines;
* cherokee/thread.h:
- added new fields to struct cherokee_thread_t
in order to keep exact numbers of connections per thread;
- added new parameter to cherokee_thread_new();
- added new functions (for SINGLE THREAD):
cherokee_thread_accept_on();
cherokee_thread_accept_off();
* cherokee/thread.c:
- cherokee_thread_new():
- added new test conditions, calculation
of conns_accept limit, etc.;
-cherokee_thread_step_SINGLE_THREAD() and
cherokee_thread_step_MULTI_THREAD():
- added code to disable accepting new connections
when there are no more free slots (100% full)
and to reenable accepting new connections
when the number of connections is below 95% - 99%;
- removed calls to cherokee_fdpoll_is_full()
(by using #ifdef 0 ... #endif) because now
we test the number of open connections and
because cherokee_fdpoll_add() tests upper limit
and returns error if it is reached;
- now cherokee_fdpoll_watch() is always called
in order to avoid a busy wait loop when
there are no more free connection slots.
- process_active_connections():
- added tests on total server number of open connections,
if the number is > max_keepalive limit
then keepalive is disabled until that number
goes down (high water principle);
this is done because if the server reaches the max number
of connections and open connections are kept alive,
then the server is no more able to accept new connections
(for minutes or even for hours);
- other minor space cleanups.
* cherokee/server.c:
- removed local define MIN_SPARE_FDS;
- added local define MIN_LISTEN_FDS;
- better distribution of spare fds for each thread;
- forced a minimum number of fds per thread by
lowering the number of requested threads to reach
a minimum number as set in macros.h;
- now if srv->thread_num == 1 then
cherokee_thread_step_SINGLE_THREAD() is called
even if the server has been compiled with HAVE_PTHREAD 1
(this speedup connection handling by 2% - 3%);
- set max_keepalive limit to 93% of max. number of connections
so that server tries to close connections before
it reaches 100% of opened connections (this should prevent
the scenario where server is not able to accept new connections
for minutes or even hours);
- print_banner(),
added new information about max. server connections, etc.;
- minor space cleanups;
* cherokee/handler_server_info.c:
- added new info about current number of server connections
(which is different from the number of active connections);
* cherokee/socket.c:
- cherokee_socket_accept_fd(),
now ECONNABORTED returns ret_deny,
so callers should call this function again (retry loop)
instead of giving up and execute the process phase
(this should speed up a lot the server when clients
try to connect and abort connections before they
are accepted by server).
2007-05-06 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/avl.c (avl_insert_by_key): Micro-optimization: Move the
less probable case to the last position.
* cherokee/table.c (cherokee_table_add),
cherokee/avl.c (avl_insert_by_key): Return ret_deny if it tries to
insert an element that was already on the table. Until now, it was
just ignoring the operation while it was returning
ret_ok. Obviously it was wrong. This change may have some unwanted
side effects, stay tuned.
2007-04-30 A.D.F <adefacc@tin.it>
* cherokee/thread.c:
- substitute 0 for FDPOLL_MODE_READ in remaining
cherokee_fdpoll_check() calls;
- spaces / indentation cleanup.
* cherokee/fdpoll.h:
- added new macros FDPOLL_MODE_*.
* cherokee/macros.h:
- added new macro MIN_THR_FDS and related tests.
* cherokee/server.c:
- adjusted minimum number of fds (file descriptors)
per thread;
- substituted numeric constants 0 / 1 with
equivalent defines FDPOLL_MODE_*.
* cherokee/thread.c, cherokee/fdpoll-*.c:
- substituted numeric constants 0 / 1 with
equivalent defines FDPOLL_MODE_*.
2007-04-22 A.D.F <adefacc@tin.it>
* cherokee/macros.h:
- new macros to handler minimum number of system fds,
spare fds (used by standard I/O streams, i.e. stdin, etc.)
and minimum number of file descriptors really available
to Cherokee.
* cherokee/source.c:
- fixed a socket fd leak in cherokee_source_connect(),
that function does both the open and the connect,
if it fails, caller may retry it, but of course
if socket is open then it must be closed before the retry.
* cherokee/server.c:
- fix the max number of threads againts max. number of
max_fds.
* cherokee/fdpoll.c:
- now that we leave half of fds free to be used to open files, etc.
we can raise the max_fds limit to its real value
2007-04-22 Alvaro Lopez Ortega <alvaro@alobbs.com>
* cherokee/main.c (process_parameters): Added -h parameter. Patch
by Diego Escalante <dieguito@gmail.com>
2007-04-17 A.D.F <adefacc@tin.it>
* cherokee/socket.c:
- cleanup HTTPS session only if it is not NULL;
* cherokee/server.c:
- force good limits for max. number of fds;
* cherokee/thread.c:
- __accept_from_server(),
fix locking and always close new accepted fd
on error (fixes a socket leak which lead
to many idle connections left open).
2007-04-14 A.D.F <adefacc@tin.it>
* cherokee/socket.h:
- be explicit in initializing socket_reading to 0,
because fdpoll* code requires this value;
* cherokee/thread.c:
- fix comment mispelling;
- always close connection on send error.
2007-04-11 A.D.F <adefacc@tin.it>
* cherokee/fdpoll-kqueue.c, cherokee/fdpoll-port.c,
cherokee/fdpoll-win32.c, cherokee/fdpoll-select.c:
- sparse space fixes (indentation, etc.);
- ANSI C _free(ptr);
- cherokee_fdpoll_xxx_new():
- use CHEROKEE_CNEW_STRUCT() to allocate a zeroed struct;
- use calloc() instead of malloc() so that all arrays
are pre-initialized to zero (in some files this is not
useful / required, but it is better to be consistent with
the majority of the other fdpoll-*.c files);
- added missing tests on ptr == NULL and _free() calls.
2007-04-10 A.D.F <adefacc@tin.it>
* cherokee/macros.h:
- correct a mispelling in SHOULDNT_HAPPEN macro;
- added new macro CHEROKEE_CNEW_STRUCT
to allocate 1 - n zeroed structures (just like calloc);
well given the name we could default (nmemb)
parameter to 1 and hardcode it inside the macro;
* cherokee/fdpoll-protected.h:
- fdpoll_func_set_mode_t, changed return type
from void to ret_t because (in theory) it can fail
(at least in some implementations);
* cherokee/fdpoll.h:
- changed prototype of cherokee_fdpoll_set_mode()
in order to return a ret_t instead of void;
* cherokee/fdpoll.c:
- sparse space fixes (indentation, etc.);
- added function: cherokee_fdpoll_is_empty();
- cherokee_fdpoll_set_mode(), changed, now it returns ret_t;
* cherokee/fdpoll-epoll.c:
- sparse space fixes (indentation, etc.);
- cherokee_fdpoll_epoll_t: removed epoll_idx2rs (it was unused)
and renamed epoll_rs2idx in epoll_fd2idx;
- added robustness checks to _free() (against NULL pointers, etc.)
and removed "if (ptr != NULL)" branches because they are not required
by ANSI free (and an ANSI C compiler is required by Cherokee,
besides this I remember that also pre or not fully compliant ANSI C
compilers / libraries often implemented test against NULL in free(),
at least since 1988-1992);
- now _set_mode() returns a ret_t;
- added other tests to the remaining functions to improve robustness;
- moved the positions of a few functions in order
to keep it consistent with other files;
* cherokee/fdpoll-poll.c:
- sparse space fixes (indentation, etc.);
- added robustness checks to _free() (against NULL pointers, etc.);
- added other tests to the remaining functions to improve robustness;
- now _set_mode() returns a ret_t;
* cherokee/fdpoll-select.c:
- now _set_mode() returns a ret_t;
* cherokee/fdpoll-port.c:
- now _set_mode() returns a ret_t;
* cherokee/fdpoll-kqueue.c:
- now _set_mode() returns a ret_t;
* cherokee/fdpoll-win32.c:
- now _set_mode() returns a ret_t;
* cherokee/server.c: