aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/command.c b/src/command.c
index 5e29cfa27..1d0f14dab 100644
--- a/src/command.c
+++ b/src/command.c
@@ -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);