libhttpserver icon indicating copy to clipboard operation
libhttpserver copied to clipboard

[BUG] deferred_response never sends content string passed to constructor

Open jcphill opened this issue 2 years ago • 0 comments
trafficstars

Prerequisites

  • [X] Put an X between the brackets on this line if you have checked that your issue isn't already filed: https://github.com/search?l=&q=repo%3Aetr%2Flibhttpserver&type=Issues

Description

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.

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-empty content argument such as https://github.com/etr/libhttpserver/blob/d249ba682441dbb979146482aff01a7073ed165a/test/integ/deferred.cpp#L103

Expected behavior: Content argument is transmitted.

Actual behavior: Content argument is ignored.

Reproduces how often: 100%

Versions

  • OS version 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
  • libhttpserver verion 0.18.2 compiled
  • libmicrohttpd version 0.9.71 compiled

Additional Information

jcphill avatar Aug 17 '23 20:08 jcphill