Commit Graph

162 Commits

Author SHA1 Message Date
Max Kellermann
af951dc08a Merge branch 'v0.23.x' 2022-07-01 12:45:07 +02:00
Max Kellermann
5a5655b790 lib/curl/Adapter: catch and postpone exceptions in WriteFunction()
This fixes a std::terminate() crash in the CURL storage plugin when
PropfindOperation::OnHeaders() throws an exception after receiving a
non-207 status.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1559
2022-07-01 12:43:42 +02:00
Max Kellermann
b88d1e6820 lib/curl/Headers: make the comparison type "transparent" 2022-07-01 12:17:41 +02:00
Max Kellermann
19d2864c34 lib/curl/Headers: central type definition for the header map 2022-07-01 12:17:36 +02:00
Max Kellermann
29e3a17f26 lib/curl/Request: move code from SetupEasy() to Setup.cxx 2022-07-01 12:17:26 +02:00
Max Kellermann
252e9f736f lib/curl/Request: move code to class CurlResponseHandlerAdapter 2022-07-01 12:17:20 +02:00
Max Kellermann
5d08988dda lib/curl/Handler: fix typo 2022-07-01 12:17:17 +02:00
Max Kellermann
47ca4246aa lib/curl/Request: add constructor with CurlEasy parameter 2022-07-01 12:17:13 +02:00
Max Kellermann
f8338d4f00 lib/curl/Request: use std::size_t 2022-07-01 12:16:59 +02:00
Max Kellermann
5cf6032c90 lib/curl/Request: move code to SetupEasy() 2022-07-01 12:16:55 +02:00
Max Kellermann
8d8b77412d lib/curl/Request: add API docs 2022-07-01 12:16:50 +02:00
Max Kellermann
02fe857755 util/IterableSplitString: return std::string_view 2022-07-01 11:29:11 +02:00
Max Kellermann
bc3415ce8b Copyright year 2022 2022-06-30 09:41:53 +02:00
Max Kellermann
8783ed1981 lib/curl/Adapter: use std::string_view 2022-06-29 17:38:58 +02:00
Max Kellermann
1da09f5b1b lib/curl: use std::span 2022-06-29 17:37:12 +02:00
Max Kellermann
759da033fc lib/curl/Escape: use std::string_view instead of StringView 2022-05-31 13:22:56 +02:00
Max Kellermann
8e99448819 lib/curl/Headers: make the comparison type "transparent" 2022-02-14 18:19:28 +01:00
Max Kellermann
1e548fb6e3 lib/curl/Headers: central type definition for the header map 2022-02-14 18:19:05 +01:00
Max Kellermann
dda0dfc140 lib/curl/Request: move code from SetupEasy() to Setup.cxx 2021-12-08 20:03:30 +01:00
Max Kellermann
e0f56b9e2d lib/curl/Request: move code to class CurlResponseHandlerAdapter 2021-12-08 19:51:54 +01:00
Max Kellermann
50a617764a lib/curl/Handler: fix typo 2021-12-08 19:41:39 +01:00
Max Kellermann
cdcef49eef lib/curl/Request: add constructor with CurlEasy parameter 2021-12-07 12:01:09 +01:00
Max Kellermann
9e18aafccc lib/curl/Request: use std::size_t 2021-12-07 12:00:12 +01:00
Max Kellermann
f7346c1d78 lib/curl/Request: move code to SetupEasy() 2021-12-07 11:57:42 +01:00
Max Kellermann
b709401814 lib/curl/Request: add API docs 2021-12-07 11:56:45 +01:00
Rosen Penev
4e276256c0 more braced init list conversion
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-12-06 09:16:04 +01:00
Max Kellermann
f74996c02f Merge remote-tracking branches 'neheb/1', 'neheb/2', 'neheb/3', 'neheb/4' and 'neheb/5' 2021-11-20 07:55:24 +01:00
Max Kellermann
eea2d35d3a util/AllocatedString, ...: add missing include for std::exchange()
Fixes building with GCC 12.
2021-11-19 16:06:20 +01:00
Rosen Penev
5deca66fdc add various nodiscard
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-11 17:17:26 -08:00
Rosen Penev
4e0e4c00bf treewide: replace lock_guard with scoped_lock
SonarLint reports the latter to be better:

std::scoped_lock basically provides the same feature as std::lock_guard,
but is more generic: It can lock several mutexes at the same time, with a
deadlock prevention mechanism (see {rule:cpp:S5524}). The equivalent code
to perform simultaneous locking with std::lock_guard is significantly more
complex. Therefore, it is simpler to use std::scoped_lock all the time,
even when locking only one mutex (there will be no performance impact).

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-11 17:13:03 -08:00
Max Kellermann
f510564d9d more [[gnu::...]] attributes 2021-10-13 12:07:05 +02:00
Max Kellermann
410b8711f2 lib/curl/meson.build: add -DCURL_STATICLIB on Windows
Necessary since commit 6acf81d5ae
2021-09-21 13:24:35 +02:00
Max Kellermann
6acf81d5ae python/build/libs.py: build CURL with cmake 2021-09-21 12:30:39 +02:00
Rosen Penev
220d2bf026 clang-tidy: add explicit deleted constructors
Found with cppcoreguidelines-special-member-functions

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-30 22:47:20 -07:00
Max Kellermann
a2bdac571a Merge branch 'v0.22.x' 2021-05-17 19:33:15 +02:00
Max Kellermann
6f51d910ee python/build/libs.py: update CURL to 7.76.1 2021-05-17 18:42:05 +02:00
Max Kellermann
6e58fd1583 lib/curl/Multi: reword API documentation 2021-03-29 20:19:21 +02:00
Max Kellermann
c5fec4ac2a lib/curl/Multi: move operator bool() down 2021-03-29 20:19:21 +02:00
Max Kellermann
fe2ca1ddef lib/curl/Multi: rename parameters 2021-03-29 20:19:19 +02:00
Rosen Penev
44378b7dbe use structured binding declarations
Shorter.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-04 20:28:02 +01:00
Max Kellermann
d4bbb8c851 Merge branch 'struc' of git://github.com/neheb/MPD 2021-03-04 17:50:53 +01:00
Max Kellermann
def962b6cb event/{Coarse,Fine,Far}TimerEvent: aliases for TimerEvent
Preparing for a variant of TimerEvent with coarse 1-second
granularity, but cheaper (with a timer wheel).
2021-02-05 18:16:05 +01:00
Max Kellermann
33ac3eb551 lib/curl/Easy: add methods SetVerify{Host,Peer}() 2021-01-22 12:34:04 +01:00
Max Kellermann
abbd980671 Merge branch 'v0.22.x' 2021-01-01 19:59:15 +01:00
Max Kellermann
5348f8c9c8 copyright year 2021 2021-01-01 19:54:28 +01:00
Max Kellermann
1f312b2e42 curl/Handler: disallow OnData() to throw
This eliminates some complexity from class CurlRequest.
2020-12-15 17:03:24 +01:00
Max Kellermann
1e3089ffb7 curl/Request: move struct Pause to class CurlResponseHandler 2020-12-15 17:01:18 +01:00
Max Kellermann
5d7ff150dd curl/Request: add more wrapper methods 2020-12-15 16:56:20 +01:00
Rosen Penev
0fd2c74a66
use structured binding declarations
Shorter.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-28 15:41:31 -07:00
Max Kellermann
4e47653cf6 lib/curl/Global: ignore curl_multi_socket_action() errors
Keep the logging library out of this low-level libcurl wrapper.
2020-10-15 16:31:31 +02:00