aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* TagString: return WritableBuffer<char>Max Kellermann2014-10-103-24/+26
|
* TagString: use strndup() for unterminated stringMax Kellermann2014-10-101-1/+1
| | | | Fixes buffer overflow bug.
* TagString: remove ISO-Latin-1 fallbackMax Kellermann2014-10-102-14/+2
| | | | | | | | 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.
* fs/Traits: use value_typeMax Kellermann2014-10-101-4/+4
|
* Main: run the OS X native event loopnanotech2014-10-105-0/+52
|
* storage/nfs: use the libnfs async APIMax Kellermann2014-10-094-49/+398
| | | | Share the NFS connection with the NFS input plugin.
* lib/nfs/Connection: reduce Error instance allocationsMax Kellermann2014-10-091-3/+2
|
* lib/nfs/Glue: add assertionMax Kellermann2014-10-091-0/+1
|
* StoragePlugin: pass EventLoop to constructorMax Kellermann2014-10-0911-15/+31
|
* test/run_input, ...: add struct ScopeIOThreadMax Kellermann2014-10-079-32/+57
| | | | Auto-stop the IO thread in all error handlers.
* storage/nfs: move code to class MemoryStorageDirectoryReaderMax Kellermann2014-10-074-73/+151
| | | | | | Read all directory entries into memory and close the struct nfsdir before returning the StorageDirectoryReader instance. This is what libnfs does, anyway.
* storage/nfs: move code to Copy()Max Kellermann2014-10-071-18/+30
|
* lib/nfs/Connection: add methods {Open,Read,Close}Directory()Max Kellermann2014-10-072-0/+53
|
* lib/nfs/Connection: add method Stat(path)Max Kellermann2014-10-072-0/+33
|
* test/run_storage: new debug programMax Kellermann2014-10-072-2/+143
|
* Makefile.am: add libnfs and libsmbclient to STORAGE_LIBSMax Kellermann2014-10-071-1/+4
|
* lib/nfs/Connection: make GetEventLoop() publicMax Kellermann2014-10-061-4/+4
|
* lib/nfs/Base: kludge to reduce number of NFS mountsMax Kellermann2014-10-055-7/+128
| | | | | | | 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.
* Makefile.am: compile libffmpeg.a with FFMPEG_CFLAGSMax Kellermann2014-10-041-0/+2
|
* PlaylistStream: use OpenLocalInputStream()Max Kellermann2014-10-021-5/+3
|
* PlaylistStream: pass Path instance to playlist_open_path()Max Kellermann2014-10-023-11/+19
| | | | | Convert filesystem charset to UTF-8 for playlist_list_open_uri(). This fixes one of many remaining charset bugs.
* archive/bzip2: use OpenLocalInputStream()Max Kellermann2014-10-021-2/+2
|
* input/Open: use OpenLocalInputStream()Max Kellermann2014-10-025-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.
* DecoderThread: use OpenLocalInputStream() for local filesMax Kellermann2014-10-021-1/+20
|
* TagFile: use OpenLocalInputStream()Max Kellermann2014-10-021-3/+4
|
* input/LocalOpen: new library for opening local filesMax Kellermann2014-10-023-0/+87
| | | | Combines the "file" and the "archive" input plugins.
* input/archive: export function OpenArchiveInputStream()Max Kellermann2014-10-022-16/+33
|
* input/file: export function OpenFileInputStream()Max Kellermann2014-10-022-13/+37
|
* input/file: generate Error when errno==ENOENTMax Kellermann2014-10-021-1/+1
| | | | | This special case was useless. Fixes the dreaded "Unrecognized URI" error message when a file does not exist.
* input/file: make the "fd" attribute "const"Max Kellermann2014-10-021-1/+1
|
* input/file: make variables more localMax Kellermann2014-10-021-6/+3
|
* storage: remove redundant "virtual" keywordsMax Kellermann2014-10-025-38/+34
| | | | "override" implies "virtual".
* input/file: convert to classMax Kellermann2014-10-021-1/+2
|
* storage/Interface: include cleanupMax Kellermann2014-10-017-2/+11
|
* Makefile.am: fix header file namesMax Kellermann2014-10-011-4/+7
| | | | Found by "make distcheck".
* lib/nfs/FileReader: postpone the nfs_close_async() callMax Kellermann2014-10-014-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().
* lib/nfs/Connection: fix memory leak when cancelling Open()Max Kellermann2014-10-012-5/+23
| | | | Close the newly allocated file handle passed to the callback.
* lib/nfs/Connection: remove MutexMax Kellermann2014-10-012-18/+12
| | | | | All locks are currenly held from only a single thread (the IOThread) and thus we don't need the Mutex.
* lib/nfs/Connection: add method GetEventLoop()Max Kellermann2014-10-012-1/+5
|
* lib/nfs/Connection: remove obsolete flag postponed_destroyMax Kellermann2014-10-012-18/+2
|
* lib/nfs/Connection: remove deprecated move constructor workaroundMax Kellermann2014-10-011-16/+0
| | | | | Not used anymore because NfsManager now uses boost::intrusive::set instead of std::map.
* storage/nfs: make a few attributes "const"Max Kellermann2014-10-011-3/+3
|
* lib/nfs/Manager: use boost::intrusive::mapMax Kellermann2014-10-012-37/+78
| | | | | Reduce overhead for storing the key twice, and more overhead while looking up the connection to remove it after a failure.
* lib/nfs/Glue: add assertionMax Kellermann2014-10-011-0/+4
|
* lib/nfs/Glue: destruct the NfsManager in the I/O threadMax Kellermann2014-10-013-5/+8
| | | | | This allows eliminating the indirection code from the NfsConnection destructor.
* lib/nfs/Glue: eliminate class NfsGlueMax Kellermann2014-10-011-17/+1
| | | | It's just a useless wrapper for class NfsManager.
* lib/nfs/Cancellable: use boost::intrusive::listMax Kellermann2014-10-013-40/+18
| | | | | Reduce Remove() overhead because we don't have to walk the list to find an iterator by reference.
* Tag: support "AlbumSort"Max Kellermann2014-09-294-1/+6
| | | | | The new tag is supported by all decoders that use the tag name table, and the ID3v2 tag "TSOA" maps to it.
* storage/nfs: convert file name to UTF-8Max Kellermann2014-09-281-8/+30
| | | | | Assume the configured filesystem character set is also used by the NFS server.
* storage/nfs: use string::append() instead of string::insert()Max Kellermann2014-09-281-3/+2
| | | | | Swap the order of adding the URI and the slash, because appending is cheaper than inserting.