aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-10-22 19:18:39 +0200
committerMax Kellermann <max@duempel.org>2008-10-22 19:18:39 +0200
commit7aca4cd194b8ec2546e598800b153a5009b1792d (patch)
tree2ca63c289bc733f2b37aceba7e56188a7a3fad07
parent9c983c442c03a71bbf80ccbf1dad84894403a983 (diff)
downloadmpd-7aca4cd194b8ec2546e598800b153a5009b1792d.tar.gz
mpd-7aca4cd194b8ec2546e598800b153a5009b1792d.tar.xz
mpd-7aca4cd194b8ec2546e598800b153a5009b1792d.zip
stored_playlist: send timestamps
Send last modification timestamps to the client. This allows the client to see when another client modifies a stored playlist.
-rw-r--r--doc/COMMANDS6
-rw-r--r--src/command.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/doc/COMMANDS b/doc/COMMANDS
index 66b014a03..35373a4d5 100644
--- a/doc/COMMANDS
+++ b/doc/COMMANDS
@@ -191,6 +191,12 @@ repeat <int state>
listplaylists
prints a list of the playlist directory
+ After each playlist name, the server sends its last
+ modification time as attribute "Last-Modified" in ISO 8601
+ format. To avoid problems due to clock differences between
+ clients and the server, clients should not compare this value
+ with their local clock.
+
rm <string name>
removes the playlist <name>.m3u from the playlist directory
diff --git a/src/command.c b/src/command.c
index db793350d..4ded86089 100644
--- a/src/command.c
+++ b/src/command.c
@@ -208,8 +208,16 @@ print_spl_list(struct client *client, GPtrArray *list)
for (unsigned i = 0; i < list->len; ++i) {
struct stored_playlist_info *playlist =
g_ptr_array_index(list, i);
+ time_t t;
+ struct tm tm;
+ char timestamp[32];
client_printf(client, "playlist: %s\n", playlist->name);
+
+ t = playlist->mtime;
+ strftime(timestamp, sizeof(timestamp), "%FT%TZ",
+ gmtime_r(&t, &tm));
+ client_printf(client, "Last-Modified: %s\n", timestamp);
}
}