Commit 7d87f71d authored by Max Kellermann's avatar Max Kellermann

command: check URI scheme in "addid"

Check if the URI scheme is supported by MPD, and print an error message if not. Optimize the checks in "add" and "playlistadd".
parent ef0b328a
......@@ -461,13 +461,14 @@ handle_add(struct client *client, G_GNUC_UNUSED int argc, char *argv[])
return print_playlist_result(client, result);
}
if (isRemoteUrl(uri))
return addToPlaylist(uri, NULL);
if (uri_has_scheme(uri)) {
command_error(client, ACK_ERROR_NO_EXIST,
"unsupported URI scheme");
return COMMAND_RETURN_ERROR;
if (!isRemoteUrl(uri)) {
command_error(client, ACK_ERROR_NO_EXIST,
"unsupported URI scheme");
return COMMAND_RETURN_ERROR;
}
return addToPlaylist(uri, NULL);
}
result = addAllIn(uri);
......@@ -495,8 +496,15 @@ handle_addid(struct client *client, int argc, char *argv[])
client_get_uid(client),
&added_id);
#endif
} else
} else {
if (uri_has_scheme(uri) && !isRemoteUrl(uri)) {
command_error(client, ACK_ERROR_NO_EXIST,
"unsupported URI scheme");
return COMMAND_RETURN_ERROR;
}
result = addToPlaylist(uri, &added_id);
}
if (result != PLAYLIST_RESULT_SUCCESS)
return print_playlist_result(client, result);
......@@ -1249,12 +1257,14 @@ handle_playlistadd(struct client *client, G_GNUC_UNUSED int argc, char *argv[])
char *uri = argv[2];
enum playlist_result result;
if (isRemoteUrl(uri))
if (uri_has_scheme(uri)) {
if (!isRemoteUrl(uri)) {
command_error(client, ACK_ERROR_NO_EXIST,
"unsupported URI scheme");
return COMMAND_RETURN_ERROR;
}
result = spl_append_uri(uri, playlist);
else if (uri_has_scheme(uri)) {
command_error(client, ACK_ERROR_NO_EXIST,
"unsupported URI scheme");
return COMMAND_RETURN_ERROR;
} else
result = addAllInToStoredPlaylist(uri, playlist);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment