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