Documentation improvements (issues #334, #324, #343)#358
Merged
Conversation
- Remove obsolete INSTALL file (issue #334): The generic autoconf INSTALL file incorrectly mentioned `make -f Makefile.cvs` instead of `./bootstrap`. README.md already contains accurate build instructions. - Add args_processing.cpp example (issue #324): Demonstrates how to use get_args() and get_args_flat() methods to iterate over all request arguments, including handling parameters with multiple values. - Add bind_address(string) overload (issue #343): Allows binding to a specific IP address using a string (e.g., "127.0.0.1") instead of requiring manual sockaddr construction. Supports both IPv4 and IPv6. IPv6 mode is automatically enabled when an IPv6 address is provided. - Document bind_address() methods in README.md (issue #343): Added documentation for both the sockaddr* and string overloads.
Remove explicit #define HTTPSERVER_COMPILATION as it is already defined by the build system via command line flags.
The webserver was only copying the raw bind_address pointer but not the shared_ptr that owns the storage. This caused the memory to be freed when the temporary create_webserver was destroyed, leaving webserver with a dangling pointer and causing valgrind to report a leak.
Move the memcheck log printing to a separate step that runs with always() condition, so the log is printed regardless of whether the valgrind check passes or fails. This helps debug valgrind failures in CI.
This was referenced Jan 30, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses three documentation-related issues:
Issue INSTALL is obsolete #334: Remove obsolete INSTALL file that incorrectly mentioned
make -f Makefile.cvsinstead of./bootstrap. README.md already contains accurate build instructions.Issue Please Provide an example for get_args() and get_args_flat() method #324: Add
args_processing.cppexample demonstrating how to useget_args()andget_args_flat()methods to iterate over all request arguments, including handling parameters with multiple values (e.g.,?id=1&id=2&id=3).Issue bind_address() is not documented #343: Add
bind_address(const std::string& ip)overload that allows binding to a specific IP address using a string (e.g.,"127.0.0.1") instead of requiring manualsockaddrconstruction. Also documented bothbind_address()overloads in README.md.Changes
INSTALLexamples/args_processing.cppexamples/Makefile.amsrc/create_webserver.cppsrc/Makefile.amsrc/httpserver/create_webserver.hpptest/integ/ws_start_stop.cppREADME.mdTest plan
make)make check- 12/12 pass)