aboutsummaryrefslogtreecommitdiffstats
path: root/src/storage (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-21config/Option: convert to strictly-typed enumMax Kellermann1-3/+3
2015-01-01Copyright year 2015Max Kellermann18-18/+18
2014-12-26db/simple: fix implicit nullptr/bool conversionMax Kellermann1-1/+1
Return false on error, not nullptr.
2014-12-15storage/nfs: clear last_error in SetState()Max Kellermann1-0/+1
Fixes bogus assertion failure.
2014-11-28Compiler.h: add macro CLANG_OR_GCC_VERSION()Max Kellermann1-1/+1
2014-10-09storage/nfs: use the libnfs async APIMax Kellermann1-49/+228
Share the NFS connection with the NFS input plugin.
2014-10-09StoragePlugin: pass EventLoop to constructorMax Kellermann7-11/+18
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-05lib/nfs/Base: kludge to reduce number of NFS mountsMax Kellermann1-0/+3
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-02storage: remove redundant "virtual" keywordsMax Kellermann5-38/+34
"override" implies "virtual".
2014-10-01storage/Interface: include cleanupMax Kellermann3-2/+6
2014-10-01storage/nfs: make a few attributes "const"Max Kellermann1-3/+3
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-03-01storage/Configured: fix fallback music directoryMax Kellermann1-4/+1
This was accidently disabled when storage plugins were introduced.
2014-02-27CompositeStorage: add method GetMount()Max Kellermann2-0/+24
2014-02-19DatabasePlugin: add FLAG_REQUIRE_STORAGEMax Kellermann2-0/+14
Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in the DatabasePlugin.
2014-02-12CompositeStorage: fix tree walk in Directory::Unmount()Max Kellermann1-1/+4
2014-02-12StorageCommands: add command "listmounts"Max Kellermann1-0/+32
2014-02-09CompositeStorage: new Storage implementationMax Kellermann2-0/+467
This is the backend for the upcoming "mount" command.
2014-02-09Main: move code to storage/Configured.cxxMax Kellermann2-0/+114
2014-02-08storage/nfs: new storage pluginMax Kellermann3-0/+271
2014-02-07storage: add struct StoragePlugin and a plugin registryMax Kellermann7-6/+167
2014-02-07storage/local: remove utf8 path from constructorMax Kellermann2-6/+9
Build the UTF-8 version of the path automatically in the constructor.
2014-02-07StoragePlugin: add method MapToRelativeUTF8()Max Kellermann3-0/+24
Replaces map_to_relative_path() from Mapper.cxx.
2014-02-07storage/local: hide the class declarationsMax Kellermann2-47/+61
Hide inside CreateLocalStorage().
2014-02-06*/smbclient: protect all libsmbclient calls with a mutexMax Kellermann1-1/+15
libsmbclient is not thread-safe nor reentrant. We must protect all function calls with a global mutex, unfortunately.
2014-02-06storage/smbclient: Storage implementation using libsmbclientMax Kellermann2-0/+211
2014-02-05storage/local: OpenDirectory() returns StorageDirectoryReader*Max Kellermann2-3/+3
2014-02-05storage/Interface: explicitly delete copy constructorsMax Kellermann2-2/+4
2014-02-05storage/local: move to src/storage/plugins/Max Kellermann2-2/+2
2014-02-05storage: add abstract interfaceMax Kellermann4-38/+123
Prepare for the plugin interface.
2014-02-05LocalStorage: new API abstracting filesystem walkMax Kellermann3-0/+305
Prepare to make this a new plugin API, for example to use a SMB share for the music_directory.