forked from libevent/libevent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog-2.0
1280 lines (1144 loc) · 81.4 KB
/
ChangeLog-2.0
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
Changes in version 2.0.21-stable (18 Nov 2012)
BUGFIXES:
o ssl: Don't discard SSL read event when timeout and read come close together (576b29f)
o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch)
o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch)
o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev)
o build: Use python2 rather than python (0eb0109 Ross Lagerwall)
o build: Compile without warnings on mingw64 (94866c2)
o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4)
o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4)
o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez)
o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3)
o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier)
o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9)
Changes in version 2.0.20-stable (23 Aug 2012)
BUGFIXES:
o core: Make event_pending() threadsafe. (be7a95c Simon Liu)
o win32: avoid crash when waiting forever on zero fds. (160e58b)
o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31)
o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c)
o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67)
o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3)
o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel)
o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43)
PORTABILITY FIXES:
o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel)
o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn)
o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6)
BUILD FIXES:
o Add GCC annotations so that the vsprintf functions get checked properly (117e327)
o Fix an unused variable warning on *BSD. (c0720c1)
UNIT TEST FIXES:
o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall)
o Remove deadcode in http regression tests. Found by coverity. (5553346)
o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777)
o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d)
o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d)
o Fix resource leaks in the unit tests; found by coverity (270f279)
o Add some missing null checks to unit tests; found by coverity (f021c3d)
o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf)
o Remove unused variable; spotted by coverity (6355b2a)
o Add checks to various return values in unit tests. Found by coverity (b9e7329)
o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0)
Changes in version 2.0.19-stable (3 May 2012)
BUGFIXES (CORE):
o Refactor event_persist_closure: raise and extract some common logic (bec22b4)
o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c)
o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40)
BUGFIXES (SSL):
o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey)
BUGFIXES (DNS):
o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel)
o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel)
o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a)
DOCUMENTATION FIXES:
o Fix a typo in the bufferevent documentation (98e9119)
o Add missing ) to changelog; spotted by rransom (4c7ee6b)
o Fix the website URL in the readme (f775521)
COMPILATION FIXES:
o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae)
o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn)
o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg)
FORWARD-COMPATIBILITY:
o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2)
TESTING/DEBUGGING SUPPORT:
o dns-example.c can now take a resolv.conf file on the commandline (6610fa5)
o Make some evdns.c debug logs more verbose (d873d67)
o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd)
Changes in version 2.0.18-stable (22 Mar 2012)
BUGFIXES (core):
o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42)
BUGFIXES (kqueue):
o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn)
BUILD FIXES:
o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey)
o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey)
o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn)
BUGFIXES (dns):
o Stop crashing in evdns when nameserver probes give a weird error (bec5068)
Changes in version 2.0.17-stable (10 Feb 2012)
BUGFIXES (core):
o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5)
o check for sysctl before we use it (358c745 Mike Frysinger)
o Remove bogus casts of socket to int before calling ev_callback (f032516)
o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720)
o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc)
o Fix a fd leak in event_reinit() (3f18ad1)
o Do a memberwise comparison of threading function tables (c94a5f2 Nate R)
o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill)
o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6)
o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott)
BUGFIXES (evbuffer and bufferevents):
o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg)
o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812)
BUGFIXES (evhttp):
o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea)
BUGFIXES (evdns):
o evdns: fix a bug in circular-queue implementation (d6094b1)
BUILD FIXES:
o Fix a silly compilation error with the sun compiler (1927776 Colin Watt)
o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c)
DOCUMENTATION FIXES:
o Slightly clarify evbuffer_peek documentation (7bbf6ca)
o Update copyright notices to 2012 (e49e289)
NEW APIS:
o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker)
TESTS AND TEST FIXES:
o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7)
o Add function to check referential integrity of an event_base (27737d5)
o Check event_base correctness at end of each unit test (3312b02)
o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187)
o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259)
Changes in version 2.0.16-stable (18 Nov 2011)
BUGFIXES (core):
o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov)
o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles)
o Fix compile warning from saying event2/*.h inside a comment (447b0ba)
o Warn when unable to construct base because of failing make_base_notifiable (4e797f3)
o Don't try to make notifiable event_base when no threading fns are configured (e787413)
BUGFIXES (evbuffer):
o unit test for remove_buffer bug (90bd620 Greg Hazel)
o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c)
BUGFIXES (bufferevent_openssl):
o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey)
o Move SSL rate-limit enforcement into bytes_to_read() (96c562f)
o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey)
BUGFIXES (dns)
o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov)
TESTING:
o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov)
o Test for commit aff6ba1 (f7841bf Leonid Evdokimov)
o Style and comment tweaks for dns/leak* tests (5e42202)
o improve test to remove at least one buffer from src (7eb52eb Greg Hazel)
DOCUMENTATION:
o Add note about evhttp_send_reply_end to its doxygen (724bfb5)
o Update copyright dates to 2011. (3c824bd)
o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid)
o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem)
Changes in version 2.0.15-stable (12 Oct 2011)
BUGFIXES (DNS):
o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov)
o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov)
BUFGIXES (bufferevents and evbuffers):
o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex)
o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9)
BUGFIXES (event loop):
o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a)
DOCUMENTATION FIXES:
o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov)
o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel)
BUILD AND TESTING FIXES:
o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev)
o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382)
o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey)
o Make write-checking fixes use tt_fail_perror (2b76847)
o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7)
Changes in version 2.0.14-stable (31 Aug 2011)
BUGFIXES (bufferevents and evbuffers):
o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch)
o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn)
o Fix handling of group rate limits under 64 bytes of burst (6d5440e)
o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf)
o Make rate limiting work with common_timeout logic (5b18f13)
o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch)
BUGFIXES (IOCP):
o IOCP: don't launch reads or writes on an unconnected socket (495c227)
o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b)
o Have test-ratelim.c support IOCP (0ff2c5a)
o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd)
o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d)
BUGFIXES (other):
o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov)
o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov)
BUILD AND TESTING FIXES:
o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston)
o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart)
o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn)
Changes in version 2.0.13-stable (18 Jul 2011)
BUGFIXES
o Avoid race-condition when initializing global locks (b683cae)
o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch)
o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey)
o Avoid a segfault when all methods are disabled or broken (27ce38b)
o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a)
o Add some missing checks for mm_calloc failures (89d5e09)
o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d)
o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab)
o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid)
o Use the correct printf args when formatting size_t (3203f88)
o Complain if the caller tries to change threading cbs after setting them (cb6ecee)
DOCUMENTATION FIXES AND IMPROVEMENTS
o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac)
o Update Doxyfile to produce more useful output (aea0555)
TEST FIXES
o Fix up test_evutil_snprintf (caf695a)
o Fix tinytest invocation from windows shell (57def34 Ed Day)
BUILD FIXES
o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d)
o Fix select.c compilation on systems with no NFDBITS (49d1136)
o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott)
o Don't break when building tests from git without python installed (b031adf)
o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn)
o Fix AIX build issue with TAILQ_FOREACH definition (e934096)
Changes in version 2.0.12-stable (4 Jun 2011)
BUGFIXES
o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0)
o Fix an assert-inducing fencepost bug in the select backend (d90149d)
o Fix failing http assertion introduced in commit 0d6622e (0848814 Kevin Ko)
o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1)
o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid)
o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey)
o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey)
DOCUMENTATION:
o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d)
BUILD FIXES
o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin)
o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin)
o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn)
o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn)
o Correctly detect openssl on windows (6619385 Sebastian Hahn)
o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn)
o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart)
o Fix new warnings from GCC 4.6 (06a714f)
o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin)
o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin)
o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin)
o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin)
o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin)
o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin)
o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin)
o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin)
o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn)
o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin)
o cygwin: make it possible to build DLLs (d54d3fc)
Changes in version 2.0.11-stable (27 Apr 2011)
[Autogenerated from the Git log, sorted and cleaned by hand.]
BUGFIXES:
o Fix evport handling of POLLHUP and POLLERR (b42ce4b)
o Fix compilation on Windows with NDEBUG (cb8059d)
o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye)
o Detect and handle more allocation failures. (666b096 Jardel Weyrich)
o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich)
o Handle resize failures in the select backend better. (83e805a)
o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b)
o Make --enable-gcc-warnings a no-op if not using gcc (3267703)
o Fix a type error in our (unused) arc4random_stir() (f736198)
o Correctly detect and stop non-chunked http requests when the body is too long (63a715e)
o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7)
o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko)
o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot)
o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko)
o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko)
o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko)
o Fix a crash bug in evdns server circular list code (00e91b3)
o Handle calloc failure in evdns. (Found by Dave Hart) (364291e)
o Fix a memory leak on win32 socket->event map. (b4f89f0)
o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn)
o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn)
PORTABILITY:
o Fall back to sscanf if we have no other way to implement strtoll (453317b)
o Build correctly on platforms without sockaddr_storage (9184563)
o Try to build correctly on platforms with no IPv6 support (713c254)
o Build on systems without AI_PASSIVE (cb92113)
o Fix http unit test on non-windows platforms without getaddrinfo (6092f12)
o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0)
o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn)
o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn)
o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn)
o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn)
o Check for allocation failures in apply_socktype_protocol_hack (637d17a)
o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b)
o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68)
DEFENSIVE PROGRAMMING:
o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7)
BUGS IN TESTS:
o Fix test.sh output on solaris (b4f89b6 Dave Hart)
o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn)
o Use %s with printf in test.sh (039b9bd)
o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn)
o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn)
o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn)
o add some (void) casts for unused variables (65707d7 Sebastian Hahn)
o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn)
o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn)
o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn)
o Remote some dead code from dns-example.c (744c745 Sebastian Hahn)
o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn)
BUILD FIXES:
o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn)
o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn)
o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn)
o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart)
o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart)
o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn)
FEATURES:
o Make URI parser able to tolerate nonconformant URIs. (95060b5)
DOCUMENTATION:
o Clarify event_set_mem_functions doc (926f816)
o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924)
o fix spelling mistake in whatsnew-2.0.txt (deb2f73)
o Fix sample/http-server ipv6 fixes (eb692be)
o Comment internal headers used in sample code. (4eb281c)
o Be explicit about how long event loops run in event.h documentation (f95bafb)
o Add comment to configure.in to explain gc-sections test logic (c621359)
o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665)
BUILD IMPROVEMENTS:
o Use the gcc -ffunction-segments feature to allow gc when linking with static libevent (0965c56 Dave Hart)
o Add configure options to disable installation, regression tests (49e9bb7 Dave Hart)
Changes in version 2.0.10-stable (16 Dec 2010)
[Autogenerated from the Git log, sorted and cleaned by hand.]
BUGFIXES
o Minor fix for IOCP shutdown handling fix (2599b2d Kelly Brock)
o Correctly notify the main thread when activating an event from a subthread (5beeec9)
o Reject overlong http requests early when Expect:100-continue is set (d23839f Constantine Verutin)
o EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings with -DNDEBUG. (b63ab17 Evan Jones)
CODE CLEANUPS
o bufferevent-internal.h: Use the new event2/util.h header, not evutil.h (ef5e65a Evan Jones)
o Use relative includes instead of system includes consistently. (fbe64f2 Evan Jones)
o Make whitespace more consistent
TESTING
o tests: Use new event2 headers instead of old compatibility headers. (4f33209 Evan Jones)
DOCUMENTATION
o Document that the cpu_hint is only used on Windows with IOCP for now (57689c4)
o Add stuff to "whats new in 2.0" based on reading include changes since August. (18adc3f)
Changes in 2.0.9-rc (30 Nov 2010):
[Autogenerated from the Git log, sorted and cleaned by hand.]
NEW AND MODIFIED APIs
o Add a function to change a listener's callback. (46ee061)
o Make evbuffer_add_file take ev_off_t, not off_t (ac7e52d)
o Make rate-limits go up to SIZE_MAX/EV_SSIZE_MAX, not just INT32_MAX (2cbb1a1)
o Add a bufferevent_get_base function (aab49b6)
MAJOR BUGFIXES
o Disable changelist for epoll by default because of Linux dup() bug; add an option and/or an envvar to reenable it for speed. (9531763)
o Fix a 100%-CPU bug where an SSL connection would sometimes never stop trying to write (1213d3d)
o Fix a nasty bug related to use of dup() with epoll on Linux (c281aba)
o Fix bugs in posix thread-id calculation when sizeof(pthread_t) != sizeof(long) (fbaf077)
o Fix some ints to evutil_socket_t; make tests pass on win64. (f817bfa Dimitre Piskyulev)
o Set _EVENT_SIZEOF_VOID_P correctly on win32 and win64 (1ae82cd Dimitre Piskyulev)
o Avoid double-invocation of user callback with EVUTIL_EAI_CANCEL (abf01ed)
o Set SO_UPDATE_ACCEPT_CONTEXT on sockets from AcceptEx so that shutdown() can work (52aa419)
o When closing a filtering bufferevent, clear callbacks on the underlying bufferevent (fc7b1b0)
NEW AND MODIFIED HTTP APIs
o Add evhttp_parse_query_str to be used with evhttp_uri_parse. (2075fbc)
o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
o Define enumerators for all HTTP methods, including PATCH from RFC5789 (75a7341 Felix Nawothnig)
o Functions to actually use evhttp_bound_socket with/as evconnlistener. (006efa7)
o Add evhttp_request_get_command so code can tell GET from POST without peeking at the struct. (49f4bf7)
o Introduce absolute URI parsing helpers. (86dd720 Pavel Plesov)
o Revise evhttp_uri_parse implementation to handle more of RFC3986 (eaa5f1d)
o Add evhttp_connection_get_base() to get the event_base from an http connection (cd00079)
o Let evhttp_parse_query return -1 on failure (b1756d0)
o New evhttp_uri(encode|decode) functions to handle + and NUL characters right (a8148ce)
o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
o Tweak interface for allowed methods (f5b391e)
o Add evhttp server alias interface, correct flagging of proxy requests. (aab8c38 Christopher Davis)
HTTP BUGFIXES
o Add some comments to http.c and make a few functions static. (90b3ed5)
o Fix Content-Length when trying send more than 100GB of data (!) on an evhttp. (525da3e)
o Fix a bug where we would read too much data in HTTP bodies or requests. (58a1cc6)
o Correctly count req->body_size on http usage without Content-Length (8e342e5)
o Avoid missed-request bug when entire http request arrives before data is flushed (74c0e86)
o reset "chunked" flag when sending non-chunked reply (aa5f55f Joachim Bauch)
o evhttp_encode_uri encodes all reserved characters, including !$'()*+,/:=@ (2e63a60)
o Replace exact-version checks for HTTP/1.1 with >= or < checks (647e094)
o evhttp: Return 501 when we get an unrecognized method, not 400. (536311a)
o Don't disable reading from the HTTP connection after sending the request to be notified of connection-close in time (c76640b Felix Nawothnig)
o Never call evhttp_readcb while writing. (0512487)
o Try to fix an assertion failure related to close detection (0faaa39)
o Correctly detect timeouts during http connects (04861d5)
o Preliminary support for Continue expectation in evhttp. (fa9305f Christopher Davis)
OTHER BUGFIXES
o Correct logic for realigning a chain in evbuffer_add (e4f34e8)
o Fix a minor syntax error that most compilers didn't care about (e56ff65)
o Fix some uses of int for socket in regress (5d389dc)
o Check return value for ioctlsocket on win32 (f5ad31c Trond Norbye)
o Fix som event_warns that should have been event_warnx (19c71e7)
o Fix signal handler types for win64. (b81217f)
o Try to clear up more size_t vs int/long issues. (598d133)
o Make sure IOCP evconnlistener uses virtual events. (7b40a00 Christopher Davis)
o Don't free evdns_request handles until after the callback is invoked (9ed30de)
o Fix some more cancel-related bugs in getaddrinfo_async (c7cfbcf)
o Make evdns_getaddrinfo_cancel threadsafe (d51b2fc)
o Only clear underlying callbacks when the user hasn't reset them. (1ac5b23)
o Fix bug in bufferevent_connect on an openssl bufferevent that already had an fd (4f228a1)
o Resolve an evport bug in the thread/forking test (3a67d0b)
o Make sure the CLOEXEC flag is set on fds we open for base notification (3ab578f)
o Fix IRIX build. sa_family collides with a #define in sys/socket.h on IRIX. (e874982 Kevin Bowling)
o If not WIN32, include <sys/socket.h> in event2/util.h. (1cd45e5 Kevin Bowling)
o Fix some C99-style comments to work with the xlC compiler. (c2e5e22 Kevin Bowling)
o Add some checks since lack of TAILQ_FOREACH doesn't imply lack of FIRST, END, NEXT, or INSERT_BEFORE. Quiet some warnings in XL C. (c4dc335 Kevin Bowling)
o Reworked AIX __ss_family workaround to use AC_STRUCT_MEMBER. (2e2a3d7 Kevin Bowling)
o Take select from <sys/select.h> when testing in autoconf. AIX build fix. (a3a9f6b Kevin Bowling)
o Fix snprintf related failures on IRIX. (3239073 Kevin Bowling)
o Remove _event_initialized(); make event_initialized() a function(); make it consistent on windows and non-windows (652024b)
o Do not let EVLOOP_ONCE exit the loop until all deferred callbacks have run (2d5e1bd)
o Make EVLOOP_ONCE ignore internal events (0617a81)
o Possible crash fix when freeing an underlying bufferevent of an openssl bufferevent (29f7623)
HTTP CLEANUPS
o Stop using Libevent-1 headers in regress_http (1f507d7)
o Modernize header usage in bench_http.c (e587069)
o fix signed/unsigned warnings in http.c (74a91e5)
o Update the HTTP regression tests to use Libevent2 apis for non-http stuff (d9ffa89)
o Start porting http tests to not use legacy interfaces (8505a74)
o Convert the rest of the http tests to be non-legacy unit tests. (9bb8239)
o Rename the confusing "base" static variable in regress_http.c (353402a)
o Stop accessing http request struct directly from in the unit tests. (0b137f4)
o Refactor http version parsing into a single function (a38140b)
TESTING
o Improvements to tinytest_macros.h (ad923a1)
o Add a huge pile of tests for the new URI functions, and make them pass. (a5a76e6)
o Unit tests for evhttp_uri_set* (bc98f5e)
o Increase the skew tolerance to 2 seconds in thread/deferred_cb_skew (f806476 Christopher Davis)
o Reorder backends in test.sh to match preference order in event.c (ece974f)
o Add a stress test for getaddrinfo_cancel (da1bf52)
o Units test for unexpected evhttp methods. (75e3320)
DOCUMENTATION
o Document behavior of URI parsing more thoroughly. (3a33462)
o Document that two bufferevent functions only work on socket bufferevents (70e1b60)
o add a requested docstring for event_rpcgen.CommandLine.__init__ (f1250eb)
o Fix a mistake in http documentation found by Julien Blache (229714d)
o Add a basic example of how to write a static HTTP server. (4e794d5)
o Document event_get_assignment (88be27d)
o Note that reentrant calls to libevent from logging cbs may fail badly (e431bcd)
o Clarify EVLOOP_* documentation to be more precise. (057a514)
CLEANUPS
o Simplify the logic for choosing EPOLL_CTL_ADD vs EPOLL_CTL_MOD (2c66983)
o Rename "size" variables in win32select that were really fd counts. (b6a158c)
o Fix even more win64 warnings (7484df6)
o Fix even more win64 warnings: buffer, event_tagging, http, evdns, evrpc (545a611)
o Fix more wn64 warnings. (34b84b9 Christopher Davis)
o Use the label_len local variable in evdns instead of recalculating it over and over (ba01456)
o Fix some irix compilation warnings spotted by Kevin Bowling (7bcace2)
Changes in 2.0.8-rc (14 Oct 2010):
[Autogenerated from the Git log, sorted and cleaned by hand.]
NEW APIS
o Add error callback to evconnlistener (c4be8d8 Simon Perreault)
o Add a LEV_OPT_THREADSAFE option for threadsafe evconnlisteners (127d4f2)
CHANGED BEHAVIOR
o Correct logic on disabling underlying bufferevents when disabling a filter (ac27eb8)
BUGFIXES
o Obey enabled status when unsuspending (040a019 Simon Perreault)
o Warn when using the error-prone EV_SIGNAL interface in an error-prone way. Also, fix a couple of race conditions in signal.c (720bd93)
O Make default signal backend fully threadsafe (95a7d41)
o Put internal events at highest priority (90651b3)
o Fix warnings in the main codebase flagged by -Wsigned-compare (9c8db0, 5e4bafb, 5c214a, 6be589a, e06f514)
o Fix compile in kqueue.c (b395392 Sebastian Hahn)
o Do not search outside of the system directory for windows DLLs (d49b5e3)
o Fix a spurious-call bug on epoll.c (0faaee0)
o Send a shutdown(SHUT_WR) before closing an http connection (e0fd870 Christopher Davis)
o Fix warnings on mingw with gcc 4.5 (5b7a370)
o Fix an EINVAL on evbuffer_write_iovec on OpenSolaris. (fdc640b)
o Fix allocation error for IOCP listeners. Probably harmless, since struct event is big (481ef92)
o Make iocp/listener/error work; don't accept again if lev is disabled. (62b429a Christopher Davis)
o Handle rate-limiting for reading on OpenSSL bufferevents correctly. (819b171)
o Fix serious bugs in per-bufferevent rate-limiting code (34d64f8)
o Avoid spurious reads from just-created open openssl bufferevents (223ee40)
o Fix a case where an ssl bufferevent with CLOSE_ON_FREE didn't close its fd (93bb7d8)
o The corrected bufferevent filter semantics let us fix our openssl tests (34331e4)
TESTING
o Make SSL tests cover enabling/disabling EV_READ. (a5ce9ad)
o Bump to the latest version of tinytest (f0bd83e)
o Unit tests for listener error callbacks (045eef4)
o New unit test for ssl bufferevents starting with connected SSLs. (02f6259)
DEBUGGABILITY
o Make debugging output for epoll backend more comprehensive (ec2b05e)
o Make event.c debugging messages report fds (e119899)
o Make the --enable-gcc-warnings option include signed comparison warnings (d3b096c)
DEADCODE REMOVAL
o Remove the now-useless evsig_caught and evsig_process (4858b79)
o Remove event_base.evsigbase; nothing used it. (38d0960)
Changes in 2.0.7-rc (9 Sep 2010):
[Autogenerated from the Git log, sorted and cleaned by hand.]
NEW APIS
o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143)
o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis)
BUGFIXES
o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43)
o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini)
o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini)
o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd)
o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843)
o Fix kqueue correctness test on x84_64 (6123d12)
o Detect events with no ev_base; warn instead of crashing (f1074b7)
o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3)
o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20)
o On windows, make lock/thread function tables static (5de2bcb)
o Close th_notify_fds and open a new pair on reinit (495ed66)
o Declare signal handler function as "__cdecl" on Windows (f0056d0)
o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc)
o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis)
THREADING BUGFIXES
o Avoid deadlock when activating signals (970e6ad)
o Add a condition variable backend, with implementations for pthreads and win32 (d4977b5)
o Use conditions instead of current_event_lock to fix a deadlock (e0972c2)
o Fix logic error in win32 TRY_LOCK that caused problems with rate-limiting (4c32b9d)
o Avoid needlessly calling evthread_notify_base() when the loop is not running (c7a06bf)
o Minimize calls to base_notify implementation functions, thereby avoiding needless syscalls (4632b78)
IOCP BUGFIXES
o IOCP-related evbuffer fixes (03afa20 Christopher Davis)
o Stop IOCP when freeing the event_base (d844242 Christopher Davis)
o Some IOCP bufferevent tweaks (76f7e7a Christopher Davis)
TESTS
o Make the regress_pthread.c tests work on windows with current test APIs (d74ae38)
o Add a unit test for conditions (5fb1095)
o Allow more than one copy of regression tests to run at once (a97320a)
o Fix event_del(0) instance in bench.c (b0f284c Shuo Chen)
o Fix a few memory leaks in the tests (1115366)
o IOCP-related unit test tweaks (499452f Christopher Davis)
o Improve testing of when thread-notification occurs (ce85280)
BUILD AND DISTRIBUTION
o Add pkgconfig files for libevent_{openssl,pthreads} (ebcb1f0)
o Change include order in Makefile.nmake (4022b28)
o Make include/event2/event-config.h not included in source dist (a4af9be)
o Honor NDEBUG; build without warnings with NDEBUG; make NDEBUG always-off in unit test code (743f866)
o Declare evkeyvalq and event_list even if event_struct.h comes before sys/queue.h (d3ceca8)
o Move evkeyvalq into a separate header for evhttp_parse_query users (ca9048f)
o Prefer autoreconf -ivf to manual autogen.sh (7ea8e89)
CLEANUP
o Completely remove the (mostly-removed) obsolete thread functions (3808168)
o Rename regress_pthread.c to regress_thread.c (041989f)
o Make defer-internal.h use lock macros, not direct calls to lock fns (5218d2a)
DOCUMENTATION
o Document that DNS_NO_SEARCH is an obsolete alias for DNS_QUERY_NO_SEARCH (33200e7)
o Update the whatsnew-2.0.txt document (4991669)
Changes in 2.0.6-rc (6 Aug 2010):
[Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
o Document a change in the semantics of event_get_struct_event_size() (e21f5d1)
o Add a comment to describe our plan for library versioning (9659ece)
o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6)
NEW FEATURES AND INTERFACE CHANGES
o Remove the obsolete evthread interfaces (c5bab56)
o Let evhttp_send_error infer the right error reasons (3990669)
o Add a function to retrieve the other side of a bufferevent pair (17a8e2d)
o Add bufferevent_lock()/bufferevent_unlock() (215e629)
o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59)
o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167)
o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d)
o Add an interface to expose min_share in ratelimiting groups (6ae53d6)
BUGFIXES
o Avoid event_del on uninitialized event in event_base_free (6d19510)
o Add some missing includes to fix Linux build again (75701e8)
o Avoid close of uninitialized socket in evbuffer unit test (bda21e7)
o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b)
o If no evdns request can be launched, return NULL, not a handle (b14f151)
o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3)
o Fix the default HTTP error template (06bd056 Felix Nawothnig)
o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf)
o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig)
o never let bufferevent_rlim functions return negative (0859870)
o Make sample/hello_world work on windows (d89fdba)
o Fix a deadlock related to event-base notification. Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2)
o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie)
o Don't race when calling event_active/event_add on a running signal event (fc5e0a2)
o Suppress a spurious EPERM warning in epoll.c (e73cbde)
o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks)
o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie)
o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye)
o Fix rate-limit calculation on openssl bufferevents. (009f300)
o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis)
BUILD AND DISTRIBUTION CHANGES
o Test the unlocked-deferred callback case of bufferevents (dfb75ab)
o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc)
o Use -Wlogical-op on gcc 4.5 or higher (d14bb92)
o Add the libtool-generated /m4/* stuff to .gitignore (c21c663)
o Remove some automake-generated files from version control. (9b14911)
o Have autogen.sh pass --force-missing to automake (8a44062)
o Set library version for libevent_pthreads correctly (b2d7440)
o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn)
o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71)
o Fix unit tests with -DUSE_DEBUG enabled (28f31a4)
o Fix evdns build with -DUNICODE (5fa30d2)
o Move event-config.h to include/event2 (ec347b9)
TESTING
o Add options to test-ratelim.c to check its results (2b44dcc)
o Make test-ratelim clean up after itself better. (b5bfc44)
o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7)
o Remove all non-error prints from test/regress.c (8bc1e3d)
o Make test.sh exit with nonzero status if tests fail (faf2a04)
o Have the unit tests report errors from test.sh (3689bd2)
o Fix logic in correcting high values from FIONREAD (3467f2f)
o Add test for behavior on remote socket close (44d57ee)
o Unit test for event_get_struct_event_size() (7510aac)
o Make test/test.sh call test-changelist (7c92691)
o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch)
o Add option to test-ratelim to test min_share (42f6b62)
o Fix an assertion bug in test-ratelim (b2c6202)
o Make tests quieter on local dns resolver failure (e996b3d)
o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2)
o Use AF_INET socketpair to test sendfile on Solaris (9b60209)
o Make test-changelist count cpu usage right on win32 (ea1ea3d)
INTERNALS, PERFORMANCE, AND CODE CLEANUPS
o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed)
o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3)
o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4)
o Remove some dead assignments (47c5dfb)
o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee)
o Drain th_notify_fd[0] more bytes at a time. (a5bc15b)
o Tidy up the code in evthread_make_base_notifiable a little (61e1eee)
o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1)
o Remove unused variables in test/test-changelist.c (b00d4c0)
o Fix whitespace. (cb927a5)
o Improve error message for failed epoll to make debugging easier. (9e725f7)
o Turn our socketpair() replacement into its own function (57b30cd)
Changes in 2.0.5-beta (10 May 2010):
[Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
o Update all our copyright notices to say "2010" (17efc1c)
o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57)
o Clarify Christopher Clark's status as writer of original ht code. (78772c3)
o Try to comment some of the event code more (cdd4c49)
o Add a few more evmap/changelist comments (c247adc)
o Add a comment to explain why evdns_request is now separte from request (ceefbe8)
o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a)
o Stop distributing and installing manpages: they were too inaccurate (7731ec8)
NEW FEATURES AND INTERFACE CHANGES
o Remove signal_assign() and signal_new() macros. (2fac0f7)
o Make evdns use the regular logging system by default (b2f2be6)
o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3)
o Functions to manipulate existing rate limiting groups. (ee41aca)
o Functions to track the total bytes sent over a rate limit group. (fb366c1)
o Detect and refuse reentrant event_base_loop() calls (b557b17)
o Limit the maximum number of events on each socket to 65535 (819f949)
o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c)
o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen)
o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen)
o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb)
o Make evutil_secure_rng_init() work even with builtin arc4random (f980716)
o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis)
o Release locks on bufferevents while executing callbacks (a5208fe Joachim Bauch) o Make debug mode catch mixed ET and non-ET events on an fd (cb67074)
o Catch attempts to enable debug_mode too late (9ecf0d4)
o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis)
BUGFIXES
o Avoid a spurious close(-1) on Linux (70a44b6)
o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3)
o Free evdns_base->req_heads on evdns_base_free (859af67)
o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431)
o Set mem_offset for every bufferevent type (657d1b6)
o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich)
o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith)
o Fix minheap code to use replacement malloc functions (a527618)
o Fix a free(NULL) in minheap-internal.h (6f20492)
o Fix critical bug in evbuffer_write when writev is not available (cda56ab)
o Make the no_iovecs case of write_atmost compile (8e227b0)
o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3)
o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis)
o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis)
o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano)
o Clean up properly when adding a signal handler fails. (b84b598 Gilad Benjamini) o Ensure that evdns_request is a persistent handle. (15bb82d Christopher Davis)
o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis)
o Assert for valid requests as necessary. (67072f3 Christopher Davis)
o do not leak the request object on persistent connections (9d8edf2)
o Make evdns logging threadsafe (b1c7950)
o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7)
o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a)
o fix a leak when unpausing evrpc requests (94ee125)
o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2)
o Fix compilation when openssl support is disabled (40c301b)
o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf)
o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn)
o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis)
o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29)
o Fix symbol conflict between mm_*() macros and libmm (99e50e9)
o Fix some crazy macro mistakes in arc4random.c (90d4225)
o Make evbuffer_add_file() work on windows (dcdae6b)
o Fix unused-variable warning when building with threads disabled (ad811cd)
o Numerous opensolaris compilation fixes (c44de06)
o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28)
o Fix another nasty solaris getaddrinfo() behavior (3557071)
o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a)
o Fix some autoconf issues on OpenBSD (7c519df)
BUILD AND DISTRIBUTION CHANGES
o Distribute libevent.pc.in, not libevent.pc (22aff04)
o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield)
o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield)
o Support the standard 'make check' target in place of 'make verify' (426c8fb)
o Remove redundant stuff from EXTRA_DIST (b660edf)
o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5)
o Remove an orphaned RELEASE flag in Makefile.am (0794b0d)
o Give a better warning for bad automake versions. (77c917d)
o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7)
o Never test for select() on windows (3eb044d Trond Norbye)
o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano)
o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano)
o Add ctags/etags files to .gitignore (0861d17)
o Only specify -no-undefined on mingw (25433b9)
o Only add libevent_core.la to LIBADD on mingw (fdc6297)
TESTING
o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis)
o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis)
o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3)
o Fix a write of uninitialized RAM in regression tests (68dc742)
o Fix some memory leaks in the unit tests (274a7bd)
o Make 'main/many_events' test 70 fds, not 64. (33874b0)
o Unit-test every evbuffer_add_file() implementation. (06a4443)
o Add more unit tests for evbuffer_expand (8c83e99)
o Test another case of evbuffer_prepend (1234b95)
o Fix a possible double-free bug in SSL bufferevents with CLOSE_ON_FREE (7501895) o Add dns/search_cancel unit test. (39b870b Christopher Davis)
o Make http_base_test stop leaking an event_base. (96730d3)
o Detect broken unsetenv at unit-test runtime (f37cd4c)
o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1)
o add more (currently skipped) add_file tests on win32 (05de45d)
o Fix bench_http build on win32. (384d124)
o Make unit test for add_file able to tell "error" from "done" (88a543f)
o Make test for bufferevent_connect_hostname system-neutral (f89168e)
o Make test.sh support mingw/msys on win32 (0ee6f6c)
o Fix test.sh on freebsd (3d9e05b)
INTERNALS, PERFORMANCE, AND AND CODE CLEANUPS
o Improve the speed of evbuffer_readln() (cc1600a)
o more whitespace normalization (2c2618d)
o Revise evbuffer to add last_with_data (2a6d2a1)
o Use last_with_data in place of previous_to_last (c8ac57f)
o Remove previous_to_last from evbuffer (6f47bd1)
o Fix last_with_data compilation on windows (1e7b986)
o Add some glass-box tests for the last_with_data code. (17da042)
o Improve robustness for refcounting (f1bc125)
o Remove a needless min_heap_shift_up_() call (7204b91)
o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4)
o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3)
o Make evbuffer_prepend handle empty buffers better (c87272b)
o Replace last_with_data with a slightly smarter version (b7442f8)
o Turn the increasingly complex *_CHAIN() macros into functions (96865c4)
o Rewrite evbuffer_expand and its users (d5ebcf3)
o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis)
o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6)
o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg)
o Move domain search state to evdns_request. (beaa14a Christopher Davis)
o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f)
o Rename current_base symbol to event_global_current_base_ (c16e684)
o Fix whitespace in evutil.c (935e150)
o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0)
Changes in 2.0.4-alpha (28 Feb 2010):
[Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
o Add stub header for 2.0.4-alpha changelog. (94d0065)
o Improve the README with more information and links. (0b42726)
o Add more people who wrote patches to the acknowledgments (0af10d5)
o Add a warning about the use of event_initialized. (f32b575)
o Add a LICENSE file so people can find our license easily (7067006)
o Add a new "hello world" sample program (becb9f9)
o Clarify status of example programs (d60a1bd)
o Update time-test.c to use event2 (f4190bf)
o Add the arc4random.c license to the LICENSE file. (e15e1e9)
NEW FEATURES AND INTERFACE CHANGES
o Improved optional lock debugging. (0cd3bb9)
o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd)
o Testing code for bufferevent rate-limiting. (f0c0124)
o Make the initial nameserver probe timeout configurable. (1e56a32)
o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f)
o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379)
o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534)
o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich)
o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666)
o Look at the proper /etc/hosts file on windows. (66c02c7)
o Allow http connections to use evdns for hostname looksups. (c698b77)
o Changelist code to defer event changes until just before dispatch (27308aa)
o do not use a function to assign the evdns base; instead assign it via evhttp_connection_base_new() which is a new function introduced in 2.0 (5032e52)
o Functions to access more fields of struct event. (0683950)
o Make kqueue use changelists. (45e5ae3)
o Remove kqueue->pend_changes. (3225dfb)
o Minimize epoll_ctl calls by using changelist (c8c6a89)
o Add support for a "debug mode" to try to catch common errors. (cd17c3a)
o Note a missing ratelim function (361da8f)
o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81)
o const-ify a few more functions in event.h (d38a7a1)
o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694)
o Remove EVUTIL_CHECK_FMT. (6c21c89)
o Add EV_*_MAX macros to event2/util.h to expose limits for ev_* types. (aba1fff) o Functions to view and manipulate rate-limiting buckets. (85047a6)
o Add the rest of the integer limits, and add a test for them. (60742d5)
o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d)
o Add an arc4random implementation for use by evdns (d4de062)
o Use off_t for the length parameter of evbuffer_add_file (3fe60fd)
o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b)
o Expose view of current rate limit as constrained by group limit (162ce8a)
o Provide consistent, tested semantics for bufferevent timeouts (d328829)
BUGFIXES AND TESTS
o Tolerate code that returns from a fatal_cb. (91fe23f)
o Parenthesize macro arguments more aggressively (07e9e9b)
o Fix memory-leak of signal handler array with kqueue. (e1ffbb8)
o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7)
o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838)
o Fix a locking bug in event_base_loop() (da1718b)
o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao)
o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern)
o Fix up evthread compilation on windows (bd6f1ba Roman Puls)
o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown)
o Update nmake makefile to build evthread.c (b62d979 unknown)
o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko)
o Fix a snow leopard compile warning in the unit tests. (7ae9445)
o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn)
o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch)
o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones)
o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch)
o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch)
o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527)
o Set all instances of the version number correctly. (5a112d3)
o Fix a few locking issues on windows. (c51bb3c unknown)
o Use evutil_socket_t, not int, when logging socket errors. (292467c)
o Fix up behavior of never-defered callbacks a little (390e056)
o Replace some cases of uint32_t with ev_uint32_t. (a47d88d)
o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen)
o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich)
o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich)
o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich)
o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich)
o Fix the code that allowed DNS options to not end with : (ee4953f)
o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea)
o Fix test-ratelim compilation on Linux. (885b427)
o Fix compilation of rate-limiting code on win32. (165d30e)
o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich)
o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6)
o Fixed a memory leak on windows threads implementation. The CRITICAL_SECTION was not being free'd in evthread_win32_lock_free(). (2f33e00 Jardel Weyrich)
o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich)
o Improved error handling in evconnlistener_new_async(). Also keeping the fd open because it is not opened by this function, so the caller is responsible for closing it. Additionally, since evconnlistener_new_bind() creates a socket and passes it to the function above, it required error checking to close the same socket. (fec66f9 Jardel Weyrich)
o Don't use a bind address for nameservers on loopback (8d4aaf9)
o Fix compilation of rate-limit code when threading support is disabled (97a8c79)
o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971)
o Check more internal event_add() calls for failure (ff3f6cd)
o Fix windows and msvc build (5c7a7bc)
o Call event_debug_unassign on internal events (a19b4a0)
o Try to fix a warning in hash_debug_entry (137f2c6)
o Fix a dumb typo in ev_intptr_t definitions. (27c9a40)
o do not fail while sending on http connections the client closed. (93d7369)
o make evhttp_send() safe against terminated connections, too (3978180)
o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield)
o Fix some additional -DUNICODE issues on win32. (a7a9431)
o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e)
o Always use our own gai_strerror() replacement. (6810bdb)
o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea)
o validate close cb on server when client connection closes (2f782af)
o Fix two unlocked reads in evbuffer. (7116bf2)
o When working without a current event base, don't try to use IOCP listeners (cb52838)
o Fix getpid() usage on Windows (ff2a134)
o Add a unit test for secure rng. (48a29b6)
o Add some headers to fix freebsd compilation (b72be50)
o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9)
o Suspend read/write on bufferevents during hostname lookup (db08f64)
o Make bufferevent_free() clear all callbacks immediately. (b2fbeb3)
o Fix some race conditions in persistent events and event_reinit (e2642f0)
o Fix a bug in resetting timeouts on persistent events when IO triggers. (38ec0a7)
o Add a test for timeouts on filtering bufferevents. (c02bfe1)
o Add test for periodic timers that get activated for other reasons (8fcb7a1)
o Use new timeval diff comparison function in bufferevent test (f3dfe46)
o Delete stack-alloced event in new unit test before returning. (7ffd387)
o Fix mingw compilation (23170a6)
o Try to define a sane _EVENT_SIZEOF_SIZE_T for msvc compilation (1e14f82)
o Fix arc4random compilation on MSVC. (98edb89)
o deal with connect() failing immediately (7bc48bf)
o Small cleanups on freebsd-connect-refused patch. (57b7248)
BUILD AND DISTRIBUTION CHANGES
o Remove the contents of WIN32-Prj as unmaintained. (c69d5a5)
o Allow the user to redirect the verbose output of test/test.sh to a file (c382de6)
o Allow test.sh to be run as ./test/test.sh (7dfbe94)
o Never believe that we have pthreads on win32, even if gcc thinks we do. (78ed097)
o Make it compile under gcc --std=c89. (e2ca403)
o Fix a number of warnings from gcc -pedantic (918e9c5)
o Add the msvc-generated .lib files to .gitignore. (e244a2e)
o Add the "compile" script to gitignore. (1ba6bed)
INTERNALS AND CODE CLEANUPS
o Add a .gitignore file. (ba34071)
o New EVTHREAD_TRY_LOCK function to try to grab a lock. (689fc09)
o Add the ability to mark some buffer callbacks as never-deferred. (438f9ed)
o Refactor our 'suspend operation' logic on bufferevents. (0d744aa)
o Simplify the read high-watermark checking. (5846bf6)
o Improve readability of evutil_unparse_protoname() (5a43df8 Jardel Weyrich)
o Expose our cached gettimeofday value with a new interface (47854a8)
o Whitespace fixes in test.sh (0b151a9)
o Enable branch-prediction hints with EVUTIL_UNLIKELY. (eaaf27f)
o Refactor code from evdns into a new internal "read a file" function. (0f7144f)
o Cosmetic changes in evconnlistener_new(), new_accepting_socket(), accepted_socket_invoke_user_cb() and iocp_listener_enable(). (510ab6b Jardel Weyrich)
o Add unit-test for bad_request bug fixed in 1.4 recently. (6cc79c6 Pavel Plesov) o Add a comment on evthread_enable_lock_debuging. (b9f43b2)
o Fix test.sh on shells without echo -n (94131e9)
o More unit tests for getaddrinfo_async: v4timeout and cancel. (a334b31)