mirror of
https://github.com/owntone/owntone-server.git
synced 2024-12-27 23:55:57 -05:00
[mpd] add special handling to command "lsinfo" if the root directory was
passed as argument. Clients like ympd and ncmpcpp are relying on this (deprecated) behavior
This commit is contained in:
parent
b9b3671d58
commit
ceca9135c5
18
src/mpd.c
18
src/mpd.c
@ -2568,8 +2568,20 @@ mpd_command_lsinfo(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
|
||||
struct filelist_info *fi;
|
||||
struct media_file_info *mfi;
|
||||
char modified[32];
|
||||
int print_playlists;
|
||||
int ret;
|
||||
|
||||
print_playlists = 0;
|
||||
if (argc > 1 && strncmp(argv[1], "/", 1) == 0 && strlen(argv[1]) == 1)
|
||||
{
|
||||
/*
|
||||
* Special handling necessary if the root directory '/' is given.
|
||||
* In this case additional to the directory contents the stored playlists will be returned.
|
||||
* This behavior is deprecated in the mpd protocol but clients like ncmpccp or ympd uses it.
|
||||
*/
|
||||
print_playlists = 1;
|
||||
}
|
||||
|
||||
if (argc < 2 || strlen(argv[1]) == 0
|
||||
|| (strncmp(argv[1], "/", 1) == 0 && strlen(argv[1]) == 1))
|
||||
{
|
||||
@ -2653,6 +2665,12 @@ mpd_command_lsinfo(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
|
||||
if (fi)
|
||||
free_fi(fi, 0);
|
||||
|
||||
if (print_playlists)
|
||||
{
|
||||
// If the root directory was passed as argument add the stored playlists to the response
|
||||
return mpd_command_listplaylists(evbuf, argc, argv, errmsg);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user