aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-10-10util/UTF8: add SequenceLengthUTF8()Max Kellermann2-0/+96
2014-10-10util/UTF8: new libraryMax Kellermann2-0/+339
2014-10-10TagString: return WritableBuffer<char>Max Kellermann3-24/+26
2014-10-10TagString: use strndup() for unterminated stringMax Kellermann1-1/+1
Fixes buffer overflow bug.
2014-10-10TagString: remove ISO-Latin-1 fallbackMax Kellermann1-14/+1
MPD handles all strings in UTF-8 internally. Those decoders which read Latin-1 tags are supposed to implement the conversion, instead of passing Latin-1 to TagBuilder::AddItem(). FixTagString() is simply the wrong place to do that, and hard-coding Latin-1 is kind of arbitrary.
2014-10-10fs/Traits: use value_typeMax Kellermann1-4/+4
2014-10-10Main: run the OS X native event loopnanotech3-0/+50
2014-10-09storage/nfs: use the libnfs async APIMax Kellermann3-49/+397
Share the NFS connection with the NFS input plugin.
2014-10-09lib/nfs/Connection: reduce Error instance allocationsMax Kellermann1-3/+2
2014-10-09lib/nfs/Glue: add assertionMax Kellermann1-0/+1
2014-10-09StoragePlugin: pass EventLoop to constructorMax Kellermann9-14/+23
2014-10-07storage/nfs: move code to class MemoryStorageDirectoryReaderMax Kellermann3-73/+150
Read all directory entries into memory and close the struct nfsdir before returning the StorageDirectoryReader instance. This is what libnfs does, anyway.
2014-10-07storage/nfs: move code to Copy()Max Kellermann1-18/+30
2014-10-07lib/nfs/Connection: add methods {Open,Read,Close}Directory()Max Kellermann2-0/+53
2014-10-07lib/nfs/Connection: add method Stat(path)Max Kellermann2-0/+33
2014-10-06lib/nfs/Connection: make GetEventLoop() publicMax Kellermann1-4/+4
2014-10-05lib/nfs/Base: kludge to reduce number of NFS mountsMax Kellermann4-7/+127
Creating a NfsStorage sets its own export_name as the "base". Now NfsFileReader can use this information to derive the export_name to be mounted, instead of guessing. This solves the "too many connection" problem on the NFS server while updating the database.
2014-10-02PlaylistStream: use OpenLocalInputStream()Max Kellermann1-5/+3
2014-10-02PlaylistStream: pass Path instance to playlist_open_path()Max Kellermann3-11/+19
Convert filesystem charset to UTF-8 for playlist_list_open_uri(). This fixes one of many remaining charset bugs.
2014-10-02archive/bzip2: use OpenLocalInputStream()Max Kellermann1-2/+2
2014-10-02input/Open: use OpenLocalInputStream()Max Kellermann5-33/+34
Make the "open" method of plugins "file" and "archive" dummy methods that always fail. Instead, let InputStream::Open() hard-code access to these two plugins by using OpenLocalInputStream(). This allows simplifyin the algorithm for falling back to probing archive plugins.
2014-10-02DecoderThread: use OpenLocalInputStream() for local filesMax Kellermann1-1/+20
2014-10-02TagFile: use OpenLocalInputStream()Max Kellermann1-3/+4
2014-10-02input/LocalOpen: new library for opening local filesMax Kellermann2-0/+86
Combines the "file" and the "archive" input plugins.
2014-10-02input/archive: export function OpenArchiveInputStream()Max Kellermann2-16/+33
2014-10-02input/file: export function OpenFileInputStream()Max Kellermann2-13/+37
2014-10-02input/file: generate Error when errno==ENOENTMax Kellermann1-1/+1
This special case was useless. Fixes the dreaded "Unrecognized URI" error message when a file does not exist.
2014-10-02input/file: make the "fd" attribute "const"Max Kellermann1-1/+1
2014-10-02input/file: make variables more localMax Kellermann1-6/+3
2014-10-02storage: remove redundant "virtual" keywordsMax Kellermann5-38/+34
"override" implies "virtual".
2014-10-02input/file: convert to classMax Kellermann1-1/+2
2014-10-01storage/Interface: include cleanupMax Kellermann7-2/+11
2014-10-01lib/nfs/FileReader: postpone the nfs_close_async() callMax Kellermann4-6/+92
If an async opertion is in progress, nfs_close_async() will make libnfs crash because the RPC callback will dereference an object that was freed by nfs_close_async().
2014-10-01lib/nfs/Connection: fix memory leak when cancelling Open()Max Kellermann2-5/+23
Close the newly allocated file handle passed to the callback.
2014-10-01lib/nfs/Connection: remove MutexMax Kellermann2-18/+12
All locks are currenly held from only a single thread (the IOThread) and thus we don't need the Mutex.
2014-10-01lib/nfs/Connection: add method GetEventLoop()Max Kellermann2-1/+5
2014-10-01lib/nfs/Connection: remove obsolete flag postponed_destroyMax Kellermann2-18/+2
2014-10-01lib/nfs/Connection: remove deprecated move constructor workaroundMax Kellermann1-16/+0
Not used anymore because NfsManager now uses boost::intrusive::set instead of std::map.
2014-10-01storage/nfs: make a few attributes "const"Max Kellermann1-3/+3
2014-10-01lib/nfs/Manager: use boost::intrusive::mapMax Kellermann2-37/+78
Reduce overhead for storing the key twice, and more overhead while looking up the connection to remove it after a failure.
2014-10-01lib/nfs/Glue: add assertionMax Kellermann1-0/+4
2014-10-01lib/nfs/Glue: destruct the NfsManager in the I/O threadMax Kellermann3-5/+8
This allows eliminating the indirection code from the NfsConnection destructor.
2014-10-01lib/nfs/Glue: eliminate class NfsGlueMax Kellermann1-17/+1
It's just a useless wrapper for class NfsManager.
2014-10-01lib/nfs/Cancellable: use boost::intrusive::listMax Kellermann3-40/+18
Reduce Remove() overhead because we don't have to walk the list to find an iterator by reference.
2014-09-29Tag: support "AlbumSort"Max Kellermann3-0/+5
The new tag is supported by all decoders that use the tag name table, and the ID3v2 tag "TSOA" maps to it.
2014-09-28storage/nfs: convert file name to UTF-8Max Kellermann1-8/+30
Assume the configured filesystem character set is also used by the NFS server.
2014-09-28storage/nfs: use string::append() instead of string::insert()Max Kellermann1-3/+2
Swap the order of adding the URI and the slash, because appending is cheaper than inserting.
2014-09-28storage/nfs: move code to UriToNfsPath()Max Kellermann1-6/+13
2014-09-28fs/AllocatedPath: add method Steal()Max Kellermann1-0/+8
2014-09-28fs/AllocatedPath: API documentation grammar fixesMax Kellermann1-5/+5