* Reorder cmake docs a bit
Just wanted to group the more related build options together.
Also removed a pointless reference to the old reasoning for the required
min ver since it's 3.14 now anyways.
* Fix outdated cmake comment
We don't use Git to find the version string anymore.
Just updated to match what it's actually used for now.
* Group options and build-tree vars in Cmake
Doesn't really change anything, I just wanted to clean these up a bit.
* Fix how we set HTTPLIB_IS_USING_XXX vars in Cmake
Prevents us acidentally using libs when the user didn't want them
actually used. This could happen if they set the option to OFF but their
own project itself is using the lib, thus we'd find and use it anyways.
Ref #1602 to see an example of this already happening before.
This is merely apply that kind of fix to all 3 of our deps, instead of
just OpenSSL.
* Minor formatting/comment change to Cmake
Pointless, but these things were bothering me..
For very busy servers, the internal jobs queue where accepted
sockets are enqueued can grow without limit.
This is a problem for two reasons:
- queueing too much work causes the server to respond with huge latency,
resulting in repetead timeouts on the clients; it is definitely
better to reject the connection early, so that the client
receives the backpressure signal as soon as the queue is
becoming too large
- the jobs list can eventually cause an out of memory condition
* Fix: Query parameter including query delimiter ('?') not being parsed properly
* Add details::split function with and without m argument to allow split parameters with/without counter
* Revert changes in SplitTest.ParseQueryString
* Fix readability warnings
Did not fix readbility-qualified-auto, will do a separate pull request
* Revert changes where meaning is lost
* Revert some style changes
The exact circumstances when this false positive is triggered are quite
tricky to reproduce, but it happened reproducibly with g++ 13.1 and 13.2 in
a close-source SW I'm working on. The fix even improves performance by a
very tiny bit: There is no need to copy the std::smatch, having a const
reference is enough.
Just as a side note: -Warray-bounds seems to cause trouble in other
projects, too, so e.g. the Linux kernel has disabled since June 2022.