The deferred_response constructor includes a const std::string& content = "" parameter that is documented as:
Besides the callback, optionally, you can provide a content parameter that sets the initial message sent immediately to the client.
The content parameter is passed to the base class string_response constructor where it is assigned to the content member but never actually consumed because string_response::get_raw_response() is never called.
Prerequisites
Description
The
deferred_response
constructor includes aconst std::string& content = ""
parameter that is documented as:The
content
parameter is passed to the base classstring_response
constructor where it is assigned to thecontent
member but never actually consumed becausestring_response::get_raw_response()
is never called.This behavior might appear to have been removed by https://github.com/etr/libhttpserver/commit/ed0841d177d88dada6e21e4dd5c36f8b670c1ee0 in #145, but it likely didn't work even in https://github.com/etr/libhttpserver/commit/eea93bdf45c42ffbb487f06385ab6a7647bc0a5f because
get_raw_response()
is a virtual function.The tests don't expect the content parameter to be sent either: https://github.com/etr/libhttpserver/blob/d249ba682441dbb979146482aff01a7073ed165a/test/integ/deferred.cpp#L164
At this point in the interest of bug compatibility maybe just change the parameter name from "content" to "unused" and fix the docs.
Steps to Reproduce
Send a
deferred_response
with a non-emptycontent
argument such as https://github.com/etr/libhttpserver/blob/d249ba682441dbb979146482aff01a7073ed165a/test/integ/deferred.cpp#L103Expected behavior: Content argument is transmitted.
Actual behavior: Content argument is ignored.
Reproduces how often: 100%
Versions
Linux hydrol2 4.18.0-477.15.1.el8_8.x86_64 #1 SMP Fri Jun 2 08:27:19 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
Additional Information