]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/beast/CHANGELOG.md
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / beast / CHANGELOG.md
1 Version 144-hf1:
2
3 * Update reports for hybrid assessment
4 * Handle invalid deflate frames
5 * Install codecov on codecov CI targets only
6
7 --------------------------------------------------------------------------------
8
9 Version 144:
10
11 * Fix websocket permessage-deflate negotiation
12
13 --------------------------------------------------------------------------------
14
15 Version 143:
16
17 * Fix autobahn report link
18
19 --------------------------------------------------------------------------------
20
21 Version 142:
22
23 * Warn about upcoming API changes to certain concepts
24 * Fix name typo in http write test
25
26 --------------------------------------------------------------------------------
27
28 Version 141:
29
30 * Tidy up some documentation
31
32 --------------------------------------------------------------------------------
33
34 Version 140:
35
36 * Fix some integer warnings in 64-bit builds
37 * Fix utf8_checker test failures
38 * Fix signature for async_read_some, and tests
39 * Tidy up basic_parser
40 * Some basic_fields special members are protected
41
42 --------------------------------------------------------------------------------
43
44 Version 139:
45
46 * Revisit boost library min/max guidance
47
48 --------------------------------------------------------------------------------
49
50 Version 138:
51
52 * Tidy up some documentation
53
54 --------------------------------------------------------------------------------
55
56 Version 137:
57
58 * ConstBufferSequence mandates pointer equivalence
59 * Add FieldsWriter constructor requirement
60 * Tidy up some documented constructor syntax
61
62 --------------------------------------------------------------------------------
63
64 Version 136:
65
66 * Tidy up message doc image
67
68 --------------------------------------------------------------------------------
69
70 Version 135:
71
72 * Fix typo in example server help text
73
74 --------------------------------------------------------------------------------
75
76 Version 134:
77
78 * Add static_buffer_base default constructor definition
79
80 --------------------------------------------------------------------------------
81
82 Version 133:
83
84 * Remove const&& overload of message::body
85
86 --------------------------------------------------------------------------------
87
88 Version 132:
89
90 * Tidy up project folders in CMakeLists.txt
91 * Rename Cmake variables for clarity
92 * Add ref-qualified overloads for message::body
93 * Tidy up FieldsReader doc
94
95 API Changes:
96
97 * Fields::writer replaces Fields::reader
98 * BodyReader and BodyWriter names are swapped
99
100 Actions Required:
101
102 * Rename reader to writer for user defined Fields
103 * Swap the reader and writer names for user defined Body types
104 * Swap use of is_body_reader and is_body_writer
105
106 --------------------------------------------------------------------------------
107
108 Version 131:
109
110 * basic_fields returns const values
111 * Set SNI hostname in example SSL clients
112
113 --------------------------------------------------------------------------------
114
115 Version 130:
116
117 * Tidy up fallthrough warning
118 * Remove cxx11_sfinae_expr build requirement from tests
119
120 --------------------------------------------------------------------------------
121
122 Version 129:
123
124 * Add autobahn test report to doc
125 * Documentation tidying
126 * Fix prepare_payload: chunked is HTTP/1.1
127
128 --------------------------------------------------------------------------------
129
130 Version 128:
131
132 * Update doc links
133 * Add explicit-failures-markup.xml
134
135 HTTP:
136
137 * Add message::need_eof
138 * Use message::need_eof in example servers
139 * Use synchronous writes in chunk output example
140
141 WebSocket:
142
143 * Fix utf8 validation for autobahn
144 * Temporarily disable utf8 validation tests
145 * Tidy up fast websocket server host names
146
147 API Changes:
148
149 * Remove serializer::keep_alive
150 * Remove serializer::chunked
151 * Add has_content_length_impl to Fields
152 * Add message::has_content_length
153 * Rename some basic_parser observers
154
155 Actions Required:
156
157 * Call message::keep_alive instead of serializer::keep_alive
158 * Call serializer::get::chunked instead of serializer::chunked
159 * Implement has_content_length_impl for user-defined Fields
160 * Remove the "is_" prefix from call sites invoking certain basic_parser members
161
162 --------------------------------------------------------------------------------
163
164 Version 127:
165
166 * Add BOOST_BEAST_NO_POSIX_FADVISE
167 * Version command line option for HTTP client examples
168 * More Jamfile compiler requirements for tests
169
170 --------------------------------------------------------------------------------
171
172 Version 126:
173
174 * Add CppCon2017 presentation link
175 * Update README.md
176 * Update stream write documentation for end of stream changes
177 * Tidy up unused variable warnings
178 * Don't return end_of_stream on win32 file body writes
179 * Fix doc typo
180 * Fix shadowing in session_alloc
181 * Fix executor type compilation
182 * Add Travis tests with the default compilers
183 * Update Boost.WinAPI usage to the new location and namespace.
184 * Fix buffered_read_stream async_read_some signature
185
186 --------------------------------------------------------------------------------
187
188 Version 125:
189
190 API Changes:
191
192 * Update for Net-TS Asio
193
194 Actions Required:
195
196 * Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
197 * Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
198 * Use boost::asio::async_completion
199 * Use boost::asio::is_dynamic_buffer
200 * Use boost::asio::is_const_buffer_sequence
201 * Use boost::asio::is_mutable_buffer_sequence
202 * boost::asio::associated_allocator_t replaces handler_alloc
203
204 --------------------------------------------------------------------------------
205
206 Version 124:
207
208 * Fix for a test matrix compiler
209 * Fix basic_fields javadoc
210
211 API Changes:
212
213 * http write returns success on connection close
214
215 Actions Required:
216
217 * Add code to servers to close the connection after successfully
218 writing a message where `message::keep_alive()` would return `false`.
219
220 --------------------------------------------------------------------------------
221
222 Version 123:
223
224 * Use unit-test subtree
225 * Fix spurious race in websocket close test
226 * Check compiler feature in Jamfile
227 * Clear previous message fields in parser
228
229 --------------------------------------------------------------------------------
230
231 Version 122:
232
233 * Add test for issue 807
234 * assert on empty buffer in websocket read
235 * Fix zlib symbol conflicts
236 * CMake 3.5.1 is required
237 * config.hpp is not a public header
238 * Add missing case in error test
239
240 --------------------------------------------------------------------------------
241
242 Version 121:
243
244 * Add test for issue 802
245 * Fix enum and non-enum in conditional exp. warning
246
247 --------------------------------------------------------------------------------
248
249 Version 120:
250
251 * Fix spurious strand_ in advanced_server_flex
252 * OpenSSL targets are optional (CMake)
253
254 --------------------------------------------------------------------------------
255
256 Version 119:
257
258 * Tidy up doc badge links
259
260 --------------------------------------------------------------------------------
261
262 Version 118:
263
264 * file_win32 opens for read-only in shared mode
265 * Remove unused strands in server examples
266 * Update build instructions
267 * Doc root is at index.html
268
269 HTTP:
270
271 * Fix writing header into std::ostream
272
273 --------------------------------------------------------------------------------
274
275 Version 117:
276
277 * Add buffers_to_string
278
279 API Changes:
280
281 * buffers_suffix replaces consuming_buffers
282 * buffers_prefix replaces buffer_prefix
283 * buffers_prefix_view replaces buffer_prefix_view
284 * buffers_front replaces buffer_front
285 * buffers_cat replaces buffer_cat
286 * buffers_cat_view replaces buffer_cat_view
287 * Remove buffers_suffix::get
288
289 Actions Required:
290
291 * Use buffers_suffix instead of consuming_buffers
292 * Use buffers_prefix instead of buffer_prefix
293 * Use buffers_prefix_view instead of buffer_prefix_view
294 * Use buffers_front instead of buffer_front
295 * Use buffers_cat instead of buffer_cat
296 * Use buffers_cat_view instead of buffer_cat_view
297 * Avoid calling buffers_suffix::get
298
299 --------------------------------------------------------------------------------
300
301 Version 116:
302
303 API Changes:
304
305 * message::body is a member function
306 * message::version is a member function
307
308 Actions Required:
309
310 * Call member function message::body instead of accessing
311 the data member at call sites.
312
313 * Call member function message::version instead of accessing
314 the version member at call sites.
315
316 --------------------------------------------------------------------------------
317
318 Version 115:
319
320 * Update README.md master doc link
321
322 --------------------------------------------------------------------------------
323
324 Version 114:
325
326 (No changes)
327
328 --------------------------------------------------------------------------------
329
330 Version 113:
331
332 * Fix handler signature in async_read_header
333 * Remove field_range copy constructor
334
335 --------------------------------------------------------------------------------
336
337 Version 112:
338
339 * Update websocket notes
340
341 API Changes:
342
343 * WebSocket writes return the bytes transferred
344
345 * HTTP reads and writes return bytes transferred
346
347 Actions Required:
348
349 * Modify websocket write completion handlers to receive
350 the extra std::size_t bytes_transferred parameter.
351
352 * Modify HTTP read and/or write completion handlers to
353 receive the extra std::size_t bytes_transferred parameter.
354
355 --------------------------------------------------------------------------------
356
357 Version 111:
358
359 WebSocket:
360
361 * Fix utf8 check split code point at buffer end
362 * Refactor stream operations and tests plus coverage
363 * Suspended ops special members
364
365 --------------------------------------------------------------------------------
366
367 Version 110:
368
369 * Refactor stream open state variable
370 * Refactor websocket stream members
371 * Refactor websocket stream: fixes and tests
372 * Add test::stream::lowest_layer
373 * Fix invalid iterator in test reporter
374
375 --------------------------------------------------------------------------------
376
377 Version 109:
378
379 * refactor test::stream
380
381 WebSocket:
382
383 * Fix async_read_some handler signature
384 * websocket close fixes and tests
385 * websocket handshake uses coroutine
386 * websocket ping tests
387 * Fix websocket close_op resume state
388 * websocket write tests
389 * split up websocket tests
390 * websocket read tests
391
392 API Changes:
393
394 * websocket accept refactoring
395
396 Actions Required:
397
398 * Do not call websocket accept overloads which take
399 both a message and a buffer sequence, as it is
400 illegal per rfc6455.
401
402 --------------------------------------------------------------------------------
403
404 Version 108:
405
406 * Fix argument parsing in HTTP examples
407 * Don't use async_write_msg in examples
408
409 --------------------------------------------------------------------------------
410
411 Version 107:
412
413 * Use test::stream
414
415 WebSocket
416
417 * Fix done state for WebSocket reads
418 * Fix utf8 check for compressed frames
419 * Rename frame and header buffer types
420
421 --------------------------------------------------------------------------------
422
423 Version 106:
424
425 * Dynamic buffer input areas are mutable
426 * Add flat_static_buffer::reset
427
428 HTTP:
429
430 * Fix for basic_parser::skip(true) and docs
431
432 WebSocket:
433
434 * websocket test improvements
435 * Remove obsolete write_op
436 * Refactor write_op
437 * Refactor ping_op
438 * Refactor fail_op
439 * Refactor read_op
440 * Refactor close_op
441 * Refactor read_op + fail_op
442 * Websocket close will automatically drain
443 * Autobahn|Testsuite fixes
444 * Tidy up utf8_checker and tests
445
446 --------------------------------------------------------------------------------
447
448 Version 105:
449
450 * Fix compile error in websocket snippet
451 * Tidy up Jamfile and tests
452
453 --------------------------------------------------------------------------------
454
455 Version 104:
456
457 * Remove unused include
458 * Use #error in config.hpp
459 * Only set -std=c++11 on Travis
460 * Only set /permissive- on Appveyor
461 * Tidy up some test warnings
462 * tools/ renamed from build/
463
464 WebSocket:
465
466 * Fix pausation::save
467
468 --------------------------------------------------------------------------------
469
470 Version 103:
471
472 * Boost test matrix fixes
473 * Tidy up allocator usage
474 * Example HTTP server fixes
475
476 --------------------------------------------------------------------------------
477
478 Version 102:
479
480 * Section headings in examples
481
482 --------------------------------------------------------------------------------
483
484 Version 101:
485
486 * Refactor all examples
487
488 --------------------------------------------------------------------------------
489
490 Version 100:
491
492 * Fix doc convenience includes
493 * Fix doc includes
494 * Remove unused test header
495 * Rename test macros
496 * Reorder define test macro params
497 * vcxproj workaround for include symlinks
498 * Add variadic min/max
499
500 WebSocket:
501
502 * Remove obsolete frame tests
503 * Refactor fail/clode code
504 * Call do_fail from read_some
505 * eof on accept returns error::closed
506 * Fix stream::read_size_hint calculation
507 * Documentation
508
509 API Changes:
510
511 * Calls to stream::close and stream::async_close will
512 automatically perform the required read operations
513
514 * drain_buffer is removed
515
516 * role_type replaces teardown_tag
517
518 Actions Required:
519
520 * Remove calling code which drains the connection after
521 calling stream::close or stream::async_close
522
523 * Replace code which uses drain_buffer. For websocket::stream,
524 it is no longer necessary to manually drain the connection
525 after closing.
526
527 * Modify signatures of teardown and async_teardown to use
528 role_type instead of teardown_tag
529
530 * Change calls to teardown and async_teardown to pass the
531 correct role_type, client or server, depending on context.
532
533 --------------------------------------------------------------------------------
534
535 Version 99:
536
537 * Log the value of LIB_DIR for doc builds (debug)
538 * Use correct handler signature in fail_op
539 * Fix doc typo
540
541 --------------------------------------------------------------------------------
542
543 Version 98:
544
545 * basic_fields::key_compare is noexcept
546 * Fix bench-zlib cmake
547 * Use unique names Jam projects
548 * Trim utf8 checker test
549
550 --------------------------------------------------------------------------------
551
552 Version 97:
553
554 * Update redirect
555
556 --------------------------------------------------------------------------------
557
558 Version 96:
559
560 * Move bench/ to test/
561 * Move extras/ to test/
562 * Use <valgrind> property
563 * Rename wsload compile target
564 * Fix library.json
565 * Update boostorg links
566 * Add bench-zlib
567 * Faster zlib tests
568 * Less compression on websocket test
569
570 --------------------------------------------------------------------------------
571
572 Version 95:
573
574 * Tidy up Travis build scripts
575 * Move scripts to build/
576 * Fix race in test::pipe
577 * close on test::pipe teardown
578 * Add test::stream
579 * Tidy up static_buffer braced init
580 * Fix html redirect
581 * Add valgrind variant, fix false positives
582
583 --------------------------------------------------------------------------------
584
585 Version 94:
586
587 * Use off-site Quick Start link temporarily
588
589 --------------------------------------------------------------------------------
590
591 Version 93:
592
593 * Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
594
595 --------------------------------------------------------------------------------
596
597 Version 92:
598
599 * Fix typo in test/CMakeLists.txt
600 * basic_fields::value_type is not copyable
601 * Update repository links in source comments
602 * Ignore Content-Length in some cases
603 * Tidy up doc snippet paths
604 * Use off-site doc link
605
606 --------------------------------------------------------------------------------
607
608 Version 91:
609
610 * Adjust redirect html
611 * Don't build pre-C++11
612 * source.dox is path-independent
613 * Tidy up namespace qualifiers
614 * Tidy up MSVC CMakeLists.txt
615 * Optimize buffered_read_stream
616 * constexpr in derived buffers
617 * Set BOOST_ASIO_NO_DEPRECATED
618 * Use Asio array optimization in static_buffer_base
619 * Rename wstest source file
620 * Use fopen_s on Windows
621 * Fix Appveyor script
622 * Update project metadata
623 * Move benchmarks to bench/
624 * Fix doc title
625 * Build stand-alone doc
626 * Update doc copyrights
627 * Refactor test build scripts
628
629 WebSocket:
630
631 * Tidy up websocket javadocs
632 * Refactor accept, handshake ops
633 * Use read buffer instead of buffered stream
634
635 API Changes
636
637 * control frame callbacks are non-const references
638
639 Actions Required:
640
641 * Modify calls to set the control frame callback, to
642 pass non-const reference instances, and manage the
643 lifetime of the instance.
644
645 --------------------------------------------------------------------------------
646
647 Version 90:
648
649 * Fix websocket read of zero length message
650 * Fix typo in equal_range
651 * Output to integrated documentation
652
653 --------------------------------------------------------------------------------
654
655 Version 89:
656
657 * Fix CONTRIBUTING.md links
658
659 --------------------------------------------------------------------------------
660
661 Version 88:
662
663 * Update doc links in README.md
664 * Refactor tests Jamfile
665 * Don't use program_options
666
667 WebSocket:
668
669 * Fix uninitialized frame done
670
671 --------------------------------------------------------------------------------
672
673 Version 87:
674
675 * Update appveyor for Boost branch
676 * Rename to BEAST_EXPECT
677 * variant fixes and tests
678 * Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
679
680 --------------------------------------------------------------------------------
681
682 Version 86:
683
684 * Boost prep
685 * Remove use of lexical_cast
686 * Use custom variant
687 * Update README.md
688 * Add local-travis.sh
689 * Use winapi
690 * Update CMakeLists.txt for boost
691 * Update documentation for boost
692 * Update copyrights
693 * Remove spurious declaration
694 * Tidy up Jamfile
695 * Normalize doc build scripts
696 * Use configured doxygen and xsltproc
697 * Fix Deferred Body Type Example Documentation
698 * Add library metadata
699
700 API Changes:
701
702 * websocket read returns the number of bytes inserted
703
704 Actions Required:
705
706 * Change the signature of completion handlers used with
707 websocket::stream::async_read to void(error_code, std::size_t)
708
709 --------------------------------------------------------------------------------
710
711 Version 85:
712
713 * Fix test failure
714 * Tidy up test warning
715
716 --------------------------------------------------------------------------------
717
718 Version 84:
719
720 * Tidy up buffer_front
721 * static_buffer::consume improvement
722 * multi_buffer is type-check friendly
723 * bind_handler allows placeholders
724 * Add consuming_buffers::get
725
726 WebSocket:
727
728 * WebSocket read optimization
729
730 API Changes:
731
732 * websocket::stream::read_buffer_size is removed
733
734 Actions Required:
735
736 * Remove calls websocket::stream::read_buffer_size
737 * Use read_some and write_some instead of read_frame and write_frame
738
739 --------------------------------------------------------------------------------
740
741 Version 83:
742
743 * Add flat_static_buffer::mutable_data
744 * Add buffer_front
745 * Add wstest compression option
746 * Turn some flat_static_buffer_tests on
747 * Documentation work
748 * read_some, async_read_some return bytes used
749 * Fix private timer::clock_type
750
751 WebSocket
752
753 * Add wstest compression option
754 * Fix buffer lifetime in websocket write
755
756 API Changes:
757
758 * Add static_buffer
759
760 Actions Required:
761
762 * Callers who depend on static_buffer returning sequences of
763 exactly length one should switch to flat_static_buffer.
764
765 --------------------------------------------------------------------------------
766
767 Version 82:
768
769 * Documentation tidying
770 * is_invocable works with move-only types
771 * Use std::function and reference wrapper
772 * Add session_alloc to example/common
773 * Silence spurious warning
774
775 HTTP
776
777 * Fix extraneous argument in async_write_header
778
779 WebSocket
780
781 * stream tidying
782 * Add rd_close_ to websocket stream state
783 * stream uses flat_buffer
784 * accept requires a message
785 * Add wstest benchmark tool
786
787 API Changes:
788
789 * Rename to flat_static_buffer and flat_static_buffer_base
790
791 Actions Required:
792
793 * Rename static_buffer to flat_static_buffer_base
794 * Rename static_buffer_n to flat_static_buffer
795
796 --------------------------------------------------------------------------------
797
798 Version 81:
799
800 * Pass string_view by value
801 * better is_final on empty_base_optimization
802 * Suppress incorrect GCC warning
803 * multi_buffer ctor is explicit
804 * File is not copy-constructible
805
806 API Changes:
807
808 * Refactor basic_parser, chunk parsing:
809
810 Actions Required:
811
812 * Adjust signatures for required members of user-defined
813 subclasses of basic_parser
814
815 * Use the new basic_parser chunk callbacks for accessing
816 chunk extensions and chunk bodies.
817
818 --------------------------------------------------------------------------------
819
820 Version 80:
821
822 * Javadoc tidying
823 * Add basic_dynamic_body.hpp
824 * Shrink buffer_prefix_view
825 * Remove unused file_path
826 * Add basic_file_body.hpp
827 * buffers_ref is Assignable
828
829 HTTP
830
831 * Shrink chunk header buffer sequence size
832
833 API Changes:
834
835 * Refactor chunked-encoding serialization
836
837 Actions Required:
838
839 * Remove references to ChunkDecorators. Use the new chunk-encoding
840 buffer sequences to manually produce a chunked payload body in
841 the case where control over the chunk-extensions and/or trailers
842 is required.
843
844 --------------------------------------------------------------------------------
845
846 Version 79:
847
848 * Remove spurious fallthrough guidance
849
850 --------------------------------------------------------------------------------
851
852 Version 78:
853
854 * Add span
855 * Documentation work
856 * Use make_unique_noinit
857 * Fix warning in zlib
858 * Header file tidying
859 * Tidy up FieldsReader doc
860 * Add Boost.Locale utf8 benchmark comparison
861 * Tidy up dstream for existing Boost versions
862 * Tidy up file_posix unused variable
863 * Fix warning in root ca declaration
864
865 HTTP:
866
867 * Tidy up basic_string_body
868 * Add vector_body
869 * span, string, vector bodies are public
870 * Fix spurious uninitialized warning
871 * fields temp string uses allocator
872
873 API Changes:
874
875 * Add message::keep_alive()
876 * Add message::chunked() and message::content_length()
877 * Remove string_view_body
878
879 Actions Required:
880
881 * Change user defined implementations of Fields and
882 FieldsReader to meet the new requirements.
883
884 * Use span_body<char> instead of string_view_body
885
886 --------------------------------------------------------------------------------
887
888 Version 77:
889
890 * file_posix works without large file support
891
892 --------------------------------------------------------------------------------
893
894 Version 76:
895
896 * Always go through write_some
897 * Use Boost.Config
898 * BodyReader may construct from a non-const message
899 * Add serializer::get
900 * Add serializer::chunked
901 * Serializer members are not const
902 * serializing file_body is not const
903 * Add file_body_win32
904 * Fix parse illegal characters in obs-fold
905 * Disable SSE4.2 optimizations
906
907 API Changes:
908
909 * Rename to serializer::keep_alive
910 * BodyReader, BodyWriter use two-phase init
911
912 Actions Required:
913
914 * Use serializer::keep_alive instead of serializer::close and
915 take the logical NOT of the return value.
916
917 * Modify instances of user-defined BodyReader and BodyWriter
918 types to perfrom two-phase initialization, as per the
919 updated documented type requirements.
920
921 --------------------------------------------------------------------------------
922
923 Version 75:
924
925 * Use file_body for valid requests, string_body otherwise.
926 * Construct buffer_prefix_view in-place
927 * Shrink serializer buffers using buffers_ref
928 * Tidy up BEAST_NO_BIG_VARIANTS
929 * Shrink serializer buffers using buffers_ref
930 * Add serializer::limit
931 * file_body tests
932 * Using SSE4.2 intrinsics in basic_parser if available
933
934 --------------------------------------------------------------------------------
935
936 Version 74:
937
938 * Add file_stdio and File concept
939 * Add file_win32
940 * Add file_body
941 * Remove common/file_body.hpp
942 * Add file_posix
943 * Fix Beast include directories for cmake targets
944 * remove redundant flush() from example
945
946 --------------------------------------------------------------------------------
947
948 Version 73:
949
950 * Jamroot tweak
951 * Verify certificates in SSL clients
952 * Adjust benchmarks
953 * Initialize local variable in basic_parser
954 * Fixes for gcc-4.8
955
956 HTTP:
957
958 * basic_parser optimizations
959 * Add basic_parser tests
960
961 API Changes:
962
963 * Refactor header and message constructors
964 * serializer::next replaces serializer::get
965
966 Actions Required:
967
968 * Evaluate each message constructor call site and
969 adjust the constructor argument list as needed.
970
971 * Use serializer::next instead of serializer::get at call sites
972
973 --------------------------------------------------------------------------------
974
975 Version 72:
976
977 HTTP:
978
979 * Tidy up set payload in http-server-fast
980 * Refine Body::size specification
981 * Newly constructed responses have a 200 OK result
982 * Refactor file_body for best practices
983 * Add http-server-threaded example
984 * Documentation tidying
985 * Various improvements to http_server_fast.cpp
986
987 WebSocket:
988
989 * Add websocket-server-async example
990
991 --------------------------------------------------------------------------------
992
993 Version 71:
994
995 * Fix extra ; warning
996 * Documentation revision
997 * Fix spurious on_chunk invocation
998 * Call prepare_payload in HTTP example
999 * Check trailers in test
1000 * Fix buffer overflow handling for string_body and mutable_body
1001 * Concept check in basic_dynamic_body
1002 * Tidy up http_sync_port error check
1003 * Tidy up Jamroot /permissive-
1004
1005 WebSockets:
1006
1007 * Fine tune websocket op asserts
1008 * Refactor websocket composed ops
1009 * Allow close, ping, and write to happen concurrently
1010 * Fix race in websocket read op
1011 * Fix websocket write op
1012 * Add cmake options for examples and tests
1013
1014 API Changes:
1015
1016 * Return `std::size_t` from `Body::writer::put`
1017
1018 Actions Required:
1019
1020 * Return the number of bytes actually transferred from the
1021 input buffers in user defined `Body::writer::put` functions.
1022
1023 --------------------------------------------------------------------------------
1024
1025 Version 70:
1026
1027 * Serialize in one step when possible
1028 * Add basic_parser header and body limits
1029 * Add parser::on_header to set a callback
1030 * Fix BEAST_FALLTHROUGH
1031 * Fix HEAD response in file_service
1032
1033 API Changes:
1034
1035 * Rename to message::base
1036 * basic_parser default limits are now 1MB/8MB
1037
1038 Actions Required:
1039
1040 * Change calls to message::header_part() with message::base()
1041
1042 * Call body_limit and/or header_limit as needed to adjust the
1043 limits to suitable values if the defaults are insufficient.
1044
1045 --------------------------------------------------------------------------------
1046
1047 Version 69:
1048
1049 * basic_parser optimizations
1050 * Use BEAST_FALLTHROUGH to silence warnings
1051 * Add /permissive- to msvc toolchain
1052
1053 --------------------------------------------------------------------------------
1054
1055 Version 68:
1056
1057 * Split common tests to a new project
1058 * Small speed up in fields comparisons
1059 * Adjust buffer size in fast server
1060 * Use string_ref in older Boost versions
1061 * Optimize field lookups
1062 * Add const_body, mutable_body to examples
1063 * Link statically on cmake MSVC
1064
1065 API Changes:
1066
1067 * Change BodyReader, BodyWriter requirements
1068 * Remove BodyReader::is_deferred
1069 * http::error::bad_target replaces bad_path
1070
1071 Actions Required:
1072
1073 * Change user defined instances of BodyReader and BodyWriter
1074 to meet the new requirements.
1075
1076 * Replace references to http::error::bad_path with http::error::bad_target
1077
1078 --------------------------------------------------------------------------------
1079
1080 Version 67:
1081
1082 * Fix doc example link
1083 * Add http-server-small example
1084 * Merge stream_base to stream and tidy
1085 * Use boost::string_view
1086 * Rename to http-server-fast
1087 * Appveyor use Boost 1.64.0
1088 * Group common example headers
1089
1090 API Changes:
1091
1092 * control_callback replaces ping_callback
1093
1094 Actions Required:
1095
1096 * Change calls to websocket::stream::ping_callback to use
1097 websocket::stream::control_callback
1098
1099 * Change user defined ping callbacks to have the new
1100 signature and adjust the callback definition appropriately.
1101
1102 --------------------------------------------------------------------------------
1103
1104 Version 66:
1105
1106 * string_param optimizations
1107 * Add serializer request/response aliases
1108 * Make consuming_buffers smaller
1109 * Fix costly potential value-init in parser
1110 * Fix unused parameter warning
1111 * Handle bad_alloc in parser
1112 * Tidy up message piecewise ctors
1113 * Add header aliases
1114 * basic_fields optimizations
1115 * Add http-server example
1116 * Squelch spurious warning on gcc
1117
1118 --------------------------------------------------------------------------------
1119
1120 Version 65:
1121
1122 * Enable narrowing warning on msvc cmake
1123 * Fix integer types in deflate_stream::bi_reverse
1124 * Fix narrowing in static_ostream
1125 * Fix narrowing in ostream
1126 * Fix narrowing in inflate_stream
1127 * Fix narrowing in deflate_stream
1128 * Fix integer warnings
1129 * Enable unused variable warning on msvc cmake
1130
1131 --------------------------------------------------------------------------------
1132
1133 Version 64:
1134
1135 * Simplify buffered_read_stream composed op
1136 * Simplify ssl teardown composed op
1137 * Simplify websocket write_op
1138 * Exemplars are compiled code
1139 * Better User-Agent in examples
1140 * async_write requires a non-const message
1141 * Doc tidying
1142 * Add link_directories to cmake
1143
1144 API Changes:
1145
1146 * Remove make_serializer
1147
1148 Actions Required:
1149
1150 * Replace calls to make_serializer with variable declarations
1151
1152 --------------------------------------------------------------------------------
1153
1154 Version 63:
1155
1156 * Use std::to_string instead of lexical_cast
1157 * Don't use cached Boost
1158 * Put num_jobs back up on Travis
1159 * Only build and run tests in variant=coverage
1160 * Move benchmarks to a separate project
1161 * Only run the tests under ubasan
1162 * Tidy up CMakeLists.txt
1163 * Tidy up Jamfiles
1164 * Control running with valgrind explicitly
1165
1166 --------------------------------------------------------------------------------
1167
1168 Version 62:
1169
1170 * Remove libssl-dev from a Travis matrix item
1171 * Increase detail::static_ostream coverage
1172 * Add server-framework tests
1173 * Doc fixes and tidy
1174 * Tidy up namespaces in examples
1175 * Clear the error faster
1176 * Avoid explicit operator bool for error
1177 * Add http::is_fields trait
1178 * Squelch harmless not_connected errors
1179 * Put slow tests back for coverage builds
1180
1181 API Changes:
1182
1183 * parser requires basic_fields
1184 * Refine FieldsReader concept
1185 * message::prepare_payload replaces message::prepare
1186
1187 Actions Required:
1188
1189 * Callers using `parser` with Fields types other than basic_fields
1190 will need to create their own subclass of basic_parser to work
1191 with their custom fields type.
1192
1193 * Implement chunked() and keep_alive() for user defined FieldsReader types.
1194
1195 * Change calls to msg.prepare to msg.prepare_payload. For messages
1196 with a user-defined Fields, provide the function prepare_payload_impl
1197 in the fields type according to the Fields requirements.
1198
1199 --------------------------------------------------------------------------------
1200
1201 Version 61:
1202
1203 * Remove Spirit dependency
1204 * Use generic_cateogry for errno
1205 * Reorganize SSL examples
1206 * Tidy up some integer conversion warnings
1207 * Add message::header_part()
1208 * Tidy up names in error categories
1209 * Flush the output stream in the example
1210 * Clean close in Secure WebSocket client
1211 * Add server-framework SSL HTTP and WebSocket ports
1212 * Fix shadowing warnings
1213 * Tidy up http-crawl example
1214 * Add multi_port to server-framework
1215 * Tidy up resolver calls
1216 * Use one job on CI
1217 * Don't run slow tests on certain targets
1218
1219 API Changes:
1220
1221 * header::version is unsigned
1222 * status-codes is unsigned
1223
1224 --------------------------------------------------------------------------------
1225
1226 Version 60:
1227
1228 * String comparisons are public interfaces
1229 * Fix response message type in async websocket accept
1230 * New server-framework, full featured server example
1231
1232 --------------------------------------------------------------------------------
1233
1234 Version 59:
1235
1236 * Integrated Beast INTERFACE (cmake)
1237 * Fix base64 alphabet
1238 * Remove obsolete doc/README.md
1239
1240 API Changes:
1241
1242 * Change Body::size signature (API Change):
1243
1244 Actions Required:
1245
1246 * For any user-defined models of Body, change the function signature
1247 to accept `value_type const&` and modify the function definition
1248 accordingly.
1249
1250 --------------------------------------------------------------------------------
1251
1252 Version 58:
1253
1254 * Fix unaligned reads in utf8-checker
1255 * Qualify size_t in message template
1256 * Reorganize examples
1257 * Specification for http read
1258 * Avoid `std::string` in websocket
1259 * Fix basic_fields insert ordering
1260 * basic_fields::set optimization
1261 * basic_parser::put doc
1262 * Use static string in basic_fields::reader
1263 * Remove redundant code
1264 * Fix parsing chunk size with leading zeroes
1265 * Better message formal parameter names
1266
1267 API Changes:
1268
1269 * `basic_fields::set` renamed from `basic_fields::replace`
1270
1271 Actions Required:
1272
1273 * Rename calls to `basic_fields::replace` to `basic_fields::set`
1274
1275 --------------------------------------------------------------------------------
1276
1277 Version 57:
1278
1279 * Fix message.hpp javadocs
1280 * Fix warning in basic_parser.cpp
1281 * Integrate docca for documentation and tidy
1282
1283 --------------------------------------------------------------------------------
1284
1285 Version 56:
1286
1287 * Add provisional IANA header field names
1288 * Add string_view_body
1289 * Call on_chunk when the extension is empty
1290 * HTTP/1.1 is the default version
1291 * Try harder to find Boost (cmake)
1292 * Reset error codes
1293 * More basic_parser tests
1294 * Add an INTERFACE cmake target
1295 * Convert buffer in range loops
1296
1297 --------------------------------------------------------------------------------
1298
1299 Version 55:
1300
1301 * Don't allocate memory to handle obs-fold
1302 * Avoid a parser allocation using non-flat buffer
1303 * read_size replaces read_size_helper
1304
1305 --------------------------------------------------------------------------------
1306
1307 Version 54:
1308
1309 * static_buffer coverage
1310 * flat_buffer coverage
1311 * multi_buffer coverage
1312 * consuming_buffers members and coverage
1313 * basic_fields members and coverage
1314 * Add string_param
1315 * Retain ownership when reading using a message
1316 * Fix incorrect use of [[fallthrough]]
1317
1318 API Changes:
1319
1320 * basic_fields refactor
1321
1322 --------------------------------------------------------------------------------
1323
1324 Version 53:
1325
1326 * Fix basic_parser::maybe_flatten
1327 * Fix read_size_helper usage
1328
1329 --------------------------------------------------------------------------------
1330
1331 Version 52:
1332
1333 * flat_buffer is an AllocatorAwareContainer
1334 * Add drain_buffer class
1335
1336 API Changes:
1337
1338 * `auto_fragment` is a member of `stream`
1339 * `binary`, `text` are members of `stream`
1340 * read_buffer_size is a member of `stream`
1341 * read_message_max is a member of `stream`
1342 * `write_buffer_size` is a member of `stream`
1343 * `ping_callback` is a member of stream
1344 * Remove `opcode` from `read`, `async_read`
1345 * `read_frame` returns `bool` fin
1346 * `opcode` is private
1347 * finish(error_code&) is a BodyReader requirement
1348
1349 Actions Required:
1350
1351 * Change call sites which use `auto_fragment` with `set_option`
1352 to call `stream::auto_fragment` instead.
1353
1354 * Change call sites which use message_type with `set_option`
1355 to call `stream::binary` or `stream::text` instead.
1356
1357 * Change call sites which use `read_buffer_size` with `set_option` to
1358 call `stream::read_buffer_size` instead.
1359
1360 * Change call sites which use `read_message_max` with `set_option` to
1361 call `stream::read_message_max` instead.
1362
1363 * Change call sites which use `write_buffer_size` with `set_option` to
1364 call `stream::write_buffer_size` instead.
1365
1366 * Change call sites which use `ping_callback1 with `set_option` to
1367 call `stream::ping_callback` instead.
1368
1369 * Remove the `opcode` reference parameter from calls to synchronous
1370 and asynchronous read functions, replace the logic with calls to
1371 `stream::got_binary` and `stream::got_text` instead.
1372
1373 * Remove the `frame_info` parameter from all read frame call sites
1374
1375 * Check the return value 'fin' for calls to `read_frame`
1376
1377 * Change ReadHandlers passed to `async_read_frame` to have
1378 the signature `void(error_code, bool fin)`, use the `bool`
1379 to indicate if the frame is the last frame.
1380
1381 * Remove all occurrences of the `opcode` enum at call sites
1382
1383 --------------------------------------------------------------------------------
1384
1385 Version 51
1386
1387 * Fix operator<< for header
1388 * Tidy up file_body
1389 * Fix file_body::get() not setting the more flag correctly
1390 * Use BOOST_FALLTHROUGH
1391 * Use BOOST_STRINGIZE
1392 * DynamicBuffer benchmarks
1393 * Add construct, destroy to handler_alloc
1394 * Fix infinite loop in basic_parser
1395
1396 API Changes:
1397
1398 * Tune up static_buffer
1399 * multi_buffer implementation change
1400
1401 Actions Required:
1402
1403 * Call sites passing a number to multi_buffer's constructor
1404 will need to be adjusted, see the corresponding commit message.
1405
1406 --------------------------------------------------------------------------------
1407
1408 Version 50
1409
1410 * parser is constructible from other body types
1411 * Add field enumeration
1412 * Use allocator more in basic_fields
1413 * Fix basic_fields allocator awareness
1414 * Use field in basic_fields and call sites
1415 * Use field in basic_parser
1416 * Tidy up basic_fields, header, and field concepts
1417 * Fields concept work
1418 * Body documentation work
1419 * Add missing handler_alloc nested types
1420 * Fix chunk delimiter parsing
1421 * Fix test::pipe read_size
1422 * Fix chunk header parsing
1423
1424 API Changes:
1425
1426 * Remove header_parser
1427 * Add verb to on_request for parsers
1428 * Refactor prepare
1429 * Protect basic_fields special members
1430 * Remove message connection settings
1431 * Remove message free functions
1432 * Remove obsolete serializer allocator
1433 * http read_some, async_read_some don't return bytes
1434
1435 --------------------------------------------------------------------------------
1436
1437 Version 49
1438
1439 * Use <iosfwd> instead of <ostream>
1440
1441 HTTP:
1442
1443 * Add HEAD request example
1444
1445 API Changes:
1446
1447 * Refactor method and verb
1448 * Canonicalize string_view parameter types
1449 * Tidy up empty_body writer error
1450 * Refactor header status, reason, and target
1451
1452 --------------------------------------------------------------------------------
1453
1454 Version 48
1455
1456 * Make buffer_prefix_view public
1457 * Remove detail::sync_ostream
1458 * Tidy up core type traits
1459
1460 API Changes:
1461
1462 * Tidy up chunk decorator
1463 * Rename to buffer_cat_view
1464 * Consolidate parsers to parser.hpp
1465 * Rename to parser
1466
1467 --------------------------------------------------------------------------------
1468
1469 Version 47
1470
1471 * Disable operator<< for buffer_body
1472 * buffer_size overload for basic_multi_buffer::const_buffers_type
1473 * Fix undefined behavior in pausation
1474 * Fix leak in basic_flat_buffer
1475
1476 API Changes:
1477
1478 * Refactor treatment of request-method
1479 * Refactor treatment of status code and obsolete reason
1480 * Refactor HTTP serialization and parsing
1481
1482 --------------------------------------------------------------------------------
1483
1484 Version 46
1485
1486 * Add test::pipe
1487 * Documentation work
1488
1489 API Changes:
1490
1491 * Remove HTTP header aliases
1492 * Refactor HTTP serialization
1493 * Refactor type traits
1494
1495 --------------------------------------------------------------------------------
1496
1497 Version 45
1498
1499 * Workaround for boost::asio::basic_streambuf type check
1500 * Fix message doc image
1501 * Better test::enable_yield_to
1502 * Fix header::reason
1503 * Documentation work
1504 * buffer_view skips empty buffer sequences
1505 * Disable reverse_iterator buffer_view test
1506
1507 --------------------------------------------------------------------------------
1508
1509 Version 44
1510
1511 * Use BOOST_THROW_EXCEPTION
1512 * Tidy up read_size_helper and dynamic buffers
1513 * Require Boost 1.58.0 or later
1514 * Tidy up and make get_lowest_layer public
1515 * Use BOOST_STATIC_ASSERT
1516 * Fix async return values in docs
1517 * Fix README websocket example
1518 * Add buffers_adapter regression test
1519 * Tidy up is_dynamic_buffer traits test
1520 * Make buffers_adapter meet requirements
1521
1522 --------------------------------------------------------------------------------
1523
1524 Version 43
1525
1526 * Require Boost 1.64.0
1527 * Fix strict aliasing warnings in buffers_view
1528 * Tidy up buffer_prefix overloads and test
1529 * Add write limit to test::string_ostream
1530 * Additional constructors for consuming_buffers
1531
1532 --------------------------------------------------------------------------------
1533
1534 Version 42
1535
1536 * Fix javadoc typo
1537 * Add formal review notes
1538 * Make buffers_view a public interface
1539
1540 --------------------------------------------------------------------------------
1541
1542 Version 41
1543
1544 * Trim Appveyor matrix rows
1545 * Concept revision and documentation
1546 * Remove coveralls integration
1547 * Tidy up formal parameter names
1548
1549 WebSocket
1550
1551 * Tidy up websocket::close_code enum and constructors
1552
1553 API Changes
1554
1555 * Return http::error::end_of_stream on HTTP read eof
1556 * Remove placeholders
1557 * Rename prepare_buffer(s) to buffer_prefix
1558 * Remove handler helpers, tidy up hook invocations
1559
1560 --------------------------------------------------------------------------------
1561
1562 Version 40
1563
1564 * Add to_static_string
1565 * Consolidate get_lowest_layer in type_traits.hpp
1566 * Fix basic_streambuf movable trait
1567 * Tidy up .travis.yml
1568
1569 --------------------------------------------------------------------------------
1570
1571 Version 39
1572
1573 Beast versions are now identified by a single integer which
1574 is incremented on each merge. The macro BEAST_VERSION
1575 identifies the version number, currently at 39. A version
1576 setting commit will always be at the tip of the master
1577 and develop branches.
1578
1579 * Use beast::string_view alias
1580 * Fixed braced-init error with older gcc
1581
1582 HTTP
1583
1584 * Tidy up basic_parser javadocs
1585
1586 WebSocket:
1587
1588 * Add websocket async echo ssl server test:
1589 * Fix eof error on ssl::stream shutdown
1590
1591 API Changes:
1592
1593 * Refactor http::header contents
1594 * New ostream() returns dynamic buffer output stream
1595 * New buffers() replaces to_string()
1596 * Rename to multi_buffer, basic_multi_buffer
1597 * Rename to flat_buffer, basic_flat_buffer
1598 * Rename to static_buffer, static_buffer_n
1599 * Rename to buffered_read_stream
1600 * Harmonize concepts and identifiers with net-ts
1601 * Tidy up HTTP reason_string
1602
1603 --------------------------------------------------------------------------------
1604
1605 1.0.0-b38
1606
1607 * Refactor static_string
1608 * Refactor base64
1609 * Use static_string for WebSocket handshakes
1610 * Simplify get_lowest_layer test
1611 * Add test_allocator to extras/test
1612 * More flat_streambuf tests
1613 * WebSocket doc work
1614 * Prevent basic_fields operator[] assignment
1615
1616 API Changes:
1617
1618 * Refactor WebSocket error codes
1619 * Remove websocket::keep_alive option
1620
1621 --------------------------------------------------------------------------------
1622
1623 1.0.0-b37
1624
1625 * CMake hide command lines in .vcxproj Output windows"
1626 * Rename to detail::is_invocable
1627 * Rename project to http-bench
1628 * Fix flat_streambuf
1629 * Add ub sanitizer blacklist
1630 * Add -funsigned-char to asan build target
1631 * Fix narrowing warning in table constants
1632
1633 WebSocket:
1634
1635 * Add is_upgrade() free function
1636 * Document websocket::stream thread safety
1637 * Rename to websocket::detail::pausation
1638
1639 API Changes:
1640
1641 * Provide websocket::stream accept() overloads
1642 * Refactor websocket decorators
1643 * Move everything in basic_fields.hpp to fields.hpp
1644 * Rename to http::dynamic_body, consolidate header
1645
1646 --------------------------------------------------------------------------------
1647
1648 1.0.0-b36
1649
1650 * Update README.md
1651
1652 --------------------------------------------------------------------------------
1653
1654 1.0.0-b35
1655
1656 * Add Appveyor build scripts and badge
1657 * Tidy up MSVC CMake configuration
1658 * Make close_code a proper enum
1659 * Add flat_streambuf
1660 * Rename to BEAST_DOXYGEN
1661 * Update .gitignore for VS2017
1662 * Fix README.md CMake instructions
1663
1664 API Changes:
1665
1666 * New HTTP interfaces
1667 * Remove http::empty_body
1668
1669 --------------------------------------------------------------------------------
1670
1671 1.0.0-b34
1672
1673 * Fix and tidy up CMake build scripts
1674
1675 --------------------------------------------------------------------------------
1676
1677 1.0.0-b33
1678
1679 * Require Visual Studio 2015 Update 3 or later
1680
1681 HTTP
1682
1683 * Use fwrite return value in file_body
1684
1685 WebSocket
1686
1687 * Set internal state correctly when writing frames
1688 * Add decorator unit test
1689 * Add write_frames unit test
1690
1691 --------------------------------------------------------------------------------
1692
1693 1.0.0-b32
1694
1695 * Add io_service completion invariants test
1696 * Update CMake scripts for finding packages
1697
1698 API Changes:
1699
1700 * Remove http Writer suspend and resume feature
1701
1702 --------------------------------------------------------------------------------
1703
1704 1.0.0-b31
1705
1706 * Tidy up build settings
1707 * Add missing dynabuf_readstream member
1708
1709 WebSocket
1710
1711 * Move the handler, don't copy it
1712
1713 --------------------------------------------------------------------------------
1714
1715 1.0.0-b30
1716
1717 WebSocket
1718
1719 * Fix race in pings during reads
1720 * Fix race in close frames during reads
1721 * Fix race when write suspends
1722 * Allow concurrent websocket async ping and writes
1723
1724 --------------------------------------------------------------------------------
1725
1726 1.0.0-b29
1727
1728 * Fix compilation error in non-template class
1729 * Document type-pun in buffer_cat
1730 * Correctly check ostream modifier (/extras)
1731
1732 HTTP
1733
1734 * Fix Body requirements doc
1735 * Fix illegal HTTP characters accepted as hex zero
1736 * Fix Writer return value documentation
1737
1738 WebSocket
1739
1740 * Fix race in writes during reads
1741 * Fix doc link typo
1742
1743 --------------------------------------------------------------------------------
1744
1745 1.0.0-b28
1746
1747 * Split out and rename test stream classes
1748 * Restyle async result constructions
1749 * Fix HTTP split parse edge case
1750
1751 --------------------------------------------------------------------------------
1752
1753 1.0.0-b27
1754
1755 * Tidy up tests and docs
1756 * Add documentation building instructions
1757
1758 API Changes:
1759
1760 * Invoke callback on pings and pongs
1761 * Move basic_streambuf to streambuf.hpp
1762
1763 --------------------------------------------------------------------------------
1764
1765 1.0.0-b26
1766
1767 * Tidy up warnings and tests
1768
1769 --------------------------------------------------------------------------------
1770
1771 1.0.0-b25
1772
1773 * Fixes for WebSocket echo server
1774 * Fix 32-bit arm7 warnings
1775 * Remove unnecessary include
1776 * WebSocket server examples and test tidying
1777 * Fix deflate setup bug
1778
1779 API Changes:
1780
1781 * Better handler_ptr
1782
1783 --------------------------------------------------------------------------------
1784
1785 1.0.0-b24
1786
1787 * bjam use clang on MACOSX
1788 * Simplify Travis package install specification
1789 * Add optional yield_to arguments
1790 * Make decorator copyable
1791 * Add WebSocket permessage-deflate extension support
1792
1793 --------------------------------------------------------------------------------
1794
1795 1.0.0-b23
1796
1797 * Tune websocket echo server for performance
1798 * Add file and line number to thrown exceptions
1799 * Better logging in async echo server
1800 * Add copy special members
1801 * Fix message constructor and special members
1802 * Travis CI improvements
1803
1804 --------------------------------------------------------------------------------
1805
1806 1.0.0-b22
1807
1808 * Fix broken Intellisense
1809 * Implement the Asio deallocation-before-invocation guarantee
1810 * Add handler helpers
1811 * Avoid copies in handler_alloc
1812 * Update README.md example programs
1813 * Fix websocket stream read documentation
1814 * Disable Boost.Coroutine deprecation warning
1815 * Update documentation examples
1816
1817 --------------------------------------------------------------------------------
1818
1819 1.0.0-b21
1820
1821 * Remove extraneous includes
1822
1823 --------------------------------------------------------------------------------
1824
1825 1.0.0-b20
1826
1827 ZLib
1828
1829 * Add ZLib module
1830
1831 API Changes:
1832
1833 * Rename HTTP identifiers
1834
1835 --------------------------------------------------------------------------------
1836
1837 1.0.0-b19
1838
1839 * Boost library min/max guidance
1840 * Improvements to code coverage
1841 * Use boost::lexical_cast instead of std::to_string
1842 * Fix prepare_buffers value_type
1843 * Fix consuming_buffers value_type
1844 * Better buffer_cat
1845
1846 HTTP
1847
1848 * Make chunk_encode public
1849 * Add write, async_write, operator<< for message_headers
1850 * Add read, async_read for message_headers
1851 * Fix with_body example
1852
1853 WebSocket
1854
1855 * Optimize utf8 validation
1856 * Optimize mask operations
1857
1858 API Changes:
1859
1860 * Refactor message and message_headers declarations
1861 * prepared_buffers is private
1862 * consume_buffers is removed
1863
1864 --------------------------------------------------------------------------------
1865
1866 1.0.0-b18
1867
1868 * Increase optimization settings for MSVC builds
1869
1870 HTTP
1871
1872 * Check invariants in parse_op:
1873 * Clean up message docs
1874
1875 WebSocket
1876
1877 * Write buffer option does not change capacity
1878 * Close connection during async_read on close frame
1879 * Add pong, async pong to stream
1880
1881 Core
1882
1883 * Meet DynamicBuffer requirements for static_streambuf
1884 * Fix write_frame masking and auto-fragment handling
1885
1886 Extras
1887
1888 * unit_test::suite fixes:
1889 - New overload of fail() specifies file and line
1890 - BEAST_EXPECTS only evaluates the reason string on a failure
1891 * Add zlib module
1892
1893 --------------------------------------------------------------------------------
1894
1895 1.0.0-b17
1896
1897 * Change implicit to default value in example
1898 * Tidy up some declarations
1899 * Fix basic_streambuf::capacity
1900 * Add basic_streambuf::alloc_size
1901 * Parser callbacks may not throw
1902 * Fix Reader concept doc typo
1903 * Add is_Reader trait
1904 * Tidy up basic_headers for documentation
1905 * Tidy up documentation
1906 * Add basic_parser_v1::reset
1907 * Fix handling of body_what::pause in basic_parser_v1
1908 * Add headers_parser
1909 * Engaged invokable is destructible
1910 * Improve websocket example in README.md
1911 * Refactor read_size_helper
1912
1913 API Changes:
1914
1915 * Added init() to Reader requirements
1916 * Reader must be nothrow constructible
1917 * Reader is now constructed right before reading the body
1918 - The message passed on construction is filled in
1919 * Rework HTTP concepts:
1920 - Writer uses write instead of operator()
1921 - Refactor traits to use void_t
1922 - Remove is_ReadableBody, is_WritableBody
1923 - Add has_reader, has_writer, is_Reader, is_Writer
1924 - More friendly compile errors on failed concept checks
1925 * basic_parser_v1 requires all callbacks present
1926 * on_headers parser callback now returns void
1927 * on_body_what is a new required parser callback returning body_what
1928
1929 --------------------------------------------------------------------------------
1930
1931 1.0.0-b16
1932
1933 * Make value optional in param-list
1934 * Frame processing routines are member functions
1935 * Fix on_headers called twice from basic_parser_v1
1936 * Constrain parser_v1 constructor
1937 * Improve first line serialization
1938 * Add pause option to on_headers interface
1939 * Refactor base_parser_v1 callback traits:
1940 * Refine Parser concept
1941 * Relax ForwardIterator requirements in FieldSequence
1942 * Fix websocket failure testing
1943 * Refine Writer concept and fix exemplar in documentation
1944
1945 API Changes:
1946
1947 * Rename mask_buffer_size to write_buffer_size
1948 * Make auto_fragment a boolean option
1949
1950 The message class hierarchy is refactored (breaking change):
1951
1952 * One message class now models both HTTP/1 and HTTP/2 messages
1953 * message_v1, request_v1, response_v1 removed
1954 * New classes basic_request and basic_response model
1955 messages without the body.
1956
1957 Error resolution: Callers should use message, request,
1958 and response instead of message_v1, request_v1, and
1959 response_v1 respectively.
1960
1961 --------------------------------------------------------------------------------
1962
1963 1.0.0-b15
1964
1965 * rfc7230 section 3.3.2 compliance
1966 * Add HTTPS example
1967 * Add Secure WebSocket example
1968 * Fix message_v1 constructor
1969 * Tidy up DynamicBuffer requirements
1970 * Tidy up error types and headers
1971 * Fix handling empty HTTP headers in parser_v1
1972
1973 --------------------------------------------------------------------------------
1974
1975 1.0.0-b14
1976
1977 * Add missing rebind to handler_alloc
1978 * Fix error handling in http server examples
1979 * Fix CMake scripts for MinGW
1980 * Use BOOST_ASSERT
1981 * Better WebSocket decorator
1982 * Update and tidy documentation
1983
1984 --------------------------------------------------------------------------------
1985
1986 1.0.0-b13
1987
1988 * dstream improvements
1989 * Remove bin and bin64 directories
1990 * Tidy up .vcxproj file groupings
1991
1992 --------------------------------------------------------------------------------
1993
1994 1.0.0-b12
1995
1996 * Use -p to print suites from unit test main.
1997 * BEAST_EXPECTS to add a reason string to test failures
1998 * Fix unit test runner to output all case names
1999 * Update README for build requirements
2000 * Rename to CHANGELOG.md
2001
2002 --------------------------------------------------------------------------------
2003
2004 1.0.0-b11
2005
2006 * Set URI in generated WebSocket Upgrade requests
2007 * Rename echo server class and file names
2008 * Rename to DynamicBuffer in some code and documentation
2009 * Fix integer warnings in Windows builds
2010 * Add 32 and 64 bit Windows build support
2011 * Update README for build instructions and more
2012 * Add repository and documention banners
2013
2014 --------------------------------------------------------------------------------
2015
2016 1.0.0-b10
2017
2018 * Fix compilation warnings
2019 * Add websocketpp comparison to HTML documentation
2020
2021 --------------------------------------------------------------------------------
2022
2023 1.0.0-b9
2024
2025 * Fix CMakeLists.txt
2026
2027 --------------------------------------------------------------------------------
2028
2029 1.0.0-b8
2030
2031 * Fix include in example code
2032 * Fix basic_headers rfc2616 Section 4.2 compliance
2033
2034 --------------------------------------------------------------------------------
2035
2036 1.0.0-b7
2037
2038 * Fix prepare by calling init. prepare() can throw depending on the
2039 implementation of Writer. Publicly provided beast::http writers never throw.
2040 * Fixes to example HTTP server
2041 * Fully qualify ambiguous calls to read and parse
2042 * Remove deprecated http::stream wrapper
2043 * Example HTTP server now calculates the MIME-type
2044 * Fixes and documentation for teardown and use with SSL:
2045 * Add example code to rfc7230 javadocs
2046 * Remove extraneous header file <beast/http/status.hpp>
2047 * Add skip_body parser option
2048
2049 --------------------------------------------------------------------------------
2050
2051 1.0.0-b6
2052
2053 * Use SFINAE on return values
2054 * Use beast::error_code instead of nested types
2055 * Tidy up use of GENERATING_DOCS
2056 * Remove obsolete RFC2616 functions
2057 * Add message swap members and free functions
2058 * Add HTTP field value parser containers: ext_list, param_list, token_list
2059 * Fixes for some corner cases in basic_parser_v1
2060 * Configurable limits on headers and body sizes in basic_parser_v1
2061
2062 API Changes:
2063
2064 * ci_equal is moved to beast::http namespace, in rfc7230.hpp
2065
2066 * "DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See:
2067 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
2068
2069 * basic_parser_v1 adheres to rfc7230 as strictly as possible
2070
2071 --------------------------------------------------------------------------------