Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / beast / CHANGELOG.md
1 Version 276:
2
3 * https_get example sends the Host header
4 * Fix async_close error code when async_read times out
5 * Refactor zlib tests and fix enum typo
6
7 --------------------------------------------------------------------------------
8
9 Version 275:
10
11 * Async init-fns use the executor's default token
12 * Add basic_stream::rebind_executor
13 * Use automatically deduced return types for all async operations
14 * Support Concepts for completion token params
15
16 --------------------------------------------------------------------------------
17
18 Version 274:
19
20 * Fix leftovers in basic_parser corner case
21
22 --------------------------------------------------------------------------------
23
24 Version 273:
25
26 * Squelch spurious websocket timer assert
27 * Use the executor type in basic_stream timer
28
29 --------------------------------------------------------------------------------
30
31 Version 272:
32
33 * Add BEAST_THROWS
34 * Add zlib tests and fixes
35
36 --------------------------------------------------------------------------------
37
38 Version 271:
39
40 * Add HTTP async client with system_executor example
41 * Add WebSocket async client with system_executor example
42 * Fix data race in HTTP server examples
43 * Fix data race in WebSocket examples
44
45 --------------------------------------------------------------------------------
46
47 Version 270:
48
49 * Silence unused variables
50 * Fix typo
51
52 --------------------------------------------------------------------------------
53
54 Version 269:
55
56 * Fix /permissive- missing include
57 * Add test
58
59 --------------------------------------------------------------------------------
60
61 Version 268:
62
63 * root_certificates.hpp is not for production
64
65 --------------------------------------------------------------------------------
66
67 Version 267:
68
69 * Add package for Travis config
70 * Fix signed/unsigned mismatch in file_stdio::seek
71 * basic_stream dtor cannot throw
72 * cmake: check policy first
73 * Add default dtors to satisfy -Wnon-virtual-dtor
74 * Multiple I/O of the same type is not supported
75
76 --------------------------------------------------------------------------------
77
78 Version 266:
79
80 * Fix some missing deduced return types in the docs
81
82 --------------------------------------------------------------------------------
83
84 Version 265:
85
86 * Fix outgoing websocket message compression
87
88 --------------------------------------------------------------------------------
89
90 Version 264:
91
92 * Handle overflow in max size calculation in `basic_dynamic_body`
93 * Fix unused variable warnings in tests
94 * Fix missing initializer warning in `basic_fields`
95 * Remove unused functions in `impl/static_string.hpp`
96 * Fix unused variable warning in `multi_buffer`
97 * Fix header-only compilation errors in some configurations
98 * Workaround for miscompilation in MSVC 14.2
99
100 --------------------------------------------------------------------------------
101
102 Version 263:
103
104 * Update documentation
105
106 --------------------------------------------------------------------------------
107
108 Version 262:
109
110 * Fix deallocate in multi_buffer
111
112 --------------------------------------------------------------------------------
113
114 Version 261:
115
116 * Deduplicate `websocket::read_size_hint` definition
117 * Fix UB in websocket read tests
118 * Remove redundant includes in websocket
119 * Simplify websocket::detail::prng
120 * Don't over-allocate in http::basic_fields
121 * Fix multi_buffer allocation alignment
122 * Tidy up buffers_range
123
124 --------------------------------------------------------------------------------
125
126 Version 260:
127
128 * More split compilation in rfc7230.hpp
129 * Qualify calls to `beast::iequals` in basic_parser.ipp
130 * More split compilation in websocket/detail/mask.hpp
131 * Cleanup transitive includes in beast/core/detail/type_traits.hpp
132 * Simplify generation of sec-websocket-key
133 * Move detail::base64 helpers to tests
134 * Remove redundant includes in core
135
136 --------------------------------------------------------------------------------
137
138 Version 259:
139
140 * Reduce the number of instantiations of filter_token_list
141 * Remove the use of `static_string` from `http::fields`
142 * Add gcc-9 to AzP CI test matrix
143 * Enable split compilation in http::basic_fields
144 * Remove redundant instation of `static_string` in websocket
145 * Remove redundant use of `asio::coroutine` in `flat_stream`
146 * Remove unused includes from `test::stream`
147 * Move `char_buffer` into a separate file
148 * Fix coverage collection in AzP CI
149 * Improve performance of `http::string_to_verb`
150 * Replace uses of `net::coroutine` with `asio::coroutine`
151 * Replace uses of `net::spawn` with `asio::spawn`
152 * Use `beast::read_size` in `detail::read`
153
154 --------------------------------------------------------------------------------
155
156 Version 258:
157
158 * Fix separate compilation in CI
159 * Fix clang inititalization warning in websocket
160 * Remove redundant use of `yield_to` in parser tests
161 * Add VS 2019 AzP CI matrix item
162 * Clean up typo in chat websocket javascript client
163
164 --------------------------------------------------------------------------------
165
166 Version 257:
167
168 * Add b2 features for compile-time options used in testing
169 * Remove redundant dependencies in http/server/fast example
170 * Remove experimental/unit_test/thread.hpp
171 * Use `if` statement in basic_stream::transfer_op
172 * Fix flat_buffer copy members
173
174 --------------------------------------------------------------------------------
175
176 Version 256:
177
178 * Remove uses of the deprecated `buffers` function
179 * Remove uses of deprecated methods in websocket tests
180 * Remove redundant use of `static_string`
181 * Remove redundant template in service_base
182 * Expand CI matrix using Azure Pipelines
183 * Make chat websocket javascript client more user friendly
184 * `allocator_traits::construct` is used for user-defined types
185 * Add 1-element specialization for `buffers_cat`
186 * Fix `buffers_cat` iterator tests
187 * Don't pessimize-move
188 * Use steady_timer type
189 * Preserve operation_aborted on partial message
190
191 --------------------------------------------------------------------------------
192
193 Version 255:
194
195 * Add idle ping suspend test
196 * Fix moved-from executor in idle ping timeout
197
198 --------------------------------------------------------------------------------
199
200 Version 254:
201
202 * Fix data race in test::stream::connect
203 * Fix UB in websocket close tests
204 * Fix uninitalized memory use in deflate_stream
205 * Fix gcc-8 warning in websocket::stream
206
207 --------------------------------------------------------------------------------
208
209 Version 253:
210
211 * Fix async_detect_ssl handler type
212 * member get_executor const-correctness
213 * Fix min/max on MSVC
214 * Relax requirements for vector_body
215
216 --------------------------------------------------------------------------------
217
218 Version 252:
219
220 * More std::string_view fixes
221 * CI copies to libs/beast
222
223 --------------------------------------------------------------------------------
224
225 Version 251:
226
227 * Clean up CI scripts
228 * detect_ssl uses bool
229 * launder pointers
230 * Fix compilation on MSVC with std::string_view
231 * Replace static_string in parser
232
233 --------------------------------------------------------------------------------
234
235 Version 250:
236
237 * Use SaxonHE in reference generation
238 * Cleanup endianness conversions
239 * Set parser status and flags even if body_limit_ has been reached
240
241 --------------------------------------------------------------------------------
242
243 Version 249:
244
245 * Move friend function template definition
246
247 --------------------------------------------------------------------------------
248
249 Version 248:
250
251 * Don't use a moved-from handler
252
253 --------------------------------------------------------------------------------
254
255 Version 247:
256
257 * Fix async_base immediate completion
258
259 --------------------------------------------------------------------------------
260
261 Version 246:
262
263 * decorator ctor is explicit
264
265 --------------------------------------------------------------------------------
266
267 Version 245:
268
269 * decorator constructor is constrained
270
271 --------------------------------------------------------------------------------
272
273 Version 244:
274
275 * Tidy up declval in some traits
276 * Fix websocket keep-alive ping expiration
277
278 --------------------------------------------------------------------------------
279
280 Version 243:
281
282 * Fix some typos
283 * Tidy up file_stdio for VS2015
284 * Fix http::message constructor constraint
285
286 --------------------------------------------------------------------------------
287
288 Version 242:
289
290 * test::stream has deprecated lowest_layer for ssl
291 * MSVC uses ::fopen_s
292 * Fix http::message constructor constraint
293 * Check defined(BOOST_MSVC)
294
295 --------------------------------------------------------------------------------
296
297 Version 241:
298
299 * Tidy up a doc code snippet
300 * basic_parser::content_length is stable (API Change)
301
302 --------------------------------------------------------------------------------
303
304 Version 240:
305
306 * Fix ssl_stream teardown
307
308 --------------------------------------------------------------------------------
309
310 Version 239:
311
312 * More split compilation in HTTP
313
314 --------------------------------------------------------------------------------
315
316 Version 238:
317
318 * Refactor Jamfiles to work with release layout
319
320 --------------------------------------------------------------------------------
321
322 Version 237:
323
324 * cmake: Use static libs to speed up builds
325
326 --------------------------------------------------------------------------------
327
328 Version 236:
329
330 * root_certificates.hpp: brought in the server certificate
331
332 --------------------------------------------------------------------------------
333
334 Version 235:
335
336 * Fix self-assignment warning in buffer test
337 * Jamfile cleanup
338
339 --------------------------------------------------------------------------------
340
341 Version 234:
342
343 * Don't link to OpenSSL needlessly (bjam)
344 * HTTPS URLs in README.md
345
346 --------------------------------------------------------------------------------
347
348 Version 233:
349
350 * Check __ANDROID__ instead
351 * Use secure TLS/SSL versions
352
353 --------------------------------------------------------------------------------
354
355 Version 232:
356
357 * Fix close_socket for net::basic_socket changes
358 * Fix file_win32_write_op async initiation
359 * Fix basic_stream lowest_layer for ssl
360
361 --------------------------------------------------------------------------------
362
363 Version 231:
364
365 * Doc section names are stable
366 * Add missing include
367 * Constrain to_static_string to integers
368
369 --------------------------------------------------------------------------------
370
371 Version 230:
372
373 * Don't use dynamic_buffer_ref
374 * Remove dynamic_buffer_ref
375 * Fix completion handler invocation signatures
376
377 --------------------------------------------------------------------------------
378
379 Version 229:
380
381 * Rename to buffer_bytes
382 * Tidy up examples
383 * detect_ssl returns a bool
384 * Fix stable_async_base example
385
386 API Changes:
387
388 * handler_ptr is deprecated
389
390 Actions Required:
391
392 * Replace use of `handler_ptr` with `stable_async_base`
393   and `allocate_stable`.
394
395 --------------------------------------------------------------------------------
396
397 Version 228:
398
399 * Fix UB in decorator:
400 * Sync up convenience headers
401 * The Fields concept is deprecated (API Change)
402 * Fix includes.xsl for newer doxygen
403 * Tidy up quick reference
404 * SSL teardowns are in an associated namespace
405
406 --------------------------------------------------------------------------------
407
408 Version 227:
409
410 * Fix decorator for certain sizes
411
412 --------------------------------------------------------------------------------
413
414 Version 226:
415
416 * Support -fno-exceptions
417 * make_strand is in net::
418 * Fix HTTP parser static string calculation
419 * Move parser definitions to .ipp
420 * Appveyor uses msvc-14.0
421
422 --------------------------------------------------------------------------------
423
424 Version 225:
425
426 * Tidy up an unused function
427 * Fix wsload jamfile
428 * Examples use flat_buffer
429 * Remove session_alloc (API Change)
430
431 Actions Required:
432
433 * Don't use session_alloc
434
435 --------------------------------------------------------------------------------
436
437 Version 224:
438
439 * Remove extraneous error check in advanced-server-flex
440 * Advanced servers use HTTP parser interfaces for reading
441 * Reusing an HTTP parser returns an error
442
443 --------------------------------------------------------------------------------
444
445 Version 223:
446
447 * Add test::stream::service
448 * Add websocket service
449 * Pausation abandoning test
450 * Destroy abandoned websocket ops on shutdown
451
452 --------------------------------------------------------------------------------
453
454 Version 222:
455
456 * stream_base::timeout::suggested is a nested function
457
458 --------------------------------------------------------------------------------
459
460 Version 221:
461
462 * Rename to async_base, stable_async_base
463 * role_type is in boost/beast/core/role.hpp (API Change)
464 * Cleanup in test::stream internals
465 * Pass references as pointers to async_initiate
466
467 Actions Required:
468
469 * Include <boost/beast/core/role.hpp> or
470   define BOOST_BEAST_ALLOW_DEPRECATED=1
471
472 --------------------------------------------------------------------------------
473
474 Version 220:
475
476 * Documentation and release notes
477
478 --------------------------------------------------------------------------------
479
480 Version 219:
481
482 * More split definitions in test::stream
483 * Visual Studio 2017 minimum requirement for Windows
484 * Better treatment of SSL short reads
485 * ssl_stream is a public interface
486 * basic_parser is abstract, not CRTP (API Change)
487 * OpenSSL is required for tests and examples
488
489 --------------------------------------------------------------------------------
490
491 Version 218:
492
493 * detect_ssl, async_detect_ssl are public interfaces
494 * Add OpenSSL installation/setup instructions
495 * Enable split Beast compilation for tests
496
497 --------------------------------------------------------------------------------
498
499 Version 217:
500
501 * websocket idle pings
502 * RatePolicy documentation
503 * Pass strand to async_accept
504 * Fix file_body_win32
505 * Use async_initiate
506 * Check BOOST_NO_CXX11_THREAD_LOCAL
507 * Fast prng is pcg
508
509 --------------------------------------------------------------------------------
510
511 Version 216:
512
513 * Refactor websocket::stream operations
514 * Add websocket::stream timeouts
515 * Use suggested timeouts in Websocket examples
516 * Add make_strand
517 * Add RatePolicy to basic_stream
518 * Use async_initiate in basic_stream
519 * basic_stream connects are members
520 * Beast supports latest Asio changes (API Change)
521 * WebSocket Decorator is a socket option (API Change)
522 * Overloads of the following functions which accept a Decorator
523   are deprecated:
524   - accept, accept_ex
525   - handshake, handshake_ex
526   - async_accept, async_accept_ex
527   - async_handshake, async_handshake_ex
528
529 Actions Required:
530
531 * Code which passes decorator to any `websocket::stream` member
532   function should call `stream::set_option` instead with a newly
533   constructed `stream_base::decorator` object containing the
534   decorator. Alternatively, the macro `BOOST_BEAST_ALLOW_DEPRECATED`
535   may be defined to 1.
536
537 * Fix compilation errors required by Asio changes
538
539 --------------------------------------------------------------------------------
540
541 Version 215:
542
543 * basic_stream uses boost::shared_ptr
544 * Remove bind_back_handler
545 * bind_front_handler works with member functions
546 * Examples use bind_front_handler
547 * Add experimental test/handler.hpp
548 * Rename to async_op_base::invoke_now
549 * Add async_op_base::invoke
550 * Remove CppCon2018 example
551 * Examples use ssl_stream
552
553 --------------------------------------------------------------------------------
554
555 Version 214:
556
557 * Handler binders use the associated allocator
558 * Add detail::bind_continuation
559 * Rewrite the echo-op example
560
561 --------------------------------------------------------------------------------
562
563 Version 213:
564
565 * Fix posix_file::close handling of EINTR
566 * basic_stream subsumes stranded_stream:
567 * Use timeouts in HTTP server examples
568 * Use timeouts in HTTP client examples
569 * Use tcp_stream in WebSocket client examples
570 * Use tcp_stream in WebSocket server examples
571 * Use tcp_stream, HTTP timeouts in advanced servers
572
573 --------------------------------------------------------------------------------
574
575 Version 212:
576
577 * dynamic_buffer_ref tests and tidy
578 * flat_stream tests and tidy
579 * stranded_socket tests and tidy
580 * buffers_front tests
581 * Improved websocket stream documentation
582
583 --------------------------------------------------------------------------------
584
585 Version 211:
586
587 * close_socket is in stream_traits.hpp
588 * Improvements to test::stream
589 * Add stranded_stream
590 * Add flat_stream
591 * flat_buffer::clear preserves capacity
592 * multi_buffer::clear preserves capacity
593 * Fixes to rfc7230
594
595 --------------------------------------------------------------------------------
596
597 Version 210:
598
599 * Tidy up read implementation
600 * Fix stable_async_op_base javadoc
601 * Better handling of stream timeouts
602 * Add stream_traits.hpp
603 * Add executor_type trait
604 * Fix hexadecimal string conversion table
605 * is_completion_handler, type_traits.hpp are deprecated
606 * Fixes to test::stream::async_read
607
608 API Changes:
609
610 * Stream traits are now in stream_traits.hpp
611 * `is_file` is now in file_base.hpp
612 * is_completion_handler is deprecated
613
614 Actions Required:
615
616 * Include stream_traits.hpp as needed
617 * Include file_base.hpp as needed
618 * Use std::is_invocable instead of is_completion_handler
619
620 --------------------------------------------------------------------------------
621
622 Version 209:
623
624 * Faster http::string_to_field
625 * async_echo supports move-only handlers
626 * test::stream maintains a handler work guard
627 * Qualify buffer_copy, don't qualify buffer_size
628 * Add dynamic_buffer_ref
629 * Refactor quickref.xml
630 * Add buffer_size
631
632 --------------------------------------------------------------------------------
633
634 Version 208:
635
636 * Add get_lowest_layer free function
637 * Add lowest_layer_type metafunction
638 * Add close_socket, beast_close_socket customization
639 * Doc work
640
641 --------------------------------------------------------------------------------
642
643 Version 207
644
645 * Send from the strand
646 * Pass the correct handler in basic_timeout_stream
647
648 API Changes:
649
650 * lowest_layer is removed
651
652 Actions Required:
653
654 * Remove lowest_layer and lowest_layer_type from user-defined streams.
655 * Use the get_lowest_layer free function and the lowest_layer_type trait
656   as needed.
657
658 --------------------------------------------------------------------------------
659
660 Version 206
661
662 * Clear error codes idiomatically
663 * websocket stream uses shared_ptr<impl_type>
664 * Add websocket-chat-multi example
665
666 --------------------------------------------------------------------------------
667
668 Version 205
669
670 * Doc work
671 * Add detail/soft_mutex.hpp
672 * Add detail/prng.hpp
673
674 --------------------------------------------------------------------------------
675
676 Version 204
677
678 * Add basic_timeout_stream
679 * Unit test macros use the global suite
680 * Doc work
681
682 --------------------------------------------------------------------------------
683
684 Version 203
685
686 * Update networking refresher doc
687 * Include error code in call to set_option
688 * saved_handler is a public interface
689 * Use new saved_handler in websocket
690 * session_alloc is thread-safe
691 * examples use flat_buffer
692 * parse_until is not static
693 * Boost.System is header-only
694
695 --------------------------------------------------------------------------------
696
697 Version 202
698
699 * Use cxxstd instead of cxxflags
700 * Update coverage badge images
701 * Tidy up basic_stream_socket docs
702 * Refactor async_op_base
703 * Use async_op_base
704 * async_op_base is a public interface
705 * Add tests for bind_back_handler
706 * Add tests for async_op_base
707
708 --------------------------------------------------------------------------------
709
710 Version 201
711
712 * Decay bound arguments in handler wrapper parameters
713 * Add bind_back_handler
714 * Tidy up default-constructed iterators
715 * Add core errors and conditions
716 * New basic_stream_socket
717
718 --------------------------------------------------------------------------------
719
720 Version 200
721
722 * Don't include OpenSSL for core snippets
723 * Tidy up msvc-14 workaround in multi_buffer
724 * buffers_cat fixes and coverage
725 * Refactor buffers_adaptor
726 * Refactor buffers_range
727 * Fix and refactor buffers_cat
728 * Refactor buffers_prefix
729 * Add const and mutable buffer sequence traits
730 * Add buffers_iterator_type trait
731 * Use new buffer traits, remove old unused traits
732 * Optimize for size on buffers_cat preconditions
733 * Refactor buffers_suffix
734 * Tidy up flat_buffer tests
735 * Fix ostream prepare calculation for low limits
736 * Tidy up flat_static_buffer tests
737 * Add more tests for dynamic buffers
738 * Tidy up multi_buffer
739 * Refactor ostream
740 * Refactor static_buffer
741 * HTTP tidying
742 * Adjust static_asio lib options in Jamfile
743 * Add type_traits tests
744 * Add buffers_range_ref (replaces reference_wrapper parameter)
745
746 API Changes:
747
748 * buffers_adaptor replaces buffers_adapter (rename)
749 * make_printable replaces buffers (rename)
750 * Remove file_mode::append_new
751
752 Actions Required:
753
754 * Replace buffers_adapter.hpp with buffers_adaptor.hpp, and
755   replace buffers_adapter with buffers_adaptor. Or, define
756   BOOST_BEAST_ALLOW_DEPRECATED
757
758 * Replace call sites to use make_printable instead of buffers,
759   and also include make_printable.hpp instead of ostream.hpp.
760
761 * Replace file_mode::append_new with file_mode::append
762   or file_mode::append_existing instead of file_mode::append_new
763
764 --------------------------------------------------------------------------------
765
766 Version 199:
767
768 * Workarounds for msvc-14
769 * Fix Appveyor badge links
770
771 --------------------------------------------------------------------------------
772
773 Version 198:
774
775 * flat_buffer improvements
776 * multi_buffer improvements
777 * static_buffer improvements
778 * flat_static_buffer_improvements
779 * saved_handler maintains a work_guard (websocket)
780 * Add buffer_traits.hpp, buffers_type
781 * Tidy up experimental files
782 * Tidy up core files
783 * Fix bind_handler, bind_front_handler
784 * Improved handler bind wrapper tests
785
786 API Changes:
787
788 * Files return errc::bad_file_descriptor
789 * flat_static_buffer::reset is deprecated
790
791 Actions Required:
792
793 * Callers checking for errc::invalid_argument from calls to
794   file APIs should check for errc::bad_file_descriptor instead.
795
796 * Replace calls to flat_static_buffer::reset with
797   flat_static_buffer::clear
798
799 --------------------------------------------------------------------------------
800
801 Version 197:
802
803 * Improvements to echo-op example
804 * Crawler example clears the response before each read
805 * Use a struct instead of a pair in flat_stream (experimental)
806
807 API Changes:
808
809 * Refactor HTTP operations
810
811 Actions Required:
812
813 * Callers depending on the return value of http::read or
814   http::async_read overloads should adjust the usage of
815   the returned value as needed.
816
817 --------------------------------------------------------------------------------
818
819 Version 196:
820
821 * Tidy up calls to placement new
822 * Remove unused type_traits
823 * Simplify handler_ptr
824
825 --------------------------------------------------------------------------------
826
827 Version 195:
828
829 * net is a namespace alias for boost::asio
830 * Simplify multi_buffer and static_buffer sequences
831 * Documentation work
832
833 --------------------------------------------------------------------------------
834
835 Version 194:
836
837 * http::async_read returns the right byte count on error
838 * Add net namespace alias
839 * Don't use-after-free in test
840 * Tidy up ssl_stream (experimental)
841 * Dynamic buffer improvements
842 * Saved handlers are dispatched
843
844 --------------------------------------------------------------------------------
845
846 Version 193:
847
848 * Update ssl_stream signatures for networking changes
849 * Fix test::stream async_result transformation
850 * Tidy up test::stream
851 * Enable explicit instantiation of websocket::stream
852
853 --------------------------------------------------------------------------------
854
855 Version 192:
856
857 * Use mp11::integer_sequence
858 * Tidy up warnings and deprecated usage
859 * http::message is not-a boost::empty_value
860 * Fix link in docs
861 * Fixes to timeout services (experimental)
862
863 --------------------------------------------------------------------------------
864
865 Version 191:
866
867 * Add bind_front_handler
868 * Use bind_front_handler
869 * Simplify some type traits
870 * Use lean_tuple in buffers_cat
871 * Use lean_tuple in bind_handler, bind_front_handler
872 * Use mp11 in detail::variant
873 * Fix buffers_cat uninitialized warning
874 * Fix static_string uninitialized warning
875 * Fix warning in is_ssl_handshake
876
877 --------------------------------------------------------------------------------
878
879 Version 190:
880
881 * Add missing includes to convenience headers
882 * Unit test framework is experimental
883 * Add buffers_range
884 * Rename experimental directory
885 * Improve compilation of tests for continuous integration
886 * Fix visibility warnings in test
887
888 --------------------------------------------------------------------------------
889
890 Version 189-hf1:
891
892 * Fix broken doc link
893 * example/cppcon2018 only requires C++11
894
895 --------------------------------------------------------------------------------
896
897 Version 189:
898
899 * Add CppCon2018 chat server example and video
900
901 --------------------------------------------------------------------------------
902
903 Version 188:
904
905 * Remove extraneous strand from example
906 * Add missing include in http/read.ipp
907 * Test for gcc warning bug
908 * Fix a spurious gcc warning
909
910 --------------------------------------------------------------------------------
911
912 Version 187:
913
914 * Add experimental timeout_socket
915 * Fix warning in file tests
916 * Fix uninitialized comparison in buffers iterator
917 * Partial support for BOOST_NO_EXCEPTIONS
918 * Fix a spurious gcc warning
919 * Test for gcc warning bug
920 * Add missing include
921 * Remove extraneous strand from example
922
923 --------------------------------------------------------------------------------
924
925 Version 186:
926
927 * basic_fields uses intrusive base hooks
928 * Fix parsing of out-of-bounds hex values
929
930 --------------------------------------------------------------------------------
931
932 Version 185:
933
934 * Remove extraneous function
935 * Fix some typos
936 * Add BOOST_BEAST_USE_STD_STRING_VIEW
937 * Fix timer on websocket upgrade in examples
938
939 --------------------------------------------------------------------------------
940
941 Version 183:
942
943 * Fix a rare case of failed UTF8 validation
944 * Verify certificates in client examples
945 * Use boost::empty_value
946 * Workaround for http-server-fast and libstdc++
947
948 --------------------------------------------------------------------------------
949
950 Version 182:
951
952 * Silence ubsan false positive
953
954 --------------------------------------------------------------------------------
955
956 Version 181:
957
958 * Fix parse_dec algorithm
959 * Add parse_dec tests
960
961 --------------------------------------------------------------------------------
962
963 Version 180:
964
965 * Fix http_server_stackless_ssl.cpp example
966
967 --------------------------------------------------------------------------------
968
969 Version 179:
970
971 * Use the exchange() idiom in move constructors
972 * Most members of std::allocate are deprecated in C++17
973 * Remove some unused variables
974
975 --------------------------------------------------------------------------------
976
977 Version 178:
978
979 * Use static_cast instead
980
981 --------------------------------------------------------------------------------
982
983 Version 177:
984
985 * Add test for issue #1188
986 * Set /permissive-
987 * Check error in example set_option
988
989 --------------------------------------------------------------------------------
990
991 Version 176:
992
993 * Tidy up Quick Reference
994 * Fix array end calculation in utf8 assertion
995 * WebSocket masks use secure PRNG by default
996
997 --------------------------------------------------------------------------------
998
999 Version 175:
1000
1001 * Fix initialization warning
1002
1003 --------------------------------------------------------------------------------
1004
1005 Version 174:
1006
1007 * Fix Fields, FieldsWriter concept docs
1008 * Fix BodyReader constructor requirements doc
1009
1010 --------------------------------------------------------------------------------
1011
1012 Version 173:
1013
1014 * Remove Autobahn testsuite doc note
1015 * Fix buffers_adapter iterator value type
1016 * Fix buffers_adapter max_size
1017 * Fix buffers_prefix iterator decrement
1018 * buffers_adapter improvements
1019 * Add icy_stream Shoutcast stream filter
1020
1021 --------------------------------------------------------------------------------
1022
1023 Version 172:
1024
1025 * Tidy up websocket stream javadocs
1026 * Fix move-only arguments in bind_handler
1027 * Fix http::parser constructor javadoc
1028 * Tidy up test::stream javadocs
1029 * Tidy up composed operation doc
1030
1031 --------------------------------------------------------------------------------
1032
1033 Version 171:
1034
1035 * Add handler_ptr::has_value
1036 * Remove spurious assert
1037 * Fix unused variable warning
1038
1039 --------------------------------------------------------------------------------
1040
1041 Version 170:
1042
1043 * Add flat_stream to experimental
1044 * Add ssl_stream to experimental
1045 * Add test::error to experimental
1046 * Add test::fail_count to experimental
1047 * Add test::stream to experimental
1048 * Use a shared string for example HTTP server doc roots
1049 * Remove deprecated serializer::reader_impl()
1050 * Remove deprecated Body reader and writer ctor signatures
1051 * Add is_mutable_body_writer metafunction
1052 * Add const and non-const overloads for message based http writes
1053 * Use the root certificate which matches the fingerprint
1054
1055 --------------------------------------------------------------------------------
1056
1057 Version 169:
1058
1059 * Use buffers_to_string in tests
1060 * Use boost::void_t
1061 * Refactor HTTP write_op implementation
1062 * Use fully qualified namespace in BOOST_BEAST_HANDLER_INIT
1063 * New flat_stream example class
1064 * Use flat_stream in ssl_stream example code
1065
1066 --------------------------------------------------------------------------------
1067
1068 Version 168:
1069
1070 * Use executor_work_guard in composed operations
1071 * Revert verb.ipp change which caused spurious warnings
1072 * Fix race in advanced server examples
1073
1074 --------------------------------------------------------------------------------
1075
1076 Version 167:
1077
1078 * Revert: Tidy up calls to post()
1079
1080 --------------------------------------------------------------------------------
1081
1082 Version 166:
1083
1084 * Use boost::is_convertible as a workaround
1085
1086 --------------------------------------------------------------------------------
1087
1088 Version 165:
1089
1090 * Fix BOOST_NO_CXX11_ALLOCATOR check
1091
1092 --------------------------------------------------------------------------------
1093
1094 Version 164:
1095
1096 * Fix masking on continuation frames
1097 * Add Access-Control-Expose-Headers field constant
1098
1099 --------------------------------------------------------------------------------
1100
1101 Version 163:
1102
1103 * Tidy up calls to post()
1104 * Fix narrowing warnings
1105
1106 --------------------------------------------------------------------------------
1107
1108 Version 162:
1109
1110 * Add asio_handler_invoke overloads for stream algorithms
1111 * Improve websocket::stream::control_callback javadoc
1112
1113 --------------------------------------------------------------------------------
1114
1115 Version 161:
1116
1117 * Don't copy the handler in write_some_op
1118 * Add move-only handler tests
1119 * Fix handler parameter javadocs
1120
1121 --------------------------------------------------------------------------------
1122
1123 Version 160:
1124
1125 * Examples clear the HTTP message before reading
1126
1127 --------------------------------------------------------------------------------
1128
1129 Version 159:
1130
1131 * Fix typo in release notes
1132 * Safe treatment of zero-length string arguments in basic_fields
1133 * Some basic_fields operations now give the strong exception guarantee
1134
1135 --------------------------------------------------------------------------------
1136
1137 Version 158:
1138
1139 * Tidy up end_of_stream javadoc
1140 * Tidy up websocket docs
1141 * Examples set reuse_address(true)
1142 * Advanced servers support clean shutdown via SIGINT or SIGTERM
1143 * DynamicBuffer input areas are not mutable
1144 * Tidy up some documentation
1145
1146 API Changes:
1147
1148 * get_lowest_layer is a type alias
1149
1150 Actions required:
1151
1152 * Replace instances of `typename get_lowest_layer<T>::type`
1153   with `get_lowest_layer<T>`.
1154
1155 --------------------------------------------------------------------------------
1156
1157 Version 157:
1158
1159 * Fix teardown for TIME_WAIT
1160 * Fix big-endian websocket masking
1161
1162 --------------------------------------------------------------------------------
1163
1164 Version 156:
1165
1166 * Don't use typeid
1167 * Add release notes to documentation
1168 * Fix stale link for void-or-deduced
1169
1170 --------------------------------------------------------------------------------
1171
1172 Version 155:
1173
1174 * Fix memory leak in advanced server examples
1175 * Fix soft-mutex assert in websocket stream
1176 * Fix fallthrough warnings
1177 * Tidy up bind_handler doc
1178
1179 --------------------------------------------------------------------------------
1180
1181 Version 154:
1182
1183 * Type check completion handlers
1184 * bind_handler doc update
1185 * bind_handler works with boost placeholders
1186
1187 --------------------------------------------------------------------------------
1188
1189 Version 153:
1190
1191 * Remove BOOST_VERSION checks
1192 * Use make_error_code for setting an error_code from errc
1193 * Use boost::winapi::GetLastError() consistently
1194 * Update README.md for branches
1195 * Avoid string_view::clear
1196 * Fix iterator version of basic_fields::erase
1197 * Fix use-after-move in example request handlers
1198 * Add Bishop Fox interview media
1199
1200 --------------------------------------------------------------------------------
1201
1202 Version 152:
1203
1204 * Refactor detect_ssl_op
1205 * Disable gdb on Travis for Meltdown
1206
1207 WebSocket:
1208
1209 * Redistribute the read tests in the translation units
1210 * Refactor error headers
1211 * Add WebSocket error conditions
1212
1213 API Changes:
1214
1215 * Refactor WebSocket errors (API Change):
1216
1217 Actions Required:
1218
1219 * Code which explicitly compares error_code values against the
1220   constant `websocket::error::handshake_failed` should compare
1221   against `websocket::condition::handshake_failed` instead.
1222
1223 * Code which explicitly compares error_code values against the
1224   constant `websocket::error::failed` should compare
1225   against `websocket::condition::protocol_violation` instead.
1226
1227 --------------------------------------------------------------------------------
1228
1229 Version 151:
1230
1231 * Sanitizer failures are errors
1232 * Depend on container_hash
1233 * Fix high-ASCII in source file
1234
1235 WebSocket:
1236
1237 * Control callback is invoked on the execution context
1238 * Add stream_fwd.hpp
1239 * Remove unnecessary include
1240
1241 API Changes:
1242
1243 * http::parser is not MoveConstructible
1244 * permessage-deflate is a compile-time feature
1245
1246 --------------------------------------------------------------------------------
1247
1248 Version 150:
1249
1250 * handler_ptr tests
1251 * Documentation
1252
1253 API Changes:
1254
1255 * serializer::reader_impl is deprecated
1256
1257 Actions Required:
1258
1259 * Call serializer::writer_impl instead of reader_impl
1260
1261 --------------------------------------------------------------------------------
1262
1263 Version 149:
1264
1265 * built-in r-value return values can't be assigned
1266 * Tidy up ssl_stream special members
1267 * Fix CMakeLists.txt variable
1268 * Protect calls from macros
1269 * pausation always allocates
1270 * Don't copy completion handlers
1271 * handler_ptr is move-only
1272 * Fix Travis memory utilization
1273
1274 API Changes:
1275
1276 * handler_ptr gives the strong exception guarantee
1277
1278 Actions Required:
1279
1280 * Change the constructor signature for state objects
1281   used with handler_ptr to receive a const reference to
1282   the handler.
1283
1284 --------------------------------------------------------------------------------
1285
1286 Version 148:
1287
1288 * Install codecov on codecov CI targets only
1289 * Update reports for hybrid assessment
1290 * Handle invalid deflate frames
1291
1292 --------------------------------------------------------------------------------
1293
1294 Version 147:
1295
1296 * Don't use boost::string_ref
1297 * Use iterator wrapper in detail::buffers_range
1298
1299 HTTP:
1300
1301 * Tidy up basic_fields exception specifiers
1302
1303 WebSocket:
1304
1305 * control callback is copied or moved
1306 * Send idle pings in advanced servers
1307
1308 --------------------------------------------------------------------------------
1309
1310 Version 146:
1311
1312 * Fix some typos
1313 * Faster ascii_tolower
1314 * Documentation tidying
1315 * Fix typo in examples documentation
1316 * Add detail::aligned_union and tidy up
1317 * Use variant in buffers_cat_view
1318
1319 API Changes:
1320
1321 * Remove unintended public members of handler_ptr
1322
1323 --------------------------------------------------------------------------------
1324
1325 Version 145:
1326
1327 * Rename some detail functions
1328 * Refactor basic_fields allocator internals
1329 * Refactor HTTP async read composed operations
1330 * null_buffers is deprecated
1331 * Version 124 works with Boost 1.65.1 and earlier
1332 * basic_fields does not support fancy pointers
1333
1334 --------------------------------------------------------------------------------
1335
1336 Version 144-hf1:
1337
1338 * Update reports for hybrid assessment
1339 * Handle invalid deflate frames
1340 * Install codecov on codecov CI targets only
1341
1342 --------------------------------------------------------------------------------
1343
1344 Version 144:
1345
1346 * Fix websocket permessage-deflate negotiation
1347
1348 --------------------------------------------------------------------------------
1349
1350 Version 143:
1351
1352 * Fix autobahn report link
1353
1354 --------------------------------------------------------------------------------
1355
1356 Version 142:
1357
1358 * Warn about upcoming API changes to certain concepts
1359 * Fix name typo in http write test
1360
1361 --------------------------------------------------------------------------------
1362
1363 Version 141:
1364
1365 * Tidy up some documentation
1366
1367 --------------------------------------------------------------------------------
1368
1369 Version 140:
1370
1371 * Fix some integer warnings in 64-bit builds
1372 * Fix utf8_checker test failures
1373 * Fix signature for async_read_some, and tests
1374 * Tidy up basic_parser
1375 * Some basic_fields special members are protected
1376
1377 --------------------------------------------------------------------------------
1378
1379 Version 139:
1380
1381 * Revisit boost library min/max guidance
1382
1383 --------------------------------------------------------------------------------
1384
1385 Version 138:
1386
1387 * Tidy up some documentation
1388
1389 --------------------------------------------------------------------------------
1390
1391 Version 137:
1392
1393 * ConstBufferSequence mandates pointer equivalence
1394 * Add FieldsWriter constructor requirement
1395 * Tidy up some documented constructor syntax
1396
1397 --------------------------------------------------------------------------------
1398
1399 Version 136:
1400
1401 * Tidy up message doc image
1402
1403 --------------------------------------------------------------------------------
1404
1405 Version 135:
1406
1407 * Fix typo in example server help text
1408
1409 --------------------------------------------------------------------------------
1410
1411 Version 134:
1412
1413 * Add static_buffer_base default constructor definition
1414
1415 --------------------------------------------------------------------------------
1416
1417 Version 133:
1418
1419 * Remove const&& overload of message::body
1420
1421 --------------------------------------------------------------------------------
1422
1423 Version 132:
1424
1425 * Tidy up project folders in CMakeLists.txt
1426 * Rename Cmake variables for clarity
1427 * Add ref-qualified overloads for message::body
1428 * Tidy up FieldsReader doc
1429
1430 API Changes:
1431
1432 * Fields::writer replaces Fields::reader
1433 * BodyReader and BodyWriter names are swapped
1434
1435 Actions Required:
1436
1437 * Rename reader to writer for user defined Fields
1438 * Swap the reader and writer names for user defined Body types
1439 * Swap use of is_body_reader and is_body_writer
1440
1441 --------------------------------------------------------------------------------
1442
1443 Version 131:
1444
1445 * basic_fields returns const values
1446 * Set SNI hostname in example SSL clients
1447
1448 --------------------------------------------------------------------------------
1449
1450 Version 130:
1451
1452 * Tidy up fallthrough warning
1453 * Remove cxx11_sfinae_expr build requirement from tests
1454
1455 --------------------------------------------------------------------------------
1456
1457 Version 129:
1458
1459 * Add autobahn test report to doc
1460 * Documentation tidying
1461 * Fix prepare_payload: chunked is HTTP/1.1
1462
1463 --------------------------------------------------------------------------------
1464
1465 Version 128:
1466
1467 * Update doc links
1468 * Add explicit-failures-markup.xml
1469
1470 HTTP:
1471
1472 * Add message::need_eof
1473 * Use message::need_eof in example servers
1474 * Use synchronous writes in chunk output example
1475
1476 WebSocket:
1477
1478 * Fix utf8 validation for autobahn
1479 * Temporarily disable utf8 validation tests
1480 * Tidy up fast websocket server host names
1481
1482 API Changes:
1483
1484 * Remove serializer::keep_alive
1485 * Remove serializer::chunked
1486 * Add has_content_length_impl to Fields
1487 * Add message::has_content_length
1488 * Rename some basic_parser observers
1489
1490 Actions Required:
1491
1492 * Call message::keep_alive instead of serializer::keep_alive
1493 * Call serializer::get::chunked instead of serializer::chunked
1494 * Implement has_content_length_impl for user-defined Fields
1495 * Remove the "is_" prefix from call sites invoking certain basic_parser members
1496
1497 --------------------------------------------------------------------------------
1498
1499 Version 127:
1500
1501 * Add BOOST_BEAST_NO_POSIX_FADVISE
1502 * Version command line option for HTTP client examples
1503 * More Jamfile compiler requirements for tests
1504
1505 --------------------------------------------------------------------------------
1506
1507 Version 126:
1508
1509 * Add CppCon2017 presentation link
1510 * Update README.md
1511 * Update stream write documentation for end of stream changes
1512 * Tidy up unused variable warnings
1513 * Don't return end_of_stream on win32 file body writes
1514 * Fix doc typo
1515 * Fix shadowing in session_alloc
1516 * Fix executor type compilation
1517 * Add Travis tests with the default compilers
1518 * Update Boost.WinAPI usage to the new location and namespace.
1519 * Fix buffered_read_stream async_read_some signature
1520
1521 --------------------------------------------------------------------------------
1522
1523 Version 125:
1524
1525 API Changes:
1526
1527 * Update for Net-TS Asio
1528
1529 Actions Required:
1530
1531 * Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
1532 * Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
1533 * Use boost::asio::async_completion
1534 * Use boost::asio::is_dynamic_buffer
1535 * Use boost::asio::is_const_buffer_sequence
1536 * Use boost::asio::is_mutable_buffer_sequence
1537 * boost::asio::associated_allocator_t replaces handler_alloc
1538
1539 --------------------------------------------------------------------------------
1540
1541 Version 124:
1542
1543 * Fix for a test matrix compiler
1544 * Fix basic_fields javadoc
1545
1546 API Changes:
1547
1548 * http write returns success on connection close
1549
1550 Actions Required:
1551
1552 * Add code to servers to close the connection after successfully
1553   writing a message where `message::keep_alive()` would return `false`.
1554
1555 --------------------------------------------------------------------------------
1556
1557 Version 123:
1558
1559 * Use unit-test subtree
1560 * Fix spurious race in websocket close test
1561 * Check compiler feature in Jamfile
1562 * Clear previous message fields in parser
1563
1564 --------------------------------------------------------------------------------
1565
1566 Version 122:
1567
1568 * Add test for issue 807
1569 * assert on empty buffer in websocket read
1570 * Fix zlib symbol conflicts
1571 * CMake 3.5.1 is required
1572 * config.hpp is not a public header
1573 * Add missing case in error test
1574
1575 --------------------------------------------------------------------------------
1576
1577 Version 121:
1578
1579 * Add test for issue 802
1580 * Fix enum and non-enum in conditional exp. warning
1581
1582 --------------------------------------------------------------------------------
1583
1584 Version 120:
1585
1586 * Fix spurious strand_ in advanced_server_flex
1587 * OpenSSL targets are optional (CMake)
1588
1589 --------------------------------------------------------------------------------
1590
1591 Version 119:
1592
1593 * Tidy up doc badge links
1594
1595 --------------------------------------------------------------------------------
1596
1597 Version 118:
1598
1599 * file_win32 opens for read-only in shared mode
1600 * Remove unused strands in server examples
1601 * Update build instructions
1602 * Doc root is at index.html
1603
1604 HTTP:
1605
1606 * Fix writing header into std::ostream
1607
1608 --------------------------------------------------------------------------------
1609
1610 Version 117:
1611
1612 * Add buffers_to_string
1613
1614 API Changes:
1615
1616 * buffers_suffix replaces consuming_buffers
1617 * buffers_prefix replaces buffer_prefix
1618 * buffers_prefix_view replaces buffer_prefix_view
1619 * buffers_front replaces buffer_front
1620 * buffers_cat replaces buffer_cat
1621 * buffers_cat_view replaces buffer_cat_view
1622 * Remove buffers_suffix::get
1623
1624 Actions Required:
1625
1626 * Use buffers_suffix instead of consuming_buffers
1627 * Use buffers_prefix instead of buffer_prefix
1628 * Use buffers_prefix_view instead of buffer_prefix_view
1629 * Use buffers_front instead of buffer_front
1630 * Use buffers_cat instead of buffer_cat
1631 * Use buffers_cat_view instead of buffer_cat_view
1632 * Avoid calling buffers_suffix::get
1633
1634 --------------------------------------------------------------------------------
1635
1636 Version 116:
1637
1638 API Changes:
1639
1640 * message::body is a member function
1641 * message::version is a member function
1642
1643 Actions Required:
1644
1645 * Call member function message::body instead of accessing
1646   the data member at call sites.
1647
1648 * Call member function message::version instead of accessing
1649   the version member at call sites.
1650
1651 --------------------------------------------------------------------------------
1652
1653 Version 115:
1654
1655 * Update README.md master doc link
1656
1657 --------------------------------------------------------------------------------
1658
1659 Version 114:
1660
1661 (No changes)
1662
1663 --------------------------------------------------------------------------------
1664
1665 Version 113:
1666
1667 * Fix handler signature in async_read_header
1668 * Remove field_range copy constructor
1669
1670 --------------------------------------------------------------------------------
1671
1672 Version 112:
1673
1674 * Update websocket notes
1675
1676 API Changes:
1677
1678 * WebSocket writes return the bytes transferred
1679
1680 * HTTP reads and writes return bytes transferred
1681
1682 Actions Required:
1683
1684 * Modify websocket write completion handlers to receive
1685   the extra std::size_t bytes_transferred parameter.
1686
1687 * Modify HTTP read and/or write completion handlers to
1688   receive the extra std::size_t bytes_transferred parameter.
1689
1690 --------------------------------------------------------------------------------
1691
1692 Version 111:
1693
1694 WebSocket:
1695
1696 * Fix utf8 check split code point at buffer end
1697 * Refactor stream operations and tests plus coverage
1698 * Suspended ops special members
1699
1700 --------------------------------------------------------------------------------
1701
1702 Version 110:
1703
1704 * Refactor stream open state variable
1705 * Refactor websocket stream members
1706 * Refactor websocket stream: fixes and tests
1707 * Add test::stream::lowest_layer
1708 * Fix invalid iterator in test reporter
1709
1710 --------------------------------------------------------------------------------
1711
1712 Version 109:
1713
1714 * refactor test::stream
1715
1716 WebSocket:
1717
1718 * Fix async_read_some handler signature
1719 * websocket close fixes and tests
1720 * websocket handshake uses coroutine
1721 * websocket ping tests
1722 * Fix websocket close_op resume state
1723 * websocket write tests
1724 * split up websocket tests
1725 * websocket read tests
1726
1727 API Changes:
1728
1729 * websocket accept refactoring
1730
1731 Actions Required:
1732
1733 * Do not call websocket accept overloads which take
1734   both a message and a buffer sequence, as it is
1735   illegal per rfc6455.
1736
1737 --------------------------------------------------------------------------------
1738
1739 Version 108:
1740
1741 * Fix argument parsing in HTTP examples
1742 * Don't use async_write_msg in examples
1743
1744 --------------------------------------------------------------------------------
1745
1746 Version 107:
1747
1748 * Use test::stream
1749
1750 WebSocket
1751
1752 * Fix done state for WebSocket reads
1753 * Fix utf8 check for compressed frames
1754 * Rename frame and header buffer types
1755
1756 --------------------------------------------------------------------------------
1757
1758 Version 106:
1759
1760 * Dynamic buffer input areas are mutable
1761 * Add flat_static_buffer::reset
1762
1763 HTTP:
1764
1765 * Fix for basic_parser::skip(true) and docs
1766
1767 WebSocket:
1768
1769 * websocket test improvements
1770 * Remove obsolete write_op
1771 * Refactor write_op
1772 * Refactor ping_op
1773 * Refactor fail_op
1774 * Refactor read_op
1775 * Refactor close_op
1776 * Refactor read_op + fail_op
1777 * Websocket close will automatically drain
1778 * Autobahn|Testsuite fixes
1779 * Tidy up utf8_checker and tests
1780
1781 --------------------------------------------------------------------------------
1782
1783 Version 105:
1784
1785 * Fix compile error in websocket snippet
1786 * Tidy up Jamfile and tests
1787
1788 --------------------------------------------------------------------------------
1789
1790 Version 104:
1791
1792 * Remove unused include
1793 * Use #error in config.hpp
1794 * Only set -std=c++11 on Travis
1795 * Only set /permissive- on Appveyor
1796 * Tidy up some test warnings
1797 * tools/ renamed from build/
1798
1799 WebSocket:
1800
1801 * Fix pausation::save
1802
1803 --------------------------------------------------------------------------------
1804
1805 Version 103:
1806
1807 * Boost test matrix fixes
1808 * Tidy up allocator usage
1809 * Example HTTP server fixes
1810
1811 --------------------------------------------------------------------------------
1812
1813 Version 102:
1814
1815 * Section headings in examples
1816
1817 --------------------------------------------------------------------------------
1818
1819 Version 101:
1820
1821 * Refactor all examples
1822
1823 --------------------------------------------------------------------------------
1824
1825 Version 100:
1826
1827 * Fix doc convenience includes
1828 * Fix doc includes
1829 * Remove unused test header
1830 * Rename test macros
1831 * Reorder define test macro params
1832 * vcxproj workaround for include symlinks
1833 * Add variadic min/max
1834
1835 WebSocket:
1836
1837 * Remove obsolete frame tests
1838 * Refactor fail/clode code
1839 * Call do_fail from read_some
1840 * eof on accept returns error::closed
1841 * Fix stream::read_size_hint calculation
1842 * Documentation
1843
1844 API Changes:
1845
1846 * Calls to stream::close and stream::async_close will
1847   automatically perform the required read operations
1848
1849 * drain_buffer is removed
1850
1851 * role_type replaces teardown_tag
1852
1853 Actions Required:
1854
1855 * Remove calling code which drains the connection after
1856   calling stream::close or stream::async_close
1857
1858 * Replace code which uses drain_buffer. For websocket::stream,
1859   it is no longer necessary to manually drain the connection
1860   after closing.
1861
1862 * Modify signatures of teardown and async_teardown to use
1863   role_type instead of teardown_tag
1864
1865 * Change calls to teardown and async_teardown to pass the
1866   correct role_type, client or server, depending on context.
1867
1868 --------------------------------------------------------------------------------
1869
1870 Version 99:
1871
1872 * Log the value of LIB_DIR for doc builds (debug)
1873 * Use correct handler signature in fail_op
1874 * Fix doc typo
1875
1876 --------------------------------------------------------------------------------
1877
1878 Version 98:
1879
1880 * basic_fields::key_compare is noexcept
1881 * Fix bench-zlib cmake
1882 * Use unique names Jam projects
1883 * Trim utf8 checker test
1884
1885 --------------------------------------------------------------------------------
1886
1887 Version 97:
1888
1889 * Update redirect
1890
1891 --------------------------------------------------------------------------------
1892
1893 Version 96:
1894
1895 * Move bench/ to test/
1896 * Move extras/ to test/
1897 * Use <valgrind> property
1898 * Rename wsload compile target
1899 * Fix library.json
1900 * Update boostorg links
1901 * Add bench-zlib
1902 * Faster zlib tests
1903 * Less compression on websocket test
1904
1905 --------------------------------------------------------------------------------
1906
1907 Version 95:
1908
1909 * Tidy up Travis build scripts
1910 * Move scripts to build/
1911 * Fix race in test::pipe
1912 * close on test::pipe teardown
1913 * Add test::stream
1914 * Tidy up static_buffer braced init
1915 * Fix html redirect
1916 * Add valgrind variant, fix false positives
1917
1918 --------------------------------------------------------------------------------
1919
1920 Version 94:
1921
1922 * Use off-site Quick Start link temporarily
1923
1924 --------------------------------------------------------------------------------
1925
1926 Version 93:
1927
1928 * Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
1929
1930 --------------------------------------------------------------------------------
1931
1932 Version 92:
1933
1934 * Fix typo in test/CMakeLists.txt
1935 * basic_fields::value_type is not copyable
1936 * Update repository links in source comments
1937 * Ignore Content-Length in some cases
1938 * Tidy up doc snippet paths
1939 * Use off-site doc link
1940
1941 --------------------------------------------------------------------------------
1942
1943 Version 91:
1944
1945 * Adjust redirect html
1946 * Don't build pre-C++11
1947 * source.dox is path-independent
1948 * Tidy up namespace qualifiers
1949 * Tidy up MSVC CMakeLists.txt
1950 * Optimize buffered_read_stream
1951 * constexpr in derived buffers
1952 * Set BOOST_ASIO_NO_DEPRECATED
1953 * Use Asio array optimization in static_buffer_base
1954 * Rename wstest source file
1955 * Use fopen_s on Windows
1956 * Fix Appveyor script
1957 * Update project metadata
1958 * Move benchmarks to bench/
1959 * Fix doc title
1960 * Build stand-alone doc
1961 * Update doc copyrights
1962 * Refactor test build scripts
1963
1964 WebSocket:
1965
1966 * Tidy up websocket javadocs
1967 * Refactor accept, handshake ops
1968 * Use read buffer instead of buffered stream
1969
1970 API Changes
1971
1972 * control frame callbacks are non-const references
1973
1974 Actions Required:
1975
1976 * Modify calls to set the control frame callback, to
1977   pass non-const reference instances, and manage the
1978   lifetime of the instance.
1979
1980 --------------------------------------------------------------------------------
1981
1982 Version 90:
1983
1984 * Fix websocket read of zero length message
1985 * Fix typo in equal_range
1986 * Output to integrated documentation
1987
1988 --------------------------------------------------------------------------------
1989
1990 Version 89:
1991
1992 * Fix CONTRIBUTING.md links
1993
1994 --------------------------------------------------------------------------------
1995
1996 Version 88:
1997
1998 * Update doc links in README.md
1999 * Refactor tests Jamfile
2000 * Don't use program_options
2001
2002 WebSocket:
2003
2004 * Fix uninitialized frame done
2005
2006 --------------------------------------------------------------------------------
2007
2008 Version 87:
2009
2010 * Update appveyor for Boost branch
2011 * Rename to BEAST_EXPECT
2012 * variant fixes and tests
2013 * Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
2014
2015 --------------------------------------------------------------------------------
2016
2017 Version 86:
2018
2019 * Boost prep
2020 * Remove use of lexical_cast
2021 * Use custom variant
2022 * Update README.md
2023 * Add local-travis.sh
2024 * Use winapi
2025 * Update CMakeLists.txt for boost
2026 * Update documentation for boost
2027 * Update copyrights
2028 * Remove spurious declaration
2029 * Tidy up Jamfile
2030 * Normalize doc build scripts
2031 * Use configured doxygen and xsltproc
2032 * Fix Deferred Body Type Example Documentation
2033 * Add library metadata
2034
2035 API Changes:
2036
2037 * websocket read returns the number of bytes inserted
2038
2039 Actions Required:
2040
2041 * Change the signature of completion handlers used with
2042   websocket::stream::async_read to void(error_code, std::size_t)
2043
2044 --------------------------------------------------------------------------------
2045
2046 Version 85:
2047
2048 * Fix test failure
2049 * Tidy up test warning
2050
2051 --------------------------------------------------------------------------------
2052
2053 Version 84:
2054
2055 * Tidy up buffer_front
2056 * static_buffer::consume improvement
2057 * multi_buffer is type-check friendly
2058 * bind_handler allows placeholders
2059 * Add consuming_buffers::get
2060
2061 WebSocket:
2062
2063 * WebSocket read optimization
2064
2065 API Changes:
2066
2067 * websocket::stream::read_buffer_size is removed
2068
2069 Actions Required:
2070
2071 * Remove calls websocket::stream::read_buffer_size
2072 * Use read_some and write_some instead of read_frame and write_frame
2073
2074 --------------------------------------------------------------------------------
2075
2076 Version 83:
2077
2078 * Add flat_static_buffer::mutable_data
2079 * Add buffer_front
2080 * Add wstest compression option
2081 * Turn some flat_static_buffer_tests on
2082 * Documentation work
2083 * read_some, async_read_some return bytes used
2084 * Fix private timer::clock_type
2085
2086 WebSocket
2087
2088 * Add wstest compression option
2089 * Fix buffer lifetime in websocket write
2090
2091 API Changes:
2092
2093 * Add static_buffer
2094
2095 Actions Required:
2096
2097 * Callers who depend on static_buffer returning sequences of
2098   exactly length one should switch to flat_static_buffer.
2099
2100 --------------------------------------------------------------------------------
2101
2102 Version 82:
2103
2104 * Documentation tidying
2105 * is_invocable works with move-only types
2106 * Use std::function and reference wrapper
2107 * Add session_alloc to example/common
2108 * Silence spurious warning
2109
2110 HTTP
2111
2112 * Fix extraneous argument in async_write_header
2113
2114 WebSocket
2115
2116 * stream tidying
2117 * Add rd_close_ to websocket stream state
2118 * stream uses flat_buffer
2119 * accept requires a message
2120 * Add wstest benchmark tool
2121
2122 API Changes:
2123
2124 * Rename to flat_static_buffer and flat_static_buffer_base
2125
2126 Actions Required:
2127
2128 * Rename static_buffer to flat_static_buffer_base
2129 * Rename static_buffer_n to flat_static_buffer
2130
2131 --------------------------------------------------------------------------------
2132
2133 Version 81:
2134
2135 * Pass string_view by value
2136 * better is_final on empty_base_optimization
2137 * Suppress incorrect GCC warning
2138 * multi_buffer ctor is explicit
2139 * File is not copy-constructible
2140
2141 API Changes:
2142
2143 * Refactor basic_parser, chunk parsing:
2144
2145 Actions Required:
2146
2147 * Adjust signatures for required members of user-defined
2148   subclasses of basic_parser
2149
2150 * Use the new basic_parser chunk callbacks for accessing
2151   chunk extensions and chunk bodies.
2152
2153 --------------------------------------------------------------------------------
2154
2155 Version 80:
2156
2157 * Javadoc tidying
2158 * Add basic_dynamic_body.hpp
2159 * Shrink buffer_prefix_view
2160 * Remove unused file_path
2161 * Add basic_file_body.hpp
2162 * buffers_ref is Assignable
2163
2164 HTTP
2165
2166 * Shrink chunk header buffer sequence size
2167
2168 API Changes:
2169
2170 * Refactor chunked-encoding serialization
2171
2172 Actions Required:
2173
2174 * Remove references to ChunkDecorators. Use the new chunk-encoding
2175   buffer sequences to manually produce a chunked payload body in
2176   the case where control over the chunk-extensions and/or trailers
2177   is required.
2178
2179 --------------------------------------------------------------------------------
2180
2181 Version 79:
2182
2183 * Remove spurious fallthrough guidance
2184
2185 --------------------------------------------------------------------------------
2186
2187 Version 78:
2188
2189 * Add span
2190 * Documentation work
2191 * Use make_unique_noinit
2192 * Fix warning in zlib
2193 * Header file tidying
2194 * Tidy up FieldsReader doc
2195 * Add Boost.Locale utf8 benchmark comparison
2196 * Tidy up dstream for existing Boost versions
2197 * Tidy up file_posix unused variable
2198 * Fix warning in root ca declaration
2199
2200 HTTP:
2201
2202 * Tidy up basic_string_body
2203 * Add vector_body
2204 * span, string, vector bodies are public
2205 * Fix spurious uninitialized warning
2206 * fields temp string uses allocator
2207
2208 API Changes:
2209
2210 * Add message::keep_alive()
2211 * Add message::chunked() and message::content_length()
2212 * Remove string_view_body
2213
2214 Actions Required:
2215
2216 * Change user defined implementations of Fields and
2217   FieldsReader to meet the new requirements.
2218
2219 * Use span_body<char> instead of string_view_body
2220
2221 --------------------------------------------------------------------------------
2222
2223 Version 77:
2224
2225 * file_posix works without large file support
2226
2227 --------------------------------------------------------------------------------
2228
2229 Version 76:
2230
2231 * Always go through write_some
2232 * Use Boost.Config
2233 * BodyReader may construct from a non-const message
2234 * Add serializer::get
2235 * Add serializer::chunked
2236 * Serializer members are not const
2237 * serializing file_body is not const
2238 * Add file_body_win32
2239 * Fix parse illegal characters in obs-fold
2240 * Disable SSE4.2 optimizations
2241
2242 API Changes:
2243
2244 * Rename to serializer::keep_alive
2245 * BodyReader, BodyWriter use two-phase init
2246
2247 Actions Required:
2248
2249 * Use serializer::keep_alive instead of serializer::close and
2250   take the logical NOT of the return value.
2251
2252 * Modify instances of user-defined BodyReader and BodyWriter
2253   types to perform two-phase initialization, as per the
2254   updated documented type requirements.
2255
2256 --------------------------------------------------------------------------------
2257
2258 Version 75:
2259
2260 * Use file_body for valid requests, string_body otherwise.
2261 * Construct buffer_prefix_view in-place
2262 * Shrink serializer buffers using buffers_ref
2263 * Tidy up BEAST_NO_BIG_VARIANTS
2264 * Shrink serializer buffers using buffers_ref
2265 * Add serializer::limit
2266 * file_body tests
2267 * Using SSE4.2 intrinsics in basic_parser if available
2268
2269 --------------------------------------------------------------------------------
2270
2271 Version 74:
2272
2273 * Add file_stdio and File concept
2274 * Add file_win32
2275 * Add file_body
2276 * Remove common/file_body.hpp
2277 * Add file_posix
2278 * Fix Beast include directories for cmake targets
2279 * remove redundant flush() from example
2280
2281 --------------------------------------------------------------------------------
2282
2283 Version 73:
2284
2285 * Jamroot tweak
2286 * Verify certificates in SSL clients
2287 * Adjust benchmarks
2288 * Initialize local variable in basic_parser
2289 * Fixes for gcc-4.8
2290
2291 HTTP:
2292
2293 * basic_parser optimizations
2294 * Add basic_parser tests
2295
2296 API Changes:
2297
2298 * Refactor header and message constructors
2299 * serializer::next replaces serializer::get
2300
2301 Actions Required:
2302
2303 * Evaluate each message constructor call site and
2304   adjust the constructor argument list as needed.
2305
2306 * Use serializer::next instead of serializer::get at call sites
2307
2308 --------------------------------------------------------------------------------
2309
2310 Version 72:
2311
2312 HTTP:
2313
2314 * Tidy up set payload in http-server-fast
2315 * Refine Body::size specification
2316 * Newly constructed responses have a 200 OK result
2317 * Refactor file_body for best practices
2318 * Add http-server-threaded example
2319 * Documentation tidying
2320 * Various improvements to http_server_fast.cpp
2321
2322 WebSocket:
2323
2324 * Add websocket-server-async example
2325
2326 --------------------------------------------------------------------------------
2327
2328 Version 71:
2329
2330 * Fix extra ; warning
2331 * Documentation revision
2332 * Fix spurious on_chunk invocation
2333 * Call prepare_payload in HTTP example
2334 * Check trailers in test
2335 * Fix buffer overflow handling for string_body and mutable_body
2336 * Concept check in basic_dynamic_body
2337 * Tidy up http_sync_port error check
2338 * Tidy up Jamroot /permissive-
2339
2340 WebSockets:
2341
2342 * Fine tune websocket op asserts
2343 * Refactor websocket composed ops
2344 * Allow close, ping, and write to happen concurrently
2345 * Fix race in websocket read op
2346 * Fix websocket write op
2347 * Add cmake options for examples and tests
2348
2349 API Changes:
2350
2351 * Return `std::size_t` from `Body::writer::put`
2352
2353 Actions Required:
2354
2355 * Return the number of bytes actually transferred from the
2356   input buffers in user defined `Body::writer::put` functions.
2357
2358 --------------------------------------------------------------------------------
2359
2360 Version 70:
2361
2362 * Serialize in one step when possible
2363 * Add basic_parser header and body limits
2364 * Add parser::on_header to set a callback
2365 * Fix BEAST_FALLTHROUGH
2366 * Fix HEAD response in file_service
2367
2368 API Changes:
2369
2370 * Rename to message::base
2371 * basic_parser default limits are now 1MB/8MB
2372
2373 Actions Required:
2374
2375 * Change calls to message::header_part() with message::base()
2376
2377 * Call body_limit and/or header_limit as needed to adjust the
2378   limits to suitable values if the defaults are insufficient.
2379
2380 --------------------------------------------------------------------------------
2381
2382 Version 69:
2383
2384 * basic_parser optimizations
2385 * Use BEAST_FALLTHROUGH to silence warnings
2386 * Add /permissive- to msvc toolchain
2387
2388 --------------------------------------------------------------------------------
2389
2390 Version 68:
2391
2392 * Split common tests to a new project
2393 * Small speed up in fields comparisons
2394 * Adjust buffer size in fast server
2395 * Use string_ref in older Boost versions
2396 * Optimize field lookups
2397 * Add const_body, mutable_body to examples
2398 * Link statically on cmake MSVC
2399
2400 API Changes:
2401
2402 * Change BodyReader, BodyWriter requirements
2403 * Remove BodyReader::is_deferred
2404 * http::error::bad_target replaces bad_path
2405
2406 Actions Required:
2407
2408 * Change user defined instances of BodyReader and BodyWriter
2409   to meet the new requirements.
2410
2411 * Replace references to http::error::bad_path with http::error::bad_target
2412
2413 --------------------------------------------------------------------------------
2414
2415 Version 67:
2416
2417 * Fix doc example link
2418 * Add http-server-small example
2419 * Merge stream_base to stream and tidy
2420 * Use boost::string_view
2421 * Rename to http-server-fast
2422 * Appveyor use Boost 1.64.0
2423 * Group common example headers
2424
2425 API Changes:
2426
2427 * control_callback replaces ping_callback
2428
2429 Actions Required:
2430
2431 * Change calls to websocket::stream::ping_callback to use
2432   websocket::stream::control_callback
2433
2434 * Change user defined ping callbacks to have the new
2435   signature and adjust the callback definition appropriately.
2436
2437 --------------------------------------------------------------------------------
2438
2439 Version 66:
2440
2441 * string_param optimizations
2442 * Add serializer request/response aliases
2443 * Make consuming_buffers smaller
2444 * Fix costly potential value-init in parser
2445 * Fix unused parameter warning
2446 * Handle bad_alloc in parser
2447 * Tidy up message piecewise ctors
2448 * Add header aliases
2449 * basic_fields optimizations
2450 * Add http-server example
2451 * Squelch spurious warning on gcc
2452
2453 --------------------------------------------------------------------------------
2454
2455 Version 65:
2456
2457 * Enable narrowing warning on msvc cmake
2458 * Fix integer types in deflate_stream::bi_reverse
2459 * Fix narrowing in static_ostream
2460 * Fix narrowing in ostream
2461 * Fix narrowing in inflate_stream
2462 * Fix narrowing in deflate_stream
2463 * Fix integer warnings
2464 * Enable unused variable warning on msvc cmake
2465
2466 --------------------------------------------------------------------------------
2467
2468 Version 64:
2469
2470 * Simplify buffered_read_stream composed op
2471 * Simplify ssl teardown composed op
2472 * Simplify websocket write_op
2473 * Exemplars are compiled code
2474 * Better User-Agent in examples
2475 * async_write requires a non-const message
2476 * Doc tidying
2477 * Add link_directories to cmake
2478
2479 API Changes:
2480
2481 * Remove make_serializer
2482
2483 Actions Required:
2484
2485 * Replace calls to make_serializer with variable declarations
2486
2487 --------------------------------------------------------------------------------
2488
2489 Version 63:
2490
2491 * Use std::to_string instead of lexical_cast
2492 * Don't use cached Boost
2493 * Put num_jobs back up on Travis
2494 * Only build and run tests in variant=coverage
2495 * Move benchmarks to a separate project
2496 * Only run the tests under ubasan
2497 * Tidy up CMakeLists.txt
2498 * Tidy up Jamfiles
2499 * Control running with valgrind explicitly
2500
2501 --------------------------------------------------------------------------------
2502
2503 Version 62:
2504
2505 * Remove libssl-dev from a Travis matrix item
2506 * Increase detail::static_ostream coverage
2507 * Add server-framework tests
2508 * Doc fixes and tidy
2509 * Tidy up namespaces in examples
2510 * Clear the error faster
2511 * Avoid explicit operator bool for error
2512 * Add http::is_fields trait
2513 * Squelch harmless not_connected errors
2514 * Put slow tests back for coverage builds
2515
2516 API Changes:
2517
2518 * parser requires basic_fields
2519 * Refine FieldsReader concept
2520 * message::prepare_payload replaces message::prepare
2521
2522 Actions Required:
2523
2524 * Callers using `parser` with Fields types other than basic_fields
2525   will need to create their own subclass of basic_parser to work
2526   with their custom fields type.
2527
2528 * Implement chunked() and keep_alive() for user defined FieldsReader types.
2529
2530 * Change calls to msg.prepare to msg.prepare_payload. For messages
2531   with a user-defined Fields, provide the function prepare_payload_impl
2532   in the fields type according to the Fields requirements.
2533
2534 --------------------------------------------------------------------------------
2535
2536 Version 61:
2537
2538 * Remove Spirit dependency
2539 * Use generic_cateogry for errno
2540 * Reorganize SSL examples
2541 * Tidy up some integer conversion warnings
2542 * Add message::header_part()
2543 * Tidy up names in error categories
2544 * Flush the output stream in the example
2545 * Clean close in Secure WebSocket client
2546 * Add server-framework SSL HTTP and WebSocket ports
2547 * Fix shadowing warnings
2548 * Tidy up http-crawl example
2549 * Add multi_port to server-framework
2550 * Tidy up resolver calls
2551 * Use one job on CI
2552 * Don't run slow tests on certain targets
2553
2554 API Changes:
2555
2556 * header::version is unsigned
2557 * status-codes is unsigned
2558
2559 --------------------------------------------------------------------------------
2560
2561 Version 60:
2562
2563 * String comparisons are public interfaces
2564 * Fix response message type in async websocket accept
2565 * New server-framework, full featured server example
2566
2567 --------------------------------------------------------------------------------
2568
2569 Version 59:
2570
2571 * Integrated Beast INTERFACE (cmake)
2572 * Fix base64 alphabet
2573 * Remove obsolete doc/README.md
2574
2575 API Changes:
2576
2577 * Change Body::size signature (API Change):
2578
2579 Actions Required:
2580
2581 * For any user-defined models of Body, change the function signature
2582   to accept `value_type const&` and modify the function definition
2583   accordingly.
2584
2585 --------------------------------------------------------------------------------
2586
2587 Version 58:
2588
2589 * Fix unaligned reads in utf8-checker
2590 * Qualify size_t in message template
2591 * Reorganize examples
2592 * Specification for http read
2593 * Avoid `std::string` in websocket
2594 * Fix basic_fields insert ordering
2595 * basic_fields::set optimization
2596 * basic_parser::put doc
2597 * Use static string in basic_fields::reader
2598 * Remove redundant code
2599 * Fix parsing chunk size with leading zeroes
2600 * Better message formal parameter names
2601
2602 API Changes:
2603
2604 * `basic_fields::set` renamed from `basic_fields::replace`
2605
2606 Actions Required:
2607
2608 * Rename calls to `basic_fields::replace` to `basic_fields::set`
2609
2610 --------------------------------------------------------------------------------
2611
2612 Version 57:
2613
2614 * Fix message.hpp javadocs
2615 * Fix warning in basic_parser.cpp
2616 * Integrate docca for documentation and tidy
2617
2618 --------------------------------------------------------------------------------
2619
2620 Version 56:
2621
2622 * Add provisional IANA header field names
2623 * Add string_view_body
2624 * Call on_chunk when the extension is empty
2625 * HTTP/1.1 is the default version
2626 * Try harder to find Boost (cmake)
2627 * Reset error codes
2628 * More basic_parser tests
2629 * Add an INTERFACE cmake target
2630 * Convert buffer in range loops
2631
2632 --------------------------------------------------------------------------------
2633
2634 Version 55:
2635
2636 * Don't allocate memory to handle obs-fold
2637 * Avoid a parser allocation using non-flat buffer
2638 * read_size replaces read_size_helper
2639
2640 --------------------------------------------------------------------------------
2641
2642 Version 54:
2643
2644 * static_buffer coverage
2645 * flat_buffer coverage
2646 * multi_buffer coverage
2647 * consuming_buffers members and coverage
2648 * basic_fields members and coverage
2649 * Add string_param
2650 * Retain ownership when reading using a message
2651 * Fix incorrect use of [[fallthrough]]
2652
2653 API Changes:
2654
2655 * basic_fields refactor
2656
2657 --------------------------------------------------------------------------------
2658
2659 Version 53:
2660
2661 * Fix basic_parser::maybe_flatten
2662 * Fix read_size_helper usage
2663
2664 --------------------------------------------------------------------------------
2665
2666 Version 52:
2667
2668 * flat_buffer is an AllocatorAwareContainer
2669 * Add drain_buffer class
2670
2671 API Changes:
2672
2673 * `auto_fragment` is a member of `stream`
2674 * `binary`, `text` are members of `stream`
2675 * read_buffer_size is a member of `stream`
2676 * read_message_max is a member of `stream`
2677 * `write_buffer_size` is a member of `stream`
2678 * `ping_callback` is a member of stream
2679 * Remove `opcode` from `read`, `async_read`
2680 * `read_frame` returns `bool` fin
2681 * `opcode` is private
2682 * finish(error_code&) is a BodyReader requirement
2683
2684 Actions Required:
2685
2686 * Change call sites which use `auto_fragment` with `set_option`
2687   to call `stream::auto_fragment` instead.
2688
2689 * Change call sites which use message_type with `set_option`
2690   to call `stream::binary` or `stream::text` instead.
2691
2692 * Change call sites which use `read_buffer_size` with `set_option` to
2693   call `stream::read_buffer_size` instead.
2694
2695 * Change call sites which use `read_message_max` with `set_option` to
2696   call `stream::read_message_max` instead.
2697
2698 * Change call sites which use `write_buffer_size` with `set_option` to
2699   call `stream::write_buffer_size` instead.
2700
2701 * Change call sites which use `ping_callback1 with `set_option` to
2702   call `stream::ping_callback` instead.
2703
2704 * Remove the `opcode` reference parameter from calls to synchronous
2705   and asynchronous read functions, replace the logic with calls to
2706   `stream::got_binary` and `stream::got_text` instead.
2707
2708 * Remove the `frame_info` parameter from all read frame call sites
2709
2710 * Check the return value 'fin' for calls to `read_frame`
2711
2712 * Change ReadHandlers passed to `async_read_frame` to have
2713   the signature `void(error_code, bool fin)`, use the `bool`
2714   to indicate if the frame is the last frame.
2715
2716 * Remove all occurrences of the `opcode` enum at call sites
2717
2718 --------------------------------------------------------------------------------
2719
2720 Version 51
2721
2722 * Fix operator<< for header
2723 * Tidy up file_body
2724 * Fix file_body::get() not setting the more flag correctly
2725 * Use BOOST_FALLTHROUGH
2726 * Use BOOST_STRINGIZE
2727 * DynamicBuffer benchmarks
2728 * Add construct, destroy to handler_alloc
2729 * Fix infinite loop in basic_parser
2730
2731 API Changes:
2732
2733 * Tune up static_buffer
2734 * multi_buffer implementation change
2735
2736 Actions Required:
2737
2738 * Call sites passing a number to multi_buffer's constructor
2739   will need to be adjusted, see the corresponding commit message.
2740
2741 --------------------------------------------------------------------------------
2742
2743 Version 50
2744
2745 * parser is constructible from other body types
2746 * Add field enumeration
2747 * Use allocator more in basic_fields
2748 * Fix basic_fields allocator awareness
2749 * Use field in basic_fields and call sites
2750 * Use field in basic_parser
2751 * Tidy up basic_fields, header, and field concepts
2752 * Fields concept work
2753 * Body documentation work
2754 * Add missing handler_alloc nested types
2755 * Fix chunk delimiter parsing
2756 * Fix test::pipe read_size
2757 * Fix chunk header parsing
2758
2759 API Changes:
2760
2761 * Remove header_parser
2762 * Add verb to on_request for parsers
2763 * Refactor prepare
2764 * Protect basic_fields special members
2765 * Remove message connection settings
2766 * Remove message free functions
2767 * Remove obsolete serializer allocator
2768 * http read_some, async_read_some don't return bytes
2769
2770 --------------------------------------------------------------------------------
2771
2772 Version 49
2773
2774 * Use <iosfwd> instead of <ostream>
2775
2776 HTTP:
2777
2778 * Add HEAD request example
2779
2780 API Changes:
2781
2782 * Refactor method and verb
2783 * Canonicalize string_view parameter types
2784 * Tidy up empty_body writer error
2785 * Refactor header status, reason, and target
2786
2787 --------------------------------------------------------------------------------
2788
2789 Version 48
2790
2791 * Make buffer_prefix_view public
2792 * Remove detail::sync_ostream
2793 * Tidy up core type traits
2794
2795 API Changes:
2796
2797 * Tidy up chunk decorator
2798 * Rename to buffer_cat_view
2799 * Consolidate parsers to parser.hpp
2800 * Rename to parser
2801
2802 --------------------------------------------------------------------------------
2803
2804 Version 47
2805
2806 * Disable operator<< for buffer_body
2807 * buffer_size overload for basic_multi_buffer::const_buffers_type
2808 * Fix undefined behavior in pausation
2809 * Fix leak in basic_flat_buffer
2810
2811 API Changes:
2812
2813 * Refactor treatment of request-method
2814 * Refactor treatment of status code and obsolete reason
2815 * Refactor HTTP serialization and parsing
2816
2817 --------------------------------------------------------------------------------
2818
2819 Version 46
2820
2821 * Add test::pipe
2822 * Documentation work
2823
2824 API Changes:
2825
2826 * Remove HTTP header aliases
2827 * Refactor HTTP serialization
2828 * Refactor type traits
2829
2830 --------------------------------------------------------------------------------
2831
2832 Version 45
2833
2834 * Workaround for boost::asio::basic_streambuf type check
2835 * Fix message doc image
2836 * Better test::enable_yield_to
2837 * Fix header::reason
2838 * Documentation work
2839 * buffer_view skips empty buffer sequences
2840 * Disable reverse_iterator buffer_view test
2841
2842 --------------------------------------------------------------------------------
2843
2844 Version 44
2845
2846 * Use BOOST_THROW_EXCEPTION
2847 * Tidy up read_size_helper and dynamic buffers
2848 * Require Boost 1.58.0 or later
2849 * Tidy up and make get_lowest_layer public
2850 * Use BOOST_STATIC_ASSERT
2851 * Fix async return values in docs
2852 * Fix README websocket example
2853 * Add buffers_adapter regression test
2854 * Tidy up is_dynamic_buffer traits test
2855 * Make buffers_adapter meet requirements
2856
2857 --------------------------------------------------------------------------------
2858
2859 Version 43
2860
2861 * Require Boost 1.64.0
2862 * Fix strict aliasing warnings in buffers_view
2863 * Tidy up buffer_prefix overloads and test
2864 * Add write limit to test::string_ostream
2865 * Additional constructors for consuming_buffers
2866
2867 --------------------------------------------------------------------------------
2868
2869 Version 42
2870
2871 * Fix javadoc typo
2872 * Add formal review notes
2873 * Make buffers_view a public interface
2874
2875 --------------------------------------------------------------------------------
2876
2877 Version 41
2878
2879 * Trim Appveyor matrix rows
2880 * Concept revision and documentation
2881 * Remove coveralls integration
2882 * Tidy up formal parameter names
2883
2884 WebSocket
2885
2886 * Tidy up websocket::close_code enum and constructors
2887
2888 API Changes
2889
2890 * Return http::error::end_of_stream on HTTP read eof
2891 * Remove placeholders
2892 * Rename prepare_buffer(s) to buffer_prefix
2893 * Remove handler helpers, tidy up hook invocations
2894
2895 --------------------------------------------------------------------------------
2896
2897 Version 40
2898
2899 * Add to_static_string
2900 * Consolidate get_lowest_layer in type_traits.hpp
2901 * Fix basic_streambuf movable trait
2902 * Tidy up .travis.yml
2903
2904 --------------------------------------------------------------------------------
2905
2906 Version 39
2907
2908 Beast versions are now identified by a single integer which
2909 is incremented on each merge. The macro BEAST_VERSION
2910 identifies the version number, currently at 39. A version
2911 setting commit will always be at the tip of the master
2912 and develop branches.
2913
2914 * Use beast::string_view alias
2915 * Fixed braced-init error with older gcc
2916
2917 HTTP
2918
2919 * Tidy up basic_parser javadocs
2920
2921 WebSocket:
2922
2923 * Add websocket async echo ssl server test:
2924 * Fix eof error on ssl::stream shutdown
2925
2926 API Changes:
2927
2928 * Refactor http::header contents
2929 * New ostream() returns dynamic buffer output stream
2930 * New buffers() replaces to_string()
2931 * Rename to multi_buffer, basic_multi_buffer
2932 * Rename to flat_buffer, basic_flat_buffer
2933 * Rename to static_buffer, static_buffer_n
2934 * Rename to buffered_read_stream
2935 * Harmonize concepts and identifiers with net-ts
2936 * Tidy up HTTP reason_string
2937
2938 --------------------------------------------------------------------------------
2939
2940 1.0.0-b38
2941
2942 * Refactor static_string
2943 * Refactor base64
2944 * Use static_string for WebSocket handshakes
2945 * Simplify get_lowest_layer test
2946 * Add test_allocator to extras/test
2947 * More flat_streambuf tests
2948 * WebSocket doc work
2949 * Prevent basic_fields operator[] assignment
2950
2951 API Changes:
2952
2953 * Refactor WebSocket error codes
2954 * Remove websocket::keep_alive option
2955
2956 --------------------------------------------------------------------------------
2957
2958 1.0.0-b37
2959
2960 * CMake hide command lines in .vcxproj Output windows"
2961 * Rename to detail::is_invocable
2962 * Rename project to http-bench
2963 * Fix flat_streambuf
2964 * Add ub sanitizer blacklist
2965 * Add -funsigned-char to asan build target
2966 * Fix narrowing warning in table constants
2967
2968 WebSocket:
2969
2970 * Add is_upgrade() free function
2971 * Document websocket::stream thread safety
2972 * Rename to websocket::detail::pausation
2973
2974 API Changes:
2975
2976 * Provide websocket::stream accept() overloads
2977 * Refactor websocket decorators
2978 * Move everything in basic_fields.hpp to fields.hpp
2979 * Rename to http::dynamic_body, consolidate header
2980
2981 --------------------------------------------------------------------------------
2982
2983 1.0.0-b36
2984
2985 * Update README.md
2986
2987 --------------------------------------------------------------------------------
2988
2989 1.0.0-b35
2990
2991 * Add Appveyor build scripts and badge
2992 * Tidy up MSVC CMake configuration
2993 * Make close_code a proper enum
2994 * Add flat_streambuf
2995 * Rename to BEAST_DOXYGEN
2996 * Update .gitignore for VS2017
2997 * Fix README.md CMake instructions
2998
2999 API Changes:
3000
3001 * New HTTP interfaces
3002 * Remove http::empty_body
3003
3004 --------------------------------------------------------------------------------
3005
3006 1.0.0-b34
3007
3008 * Fix and tidy up CMake build scripts
3009
3010 --------------------------------------------------------------------------------
3011
3012 1.0.0-b33
3013
3014 * Require Visual Studio 2015 Update 3 or later
3015
3016 HTTP
3017
3018 * Use fwrite return value in file_body
3019
3020 WebSocket
3021
3022 * Set internal state correctly when writing frames
3023 * Add decorator unit test
3024 * Add write_frames unit test
3025
3026 --------------------------------------------------------------------------------
3027
3028 1.0.0-b32
3029
3030 * Add io_service completion invariants test
3031 * Update CMake scripts for finding packages
3032
3033 API Changes:
3034
3035 * Remove http Writer suspend and resume feature
3036
3037 --------------------------------------------------------------------------------
3038
3039 1.0.0-b31
3040
3041 * Tidy up build settings
3042 * Add missing dynabuf_readstream member
3043
3044 WebSocket
3045
3046 * Move the handler, don't copy it
3047
3048 --------------------------------------------------------------------------------
3049
3050 1.0.0-b30
3051
3052 WebSocket
3053
3054 * Fix race in pings during reads
3055 * Fix race in close frames during reads
3056 * Fix race when write suspends
3057 * Allow concurrent websocket async ping and writes
3058
3059 --------------------------------------------------------------------------------
3060
3061 1.0.0-b29
3062
3063 * Fix compilation error in non-template class
3064 * Document type-pun in buffer_cat
3065 * Correctly check ostream modifier (/extras)
3066
3067 HTTP
3068
3069 * Fix Body requirements doc
3070 * Fix illegal HTTP characters accepted as hex zero
3071 * Fix Writer return value documentation
3072
3073 WebSocket
3074
3075 * Fix race in writes during reads
3076 * Fix doc link typo
3077
3078 --------------------------------------------------------------------------------
3079
3080 1.0.0-b28
3081
3082 * Split out and rename test stream classes
3083 * Restyle async result constructions
3084 * Fix HTTP split parse edge case
3085
3086 --------------------------------------------------------------------------------
3087
3088 1.0.0-b27
3089
3090 * Tidy up tests and docs
3091 * Add documentation building instructions
3092
3093 API Changes:
3094
3095 * Invoke callback on pings and pongs
3096 * Move basic_streambuf to streambuf.hpp
3097
3098 --------------------------------------------------------------------------------
3099
3100 1.0.0-b26
3101
3102 * Tidy up warnings and tests
3103
3104 --------------------------------------------------------------------------------
3105
3106 1.0.0-b25
3107
3108 * Fixes for WebSocket echo server
3109 * Fix 32-bit arm7 warnings
3110 * Remove unnecessary include
3111 * WebSocket server examples and test tidying
3112 * Fix deflate setup bug
3113
3114 API Changes:
3115
3116 * Better handler_ptr
3117
3118 --------------------------------------------------------------------------------
3119
3120 1.0.0-b24
3121
3122 * bjam use clang on MACOSX
3123 * Simplify Travis package install specification
3124 * Add optional yield_to arguments
3125 * Make decorator copyable
3126 * Add WebSocket permessage-deflate extension support
3127
3128 --------------------------------------------------------------------------------
3129
3130 1.0.0-b23
3131
3132 * Tune websocket echo server for performance
3133 * Add file and line number to thrown exceptions
3134 * Better logging in async echo server
3135 * Add copy special members
3136 * Fix message constructor and special members
3137 * Travis CI improvements
3138
3139 --------------------------------------------------------------------------------
3140
3141 1.0.0-b22
3142
3143 * Fix broken Intellisense
3144 * Implement the Asio deallocation-before-invocation guarantee
3145 * Add handler helpers
3146 * Avoid copies in handler_alloc
3147 * Update README.md example programs
3148 * Fix websocket stream read documentation
3149 * Disable Boost.Coroutine deprecation warning
3150 * Update documentation examples
3151
3152 --------------------------------------------------------------------------------
3153
3154 1.0.0-b21
3155
3156 * Remove extraneous includes
3157
3158 --------------------------------------------------------------------------------
3159
3160 1.0.0-b20
3161
3162 ZLib
3163
3164 * Add ZLib module
3165
3166 API Changes:
3167
3168 * Rename HTTP identifiers
3169
3170 --------------------------------------------------------------------------------
3171
3172 1.0.0-b19
3173
3174 * Boost library min/max guidance
3175 * Improvements to code coverage
3176 * Use boost::lexical_cast instead of std::to_string
3177 * Fix prepare_buffers value_type
3178 * Fix consuming_buffers value_type
3179 * Better buffer_cat
3180
3181 HTTP
3182
3183 * Make chunk_encode public
3184 * Add write, async_write, operator<< for message_headers
3185 * Add read, async_read for message_headers
3186 * Fix with_body example
3187
3188 WebSocket
3189
3190 * Optimize utf8 validation
3191 * Optimize mask operations
3192
3193 API Changes:
3194
3195 * Refactor message and message_headers declarations
3196 * prepared_buffers is private
3197 * consume_buffers is removed
3198
3199 --------------------------------------------------------------------------------
3200
3201 1.0.0-b18
3202
3203 * Increase optimization settings for MSVC builds
3204
3205 HTTP
3206
3207 * Check invariants in parse_op:
3208 * Clean up message docs
3209
3210 WebSocket
3211
3212 * Write buffer option does not change capacity
3213 * Close connection during async_read on close frame
3214 * Add pong, async pong to stream
3215
3216 Core
3217
3218 * Meet DynamicBuffer requirements for static_streambuf
3219 * Fix write_frame masking and auto-fragment handling
3220
3221 Extras
3222
3223 * unit_test::suite fixes:
3224   - New overload of fail() specifies file and line
3225   - BEAST_EXPECTS only evaluates the reason string on a failure
3226 * Add zlib module
3227
3228 --------------------------------------------------------------------------------
3229
3230 1.0.0-b17
3231
3232 * Change implicit to default value in example
3233 * Tidy up some declarations
3234 * Fix basic_streambuf::capacity
3235 * Add basic_streambuf::alloc_size
3236 * Parser callbacks may not throw
3237 * Fix Reader concept doc typo
3238 * Add is_Reader trait
3239 * Tidy up basic_headers for documentation
3240 * Tidy up documentation
3241 * Add basic_parser_v1::reset
3242 * Fix handling of body_what::pause in basic_parser_v1
3243 * Add headers_parser
3244 * Engaged invokable is destructible
3245 * Improve websocket example in README.md
3246 * Refactor read_size_helper
3247
3248 API Changes:
3249
3250 * Added init() to Reader requirements
3251 * Reader must be nothrow constructible
3252 * Reader is now constructed right before reading the body
3253   - The message passed on construction is filled in
3254 * Rework HTTP concepts:
3255   - Writer uses write instead of operator()
3256   - Refactor traits to use void_t
3257   - Remove is_ReadableBody, is_WritableBody
3258   - Add has_reader, has_writer, is_Reader, is_Writer
3259   - More friendly compile errors on failed concept checks
3260 * basic_parser_v1 requires all callbacks present
3261 * on_headers parser callback now returns void
3262 * on_body_what is a new required parser callback returning body_what
3263
3264 --------------------------------------------------------------------------------
3265
3266 1.0.0-b16
3267
3268 * Make value optional in param-list
3269 * Frame processing routines are member functions
3270 * Fix on_headers called twice from basic_parser_v1
3271 * Constrain parser_v1 constructor
3272 * Improve first line serialization
3273 * Add pause option to on_headers interface
3274 * Refactor base_parser_v1 callback traits:
3275 * Refine Parser concept
3276 * Relax ForwardIterator requirements in FieldSequence
3277 * Fix websocket failure testing
3278 * Refine Writer concept and fix exemplar in documentation
3279
3280 API Changes:
3281
3282 * Rename mask_buffer_size to write_buffer_size
3283 * Make auto_fragment a boolean option
3284
3285 The message class hierarchy is refactored (breaking change):
3286
3287 * One message class now models both HTTP/1 and HTTP/2 messages
3288 * message_v1, request_v1, response_v1 removed
3289 * New classes basic_request and basic_response model
3290   messages without the body.
3291
3292     Error resolution: Callers should use message, request,
3293     and response instead of message_v1, request_v1, and
3294     response_v1 respectively.
3295
3296 --------------------------------------------------------------------------------
3297
3298 1.0.0-b15
3299
3300 * rfc7230 section 3.3.2 compliance
3301 * Add HTTPS example
3302 * Add Secure WebSocket example
3303 * Fix message_v1 constructor
3304 * Tidy up DynamicBuffer requirements
3305 * Tidy up error types and headers
3306 * Fix handling empty HTTP headers in parser_v1
3307
3308 --------------------------------------------------------------------------------
3309
3310 1.0.0-b14
3311
3312 * Add missing rebind to handler_alloc
3313 * Fix error handling in http server examples
3314 * Fix CMake scripts for MinGW
3315 * Use BOOST_ASSERT
3316 * Better WebSocket decorator
3317 * Update and tidy documentation
3318
3319 --------------------------------------------------------------------------------
3320
3321 1.0.0-b13
3322
3323 * dstream improvements
3324 * Remove bin and bin64 directories
3325 * Tidy up .vcxproj file groupings
3326
3327 --------------------------------------------------------------------------------
3328
3329 1.0.0-b12
3330
3331 * Use -p to print suites from unit test main.
3332 * BEAST_EXPECTS to add a reason string to test failures
3333 * Fix unit test runner to output all case names
3334 * Update README for build requirements
3335 * Rename to CHANGELOG.md
3336
3337 --------------------------------------------------------------------------------
3338
3339 1.0.0-b11
3340
3341 * Set URI in generated WebSocket Upgrade requests
3342 * Rename echo server class and file names
3343 * Rename to DynamicBuffer in some code and documentation
3344 * Fix integer warnings in Windows builds
3345 * Add 32 and 64 bit Windows build support
3346 * Update README for build instructions and more
3347 * Add repository and documentation banners
3348
3349 --------------------------------------------------------------------------------
3350
3351 1.0.0-b10
3352
3353 * Fix compilation warnings
3354 * Add websocketpp comparison to HTML documentation
3355
3356 --------------------------------------------------------------------------------
3357
3358 1.0.0-b9
3359
3360 * Fix CMakeLists.txt
3361
3362 --------------------------------------------------------------------------------
3363
3364 1.0.0-b8
3365
3366 * Fix include in example code
3367 * Fix basic_headers rfc2616 Section 4.2 compliance
3368
3369 --------------------------------------------------------------------------------
3370
3371 1.0.0-b7
3372
3373 * Fix prepare by calling init. prepare() can throw depending on the
3374   implementation of Writer. Publicly provided beast::http writers never throw.
3375 * Fixes to example HTTP server
3376 * Fully qualify ambiguous calls to read and parse
3377 * Remove deprecated http::stream wrapper
3378 * Example HTTP server now calculates the MIME-type
3379 * Fixes and documentation for teardown and use with SSL:
3380 * Add example code to rfc7230 javadocs
3381 * Remove extraneous header file <beast/http/status.hpp>
3382 * Add skip_body parser option
3383
3384 --------------------------------------------------------------------------------
3385
3386 1.0.0-b6
3387
3388 * Use SFINAE on return values
3389 * Use beast::error_code instead of nested types
3390 * Tidy up use of GENERATING_DOCS
3391 * Remove obsolete RFC2616 functions
3392 * Add message swap members and free functions
3393 * Add HTTP field value parser containers: ext_list, param_list, token_list
3394 * Fixes for some corner cases in basic_parser_v1
3395 * Configurable limits on headers and body sizes in basic_parser_v1
3396
3397 API Changes:
3398
3399 * ci_equal is moved to beast::http namespace, in rfc7230.hpp
3400
3401 * "DynamicBuffer","dynabuf" renamed from "Streambuf", "streambuf". See:
3402   http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4478.html#requirements.dynamic_buffers
3403
3404 * basic_parser_v1 adheres to rfc7230 as strictly as possible
3405
3406 --------------------------------------------------------------------------------