X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/2e9ba080dd30434f3e8f88e63029280889586a32..ff56519f303d58db08eadf5e36356afcc27234fc:/lib/trackdb-playlists.c diff --git a/lib/trackdb-playlists.c b/lib/trackdb-playlists.c index fd33393..27d3319 100644 --- a/lib/trackdb-playlists.c +++ b/lib/trackdb-playlists.c @@ -33,6 +33,7 @@ #include "configuration.h" #include "vector.h" #include "eventlog.h" +#include "validity.h" static int trackdb_playlist_get_tid(const char *name, const char *who, @@ -54,43 +55,6 @@ static int trackdb_playlist_delete_tid(const char *name, const char *who, DB_TXN *tid); -/** @brief Parse a playlist name - * @param name Playlist name - * @param ownerp Where to put owner, or NULL - * @param sharep Where to put default sharing, or NULL - * @return 0 on success, -1 on error - * - * Playlists take the form USER.PLAYLIST or just PLAYLIST. The PLAYLIST part - * is alphanumeric and nonempty. USER is a username (see valid_username()). - */ -int playlist_parse_name(const char *name, - char **ownerp, - char **sharep) { - const char *dot = strchr(name, '.'), *share; - char *owner; - - if(dot) { - /* Owned playlist */ - owner = xstrndup(name, dot - name); - if(!valid_username(owner)) - return -1; - if(!valid_username(dot + 1)) - return -1; - share = "private"; - } else { - /* Shared playlist */ - if(!valid_username(name)) - return -1; - owner = 0; - share = "shared"; - } - if(ownerp) - *ownerp = owner; - if(sharep) - *sharep = xstrdup(share); - return 0; -} - /** @brief Check read access rights * @param name Playlist name * @param who Who wants to read