Commit Graph

256 Commits

Author SHA1 Message Date
Max Kellermann e939d667d9 protocol/Ack: add exception class wrapping enum ack 2015-12-18 09:53:02 +01:00
Max Kellermann 8bb5a565cd PlaylistError: add exception class wrapping enum PlaylistResult 2015-12-18 09:21:11 +01:00
Max Kellermann 51168169e7 util/Tokenizer: use std::runtime_error on syntax error 2015-12-16 11:34:26 +01:00
Max Kellermann 8f93c36466 command/AllCommands: catch and report std::exception 2015-12-16 00:07:51 +01:00
Max Kellermann 28f9a0a900 command/other: re-allow "lsinfo /"
This compatibility hack was accidently broken by commit f072cbbb
2015-11-13 21:04:02 +01:00
Max Kellermann a6bb3cf60a command/queue: use StringIsEqual() instead of memcmp()
memcmp() can overflow the buffer.
2015-11-13 21:02:33 +01:00
Max Kellermann 5e93c05095 queue/Playlist: seek methods return bool/Error instead of PlaylistResult 2015-11-11 19:56:01 +01:00
Max Kellermann 0f4f04eaa4 command/CommandError: send verbose error message to client 2015-11-11 19:51:09 +01:00
Max Kellermann 2e55d561d3 PlaylistError: remove unused code "ERRNO" 2015-11-11 19:50:57 +01:00
Max Kellermann 36239895bd player/Control: add Lock prefix to locking method names 2015-11-11 16:50:57 +01:00
Max Kellermann 8acf996d90 command/queue: add range parameter to plchanges and plchangesposid 2015-10-27 20:35:40 +01:00
Max Kellermann f072cbbba7 LocateUri: new library to classify URIs in a standard way 2015-10-22 09:39:28 +02:00
Max Kellermann 0366dcf604 PlaylistPrint: fix -Wunused #ifndef ENABLE_DATABASE 2015-10-20 13:50:00 +02:00
Max Kellermann fc2154ee92 DetachedSong: move code from Update() to LoadFile()
Avoid duplicate AllocatedPath::FromUTF8() invocations in two callers.
2015-10-20 12:10:42 +02:00
Max Kellermann 76f85e6f7b command/DatabaseCommands: pass URI to handle_lsinfo2() 2015-10-20 12:07:18 +02:00
Max Kellermann 81ce684b35 command/FileCommands: fix access to absolute paths in "readcomments" 2015-10-20 11:25:46 +02:00
Max Kellermann f0b58c6f24 db/UniqueTags, tag/Set, ...: use typedef tag_mask_t 2015-08-24 11:53:30 +02:00
Max Kellermann 36cd73df51 client, command: use StringIsEqual() 2015-08-14 19:48:30 +02:00
Max Kellermann 6f20889f00 command/CommandListBuilder: postpone "size" initialization 2015-08-14 19:42:11 +02:00
Max Kellermann 8e408725e9 protocol/Result: move current_command to class Response 2015-08-14 19:04:00 +02:00
Max Kellermann d053797340 protocol/Result: move command_list_num to class Response 2015-08-14 19:00:02 +02:00
Max Kellermann 86e036c393 command: pass Response object to command callbacks 2015-08-13 12:48:31 +02:00
Max Kellermann 7652a2986b client/Response: new Client wrapper class for writing responses 2015-08-12 08:41:05 +02:00
Max Kellermann b1480167be command/Request: add parser methods
Wrapper for protocol/ArgParser.cxx.
2015-08-11 23:02:34 +02:00
Max Kellermann e118e958f7 protocol/ArgParser: add overload with max_value parameter 2015-08-11 22:58:04 +02:00
Max Kellermann 9231f420c1 protocol/ArgParser: overload as ParseCommandArg(), pass references 2015-08-11 22:43:10 +02:00
Max Kellermann 0f92d021a1 command/Request: new struct wrapping ConstBuffer<const char *> 2015-08-11 22:43:10 +02:00
Max Kellermann cbdc3194cc protocol/ArgParser: add struct RangeArg 2015-08-11 22:43:10 +02:00
Max Kellermann 993df0fd28 command/{Queue,Other}: eliminate local "bool" variable 2015-08-11 21:54:29 +02:00
Max Kellermann f9e0f0d257 PlaylistSave: return bool/Error instead of PlaylistResult 2015-03-24 22:03:17 +01:00
Max Kellermann 1c90b0c19d *: change C-style prototypes, drop "(void)" 2015-03-03 20:05:08 +01:00
Max Kellermann 0febb218ed FileCommands: use Path::HasNewline() 2015-03-03 12:42:27 +01:00
Max Kellermann 6ff394bcc9 StorageCommands: use PathTraitsUTF8 for protocol argument 2015-03-02 21:25:55 +01:00
Max Kellermann 7a8f96b1dd FileCommands: use PathTraitsFS typedefs 2015-02-28 23:00:26 +01:00
Max Kellermann 90a61b6bab fs/FileInfo: new library providing GetFileInfo()
Replaces StatFile(), with a portable data object.
2015-02-28 23:00:26 +01:00
Max Kellermann 00583bc4a8 FileCommands: skip special files completely
Previously, MPD printed the time stamp without printing the file
name.  That made no sense.
2015-02-28 23:00:26 +01:00
Max Kellermann 2d06a8e880 storage/FileInfo: rename to StorageFileInfo 2015-02-28 23:00:26 +01:00
Max Kellermann 676dfabc91 command/{Queue,File}Commands: drop "file:///" prefix for absolute paths
Requiring this prefix makes the client's intention very clear, but it
was too hard to understand why this prefix was needed.  Initially, my
intention was to differentiate from broken clients which prefix relate
URIs with a slash; once MPD allowed that.  In the past few years
however, MPD has disallowed that, and there was no significant
breakage (except for the "add /" special case which some clients
apparently still do).  So I figure it's about time to define that an
URI that begins with a slash points to an arbitrary file on the file
system.
2015-02-09 07:55:06 +01:00
Max Kellermann 593bb5a8a7 StickerDatabase: convert the struct name to upper case 2015-01-28 19:33:56 +01:00
Max Kellermann 712ed555e6 Copyright year 2015 2015-01-01 19:48:13 +01:00
Max Kellermann 49968541fd sticker/Match: add inequality operators 2014-12-12 22:26:04 +01:00
Max Kellermann cc143105b8 sticker/Match: add operator "EQUALS"
Mapped to "=" in the MPD protocol.  This is the first operator,
initially supporting value matches in the MPD protocol.
2014-12-12 22:16:00 +01:00
Max Kellermann fed44e95b3 sticker/Song: add enum StickerOperator to sticker_song_find() 2014-12-12 22:10:24 +01:00
Max Kellermann 204a1de3fd sticker/Database: use the Error library 2014-12-12 21:43:54 +01:00
Max Kellermann 900c4977cc AllCommands: use ARRAY_SIZE() 2014-12-09 21:58:01 +01:00
Max Kellermann 6edfc56c9d command: use ConstBuffer<const char *> for argument list 2014-12-08 13:30:35 +01:00
Max Kellermann 5837a63942 AllCommands: simplify the tokenizer loop 2014-12-08 13:25:41 +01:00
Max Kellermann 3a28f456b1 AllCommands: assign current_command early 2014-12-08 13:25:00 +01:00
Max Kellermann 4f6fc2675c AllCommands: remove redundant initializer 2014-12-08 13:09:12 +01:00
Max Kellermann 1a8c3271da AllCommands: make variables more local 2014-12-06 00:10:34 +01:00