Max Kellermann
124e75c286
thread/Thread, fs: add missing WIN32 includes
2022-11-28 21:56:11 +01:00
Max Kellermann
25da798e7a
system/Clock: compile only on Windows
2022-11-28 21:16:49 +01:00
Max Kellermann
88d5347d94
Log, client/Response, io/BufferedOutputStream: remove unnecessary libfmt include
2022-11-28 20:44:48 +01:00
Max Kellermann
7f3868727b
Log, client/Response, io/BufferedOutputStream: drop support for libfmt < 7
...
Remove some compatibility code.
2022-11-28 20:17:16 +01:00
Max Kellermann
b09a776a26
.travis.yml: remove obsolete file
...
We've migrated to GitHub actions in commit
c13911b171
a year ago
2022-11-28 20:17:16 +01:00
Max Kellermann
3103e8d719
fs/StandardDirectory: update #ifdef for GetEnvPath()
...
Fixes regression from a38eabc8bc
2022-11-28 20:17:16 +01:00
Max Kellermann
cfbd751742
fs/StandardDirectory: pass Path to IsValidDir()
2022-11-28 18:48:10 +01:00
Max Kellermann
a38eabc8bc
fs/StandardDirectory: move code to GetExistingEnvDirectory()
2022-11-28 18:43:45 +01:00
Max Kellermann
9669ea6a12
fs/StandardDirectory: add `noexcept`
2022-11-28 18:27:06 +01:00
Max Kellermann
863a28daa3
fs/StandardDirectory: eliminate global variable "home_prefix"
2022-11-28 18:27:06 +01:00
Max Kellermann
ea5bcfed8b
fs/StandardDirectory: pass std::string_view to ParseConfigLine()
2022-11-28 17:11:17 +01:00
Max Kellermann
f6f3c4c25b
fs/StandardDirectory: pass const string to ParseConfigLine()
2022-11-28 17:07:29 +01:00
Max Kellermann
8fe29f5728
release v0.23.11
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmOE2gINHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEiugD/9OKEBR9tfrJvtVGuO2INtaMeAzlZ9swFYCkphF
i2R7H9/9E0AvtgyFi/6EDNgFCBbnUzSIGbtdc78EwHE6GxeK/Q9G1fo9AC+6I8Ww
2ScEV9NKIMGTbsRvoomKnGZWpvNTpadPlLa02bckXpKK3wQUPhLb8RAH3newZ0RC
OXs+mzSRReRKpjUBxZsI+6f+aajM6/PoiOmBbrNbYbsSlkpKtLeW8ptkQxPME12B
QD9e7yf9ZndYfoHJdmmPxfvIGIEDATCs8MzY8tFUYkhdbEk0C0aRZQTODQS3DATp
0wrmlJzmceiN2nhKjthg1bvC+jobPywIuDZdrEuyFumN/EZxldKAUCezduV+Dohm
UPkQp5yiSTZRZVYQMEOSW6cMndC7URFrtn643+jV7SGkTmmV6nVOyg4e9GR1BakT
rY0nZGr7dwEInODkA5lXMhph3u8aZa2Mfo5B8m2aloGVHYOX1t3bH07ym5oJiviq
eiQx/bMpaS6ECCSnmHPGDl0NHHWDiPGv96EyPO2N9oeWiNuZz/Fla0N99Mi/JbVI
EpSHF89F+bfiw5qIeet93ZrXjwQjMuC6zofZ1jbVFek2eKszCZSNdx233VLz170G
edyN5Vxy3r24YBy/nrZVXPRxsj65KOxF1TZ9SzHKmfnuU45a+JZjZuWz5yedPn2/
3fy7oA==
=eLEd
-----END PGP SIGNATURE-----
Merge tag 'v0.23.11'
release v0.23.11
2022-11-28 17:00:38 +01:00
Max Kellermann
9866adff95
release v0.23.11
2022-11-28 16:55:46 +01:00
Max Kellermann
a8b0c55818
input/curl: make proxy verify setting optional
...
These settings do not work if CURL was compiled with
CURL_DISABLE_PROXY, and cause error "An unknown option was passed in
to libcurl".
Fixes regression by commit 7ab0dfc8ce
2022-11-28 16:14:01 +01:00
Max Kellermann
cac88e8be5
python/build/libs.py: re-enable verbose error strings
...
This compile-time option is not about debug logging, but about
curl_easy_strerror().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1670
2022-11-28 16:12:17 +01:00
Max Kellermann
e9f6a3482c
db/Configured: add default "cache_directory" setting
2022-11-28 14:24:52 +01:00
Max Kellermann
5d2e80f188
db/Configured: use GetAppCacheDir() instead of GetUserCacheDir()
2022-11-28 14:20:15 +01:00
Max Kellermann
cfd4d5b13e
StateFileConfig: use GetAppCacheDir() instead of GetUserCacheDir()
2022-11-28 14:20:14 +01:00
Max Kellermann
06514aec63
fs/StandardDirectory: add GetAppCacheDir()
2022-11-28 14:19:30 +01:00
Max Kellermann
4ded1ae67b
fs/FileSystem: add CreateDirectoryNoThrow()
2022-11-28 14:19:08 +01:00
Max Kellermann
1da974e3fa
fs/StandardDirectory: use PACKAGE_NAME from version.h
2022-11-28 14:05:34 +01:00
Max Kellermann
94f06f0946
fs/StandardDirectory: use mode=0777 in mkdir() call
...
Of course, mode=0700 is more secure, but allowing other users access
to new directories is a choice the user should make via umask(). If
the user-chosen umask allows everybody access, MPD should probably
respect that.
2022-11-28 14:04:47 +01:00
Max Kellermann
d9eec8a455
fs/StandardDirectory: do not use $RUNTIME_DIRECTORY on Android
...
This is systemd specific, and Android doesn't have systemd.
2022-11-28 10:44:50 +01:00
Max Kellermann
eaecbcafb2
PlaylistFile: disallow backslash in playlist names on Windows
...
The function spl_valid_name() should verify playlist names and prevent
path traversal, but it failed to do so on Windows, because it forgot
to check for backslashes.
This buggy piece of code was already present when stored playlists
were initially implemented in 2006 by commit 08003904d7
, and
even during the many rounds of code refactoring, nobody ever bothered
to verify it. D'oh!
(Thanks, Paul Arzelier)
2022-11-28 09:53:49 +01:00
Max Kellermann
73b5d0a9b9
system/Error: truncate the snprintf() return value
...
snprintf() does not return the (truncated) length actually written,
but the length that would be needed if the buffer were large enough.
This API usage mistake in FormatLastError() can lead to overflow of
the stack buffer, crashing the process (Windows only).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1676
2022-11-28 09:42:37 +01:00
Michael Herstine
1adc2c0c51
playlist_load_into_queue: log on failure to load song.
...
Log at level error when failing to load a song. Limit the number
of log messages produced to avoid flooding the log file when attempting
to load a large, broken playlist.
Closes #1546
2022-11-26 08:28:10 -08:00
Max Kellermann
a3b32819b1
event/Loop: split InjectBreak() from Break()
2022-11-22 22:30:12 +01:00
Max Kellermann
a57cf443ed
event/Loop: set "again" in AddDefer() only if HAVE_THREADED_EVENT_LOOP
...
Only AddDefer()/AddIdle() calls from within DeferEvents are relevant.
2022-11-22 21:40:52 +01:00
Max Kellermann
d0d095cbcd
util/IntrusiveHashSet: rename "slot" to "bucket"
2022-11-22 21:40:52 +01:00
Max Kellermann
3239fce5c1
util/IntrusiveHashSet: add remove_and_dispose_if()
2022-11-22 21:40:11 +01:00
Max Kellermann
200b770104
util/IntrusiveHashSet: add for_each()
2022-11-22 21:40:04 +01:00
Max Kellermann
3aa959eda7
util/IntrusiveHashSet: add erase_and_dispose()
2022-11-22 21:39:40 +01:00
Max Kellermann
72c047f4f0
util/IntrusiveHashSet: add hash_function(), key_eq()
2022-11-21 09:10:44 +01:00
Max Kellermann
c71958af4b
input/async: pass std::span to AppendToBuffer()
2022-11-17 06:15:58 +01:00
Max Kellermann
ce13d82657
input/async: use std::byte instead of uint8_t
2022-11-17 06:15:19 +01:00
Max Kellermann
73dc8ff6bd
lib/nfs/FileReader: pass std::span to OnNfsFileRead()
2022-11-17 06:15:16 +01:00
Max Kellermann
3278ad2ed8
storage/State: remove obsolete Boost compiler warning workaround
2022-11-17 05:32:29 +01:00
Max Kellermann
2e453ef58a
storage/State: use std::hash() instead of boost::crc
...
Also eliminate the useless std::set.
2022-11-17 05:28:53 +01:00
Max Kellermann
a5d04be21f
storage/State: add `noexcept`
2022-11-17 05:19:11 +01:00
Max Kellermann
9467df526c
song/StringFilter: add enum Position
...
Replaces two conflicting bools.
2022-11-15 21:55:55 +01:00
Max Kellermann
9ca75589c0
song/StringFilter: simplify GetOperator()
2022-11-15 21:55:55 +01:00
Max Kellermann
c158abe87c
lib/icu/Compare: use StringIsEqualIgnoreCase()
2022-11-15 21:13:01 +01:00
Max Kellermann
53530bd1d5
lib/icu/Canonicalize: convert all punctuation to ASCII
...
To make tag matching easier.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1669
2022-11-15 21:04:16 +01:00
Max Kellermann
d7f545721b
lib/icu/Canonicalize: use unorm2_normalize() instead of u_strFoldCase()
...
unorm2_normalize() can case-fold as well, plus it applies Unicode
normalization which MPD should do for proper string comparisons.
2022-11-15 20:53:29 +01:00
Max Kellermann
8b72cb64b2
lib/icu/CaseFold: rename to IcuCanonicalize() and add flag parameter
...
Prepare for adding more transformations.
2022-11-15 20:53:04 +01:00
Max Kellermann
852df2239e
lib/icu/Transliterator: pass std::basic_string_view<UChar> to constructor
2022-11-15 20:53:03 +01:00
Max Kellermann
5a1fbe60af
test/TestStringFilter: new unit test
2022-11-15 20:52:53 +01:00
Max Kellermann
88e33b7b32
test/TestTagSongFilter: initialize ICU
2022-11-15 20:51:59 +01:00
Max Kellermann
264b3f8543
lib/icu/Collate: clear the global variable in IcuCollateFinish()
...
To allow repeated init/finish cycles.
2022-11-15 20:48:50 +01:00