aboutsummaryrefslogtreecommitdiffstats
path: root/src/OtherCommands.cxx
diff options
context:
space:
mode:
authorDenis Krjuchkov <denis@crazydev.net>2013-05-05 15:42:29 +0600
committerDenis Krjuchkov <denis@crazydev.net>2013-05-06 23:36:36 +0600
commita688745bdc6db32e2cb7765c5d113958dcd49411 (patch)
tree4e0ba55771d6552ae02ff29af9c57a6a265bffcf /src/OtherCommands.cxx
parent459d824c50b3ef444f0b94cc60bcbec83addf801 (diff)
downloadmpd-a688745bdc6db32e2cb7765c5d113958dcd49411.tar.gz
mpd-a688745bdc6db32e2cb7765c5d113958dcd49411.tar.xz
mpd-a688745bdc6db32e2cb7765c5d113958dcd49411.zip
ClientFile: use Path and file system API, update usages accordingly
This commit also fixes incorrect passing of UTF-8 strings to client_allow_file
Diffstat (limited to 'src/OtherCommands.cxx')
-rw-r--r--src/OtherCommands.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/OtherCommands.cxx b/src/OtherCommands.cxx
index 07fbc8442..7f592ee9f 100644
--- a/src/OtherCommands.cxx
+++ b/src/OtherCommands.cxx
@@ -34,6 +34,7 @@
#include "ls.hxx"
#include "Volume.hxx"
#include "util/UriUtil.hxx"
+#include "fs/Path.hxx"
extern "C" {
#include "stats.h"
@@ -117,9 +118,16 @@ handle_lsinfo(Client *client, int argc, char *argv[])
if (strncmp(uri, "file:///", 8) == 0) {
/* print information about an arbitrary local file */
const char *path_utf8 = uri + 7;
+ const Path path_fs = Path::FromUTF8(path_utf8);
+
+ if (path_fs.IsNull()) {
+ command_error(client, ACK_ERROR_NO_EXIST,
+ "unsupported file name");
+ return COMMAND_RETURN_ERROR;
+ }
GError *error = NULL;
- if (!client_allow_file(client, path_utf8, &error))
+ if (!client_allow_file(client, path_fs, &error))
return print_error(client, error);
struct song *song = song_file_load(path_utf8, NULL);