diff options
author | Max Kellermann <max@duempel.org> | 2009-02-27 19:20:11 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-02-27 19:20:11 +0100 |
commit | eae0287466020b5b5aee137fb4599136420f89a2 (patch) | |
tree | 23c1e1202a94e130f4c3ec006d1a4894939d6b92 /src/song_print.c | |
parent | 9dd00dfab7a7991c53d2f1dcff4cc2828abf7854 (diff) | |
download | mpd-eae0287466020b5b5aee137fb4599136420f89a2.tar.gz mpd-eae0287466020b5b5aee137fb4599136420f89a2.tar.xz mpd-eae0287466020b5b5aee137fb4599136420f89a2.zip |
song_print: hide HTTP password in playlist
Added the uri_remove_auth() library function which strips username
and password from a HTTP URI, and use it in song_print_url(). This
allows you to add HTTP URIs to the playlist including secret username
and password, without disclosing it to all MPD clients.
Diffstat (limited to 'src/song_print.c')
-rw-r--r-- | src/song_print.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/song_print.c b/src/song_print.c index 60e16f941..1b62f324e 100644 --- a/src/song_print.c +++ b/src/song_print.c @@ -22,6 +22,7 @@ #include "directory.h" #include "tag_print.h" #include "client.h" +#include "uri.h" void song_print_url(struct client *client, struct song *song) @@ -30,7 +31,16 @@ song_print_url(struct client *client, struct song *song) client_printf(client, "%s%s/%s\n", SONG_FILE, directory_get_path(song->parent), song->url); } else { - client_printf(client, "%s%s\n", SONG_FILE, song->url); + char *allocated; + const char *uri; + + uri = allocated = uri_remove_auth(song->url); + if (uri == NULL) + uri = song->url; + + client_printf(client, "%s%s\n", SONG_FILE, uri); + + g_free(allocated); } } |