Max Kellermann
29143dec87
util/SortList: kludge for Android NDK compatibility
2022-11-11 19:17:13 +01:00
Max Kellermann
0fd4c14043
db/simple/Directory: re-add Song.hxx to fix clang build failure
2022-11-11 19:13:01 +01:00
Max Kellermann
81e1f87e8c
db/simple/{Directory,Song}: use IntrusiveList instead of boost::intrusive::list
2022-11-11 19:08:22 +01:00
Max Kellermann
a448d04d46
util/SortList: library which sorts linked lists
2022-11-11 19:03:39 +01:00
Max Kellermann
60e640af5a
util/IntrusiveList: add single-item splice() overload
2022-11-11 18:29:50 +01:00
Max Kellermann
df15c418c7
util/IntrusiveList: fix swap() implementation if second list is empty
2022-11-11 18:29:50 +01:00
Max Kellermann
04ab8ae27b
util/IntrusiveList: add type aliases value_type, pointer, reference
2022-11-11 17:15:20 +01:00
Max Kellermann
b4a64af15e
util/IntrusiveList: constant_time_size is a template argument, not a variable
2022-11-11 17:15:16 +01:00
Max Kellermann
838c057231
util/IntrusiveList: use auto
...
Fixes typos in the const_iterator return types, and fixes returning
references to stack values.
2022-11-11 16:33:49 +01:00
Max Kellermann
af544bb16f
util/IntrusiveList: fix typos
2022-11-11 10:11:42 +01:00
Max Kellermann
84fd401d21
util/IntrusiveList: add method splice()
2022-11-11 10:05:20 +01:00
Max Kellermann
b5d224496f
util/IntrusiveList: iterators are bidirectional
2022-11-11 09:20:09 +01:00
Max Kellermann
78d8b5f73c
util/OptionalCounter: add operator+= and operator-=
2022-11-10 16:55:04 +01:00
Max Kellermann
5670d98c54
util/IntrusiveList: move code to IntrusiveListNode::Connect()
2022-11-10 16:52:34 +01:00
gd
440c676be2
EventLoop: added assert(IsInside()) in Insert(CoarseTimerEvent &) and AddIdle(DeferEvent &)
...
Like AddDefer(DeferEvent &), Insert(FineTimerEvent &), these methods don't lock to update EventLoop::again
2022-11-10 15:35:14 +01:00
Max Kellermann
e820222c5b
lib/nfs/Manager: use IntrusiveForwardList instead of boost::intrusive::slist
2022-11-10 12:08:23 +01:00
Max Kellermann
1786eef8e6
util/IntrusiveForwardList: new class
2022-11-10 12:07:59 +01:00
Max Kellermann
5f2fa1dbe3
RemoteTagCache: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:06:00 +01:00
Max Kellermann
77d257de27
input/cache: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:05:09 +01:00
Max Kellermann
89d950e9a7
output/httpd: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:02:54 +01:00
Max Kellermann
4041d87c34
lib/nfs/Cancellable: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:01:11 +01:00
Max Kellermann
b3c5e6a3cc
event/Loop: use IntrusiveList instead of boost::intrusive::list
2022-11-10 11:57:57 +01:00
Max Kellermann
1da8faa285
client/List: use IntrusiveList instead of boost::intrusive::list
2022-11-10 11:08:11 +01:00
Max Kellermann
988f5d1b5d
util/StringSplit: add SplitWhile()
2022-11-09 19:23:19 +01:00
Max Kellermann
3ab3d5555e
util/StringSplit: reimplement without std::distance()
...
Avoid including <iterator>.
2022-11-09 19:23:10 +01:00
Max Kellermann
2e5d46c399
util/StringSplit: add constexpr
2022-11-09 19:23:05 +01:00
Max Kellermann
7600ad7cac
util/StringSplit: add Partition()
2022-11-09 19:22:54 +01:00
Max Kellermann
485ad583a0
util/CharUtil: add IsLowerAlphaNumericASCII()
2022-11-09 19:21:43 +01:00
Max Kellermann
bbc82a9892
io/FileDescriptor, net/SocketDescriptor: make lots of methods "const"
...
Only the file descriptor value itself is const, but the file itself
may be readable/writable.
2022-11-09 19:19:20 +01:00
Max Kellermann
69596106d3
io/FileDescriptor: add pread() wrapper
2022-11-09 19:18:41 +01:00
Max Kellermann
a0a11be79b
Merge branch 'v0.23.x'
2022-11-08 14:36:09 +01:00
Max Kellermann
32bddfabea
archive/plugins/meson.build: do not generate empty library
...
If no archive library was found, return from the "plugins" directory
without creating "libarchive_plugins.a". Empty static libraries are
unsupported on some operating systems such as macOS.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1650
2022-11-03 20:36:00 +01:00
gd
a1359f2388
TagBuilder: skip unnecessary preperation if there are no items to add
2022-11-01 17:55:42 +02:00
gd
ab687481cc
Tag: skip tag pool lock if there are no items
2022-11-01 15:37:54 +02:00
Max Kellermann
0efbd4df8b
lib/gcrypt: use std::size_t
2022-10-29 07:31:25 +02:00
gd
caaa050e60
curl input plugin - added config options: verbose, low_speed_limit, low_speed_time, tcp_keepalive, tcp_keepidle, tcp_keepintvl
2022-10-22 13:49:58 +03:00
gd
160f793e2a
Added connect_timeout configuration to curl input plugin
2022-10-16 12:13:51 +03:00
Max Kellermann
1429d6bfb9
playlist/cue/Parser: use Split()
2022-10-15 08:33:51 +02:00
Max Kellermann
ced6a5ae07
playlist/cue/Parser: remove always-failing assert()
...
Not the assert() here fails, but the illegal src[-1] call. Yet
another regression from commit 21e4c25e61
2022-10-15 08:32:37 +02:00
Max Kellermann
d6d0f78e93
release v0.23.10
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmNJ2e0NHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEjBYEACk4QtVnD52sGtz0CwThFYzekvkZHOBcP2fYOH7
rVcQaNmV7Fpnv+iz+k7zrqhs/A8FgQq6KUNpUn3gzxae4KsA7i1yEpopIqfzRh71
eVrjTGijMirddehsxKbkjZ1TZy5S+SkZ+Bu965qzXUZuIrErKm4m5xqkIxXBHMEc
twK9BSCqlTT2vpND5cmX90T/NBDgZd3uQxQP2ohWjVXvg9ou2gtns18ZdYUVRTym
rLqRLfx1rG1lS8hzKqUqt9YxbWSD606T4giC2vYg2+2OFA9VFh3TNCSaFgWEJMZe
ou6iaX+aSoCP+H6nktxfYravwdmHvBseRtrOouxPd8Br2k1eSQGXEVlZVTKrpBME
OZnncEGqN27GggYH1RyVZ6showJ7G05HOhGFDDs8ABR0EbAbNkGvhrjl8cGXONYH
ScTBbvqkTrhRMOOSmiAp7X1eLJ4QICAfhCV85YzSV93u69egO1MQLYzVYUurOOyt
TuT+XbUD+Irk3DrHvhxs/IE+ciIvilFsvCmeNjCAyH4ZPvvHt/AIskQNyF3Jj720
XKjtq6rMF9bizut/kboPgsVQoFbnj7ncCaIZ90h27obeqqiXajTx7ixJldvwDbrp
yKQY6xDdm7DZChqYF0KKWWzLt2BoAzqVPW3zgRfJRqb9HtQ+ZVJuljvV8bBVFKN1
zIA4Nw==
=GQl1
-----END PGP SIGNATURE-----
Merge tag 'v0.23.10'
release v0.23.10
2022-10-14 23:56:33 +02:00
Max Kellermann
76b25a1377
output/alsa: add nullptr check for snd_pcm_name() return value
...
It is not explicitly documented whether snd_pcm_name() is allowed to
return NULL:
https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#ga5031edc0422df8db1f70af056a12dd77
But apparently this is legal:
0222f45d11/src/pcm/pcm.c (L2761-L2762)
That's ... surprising!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1645
2022-10-14 23:14:30 +02:00
Max Kellermann
ccc3ee663b
java/File: remove assertions to work around -Wtautological-pointer-compare
2022-10-14 23:00:35 +02:00
Max Kellermann
0626661764
android/Context: fix typo in assert() variable name
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1644
2022-10-14 22:59:39 +02:00
jcorporation
2937a55582
add precondition for mount/unmount in commands response
2022-10-07 13:59:54 +02:00
gd
cd093a6014
Added new optional argument MODE to command 'save' to be able to append or replace an existing playlist
2022-10-02 11:19:36 +03:00
Max Kellermann
3e25916b37
time/Parser: remove unused library
2022-09-30 18:17:03 +02:00
Max Kellermann
5f9438dae6
storage/curl: include cleanup
2022-09-30 18:16:46 +02:00
BurroCargado
99e65c58ce
storage/curl: make timestamp parsing more robust
...
According to the latest WebDAV specification (RFC4918),
timestamp string in the getlastmodified property is formatted
as rfc1123-date, such as "Sun, 06 Nov 1994 08:49:37 GMT".
However, to process responses from servers in the older style
format specified in RFC2518, timestamps in the HTTP-date format
had better be accepted.
As described in the libcurl api documentation, curl_getdate() can handle
timestamp strings in HTTP-date formats, including rfc1123-date.
https://www.rfc-editor.org/rfc/rfc4918#section-15.7
https://www.rfc-editor.org/rfc/rfc2518.html#section-13.7
https://curl.se/libcurl/c/curl_getdate.html
2022-09-29 18:19:30 +02:00
BurroCargado
df71b07e9d
storage/curl: fix can't get timestamp of remote file
2022-09-29 18:19:03 +02:00
Max Kellermann
2694195215
storage/curl: add noexcept
and [[gnu::pure]]
2022-09-29 18:18:18 +02:00