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