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