Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge branch 'v0.19.x' | Max Kellermann | 2014-12-15 | 1 | -0/+1 |
|\ | |||||
| * | storage/nfs: clear last_error in SetState() | Max Kellermann | 2014-12-15 | 1 | -0/+1 |
| | | | | | | | | Fixes bogus assertion failure. | ||||
* | | Compiler.h: add macro CLANG_OR_GCC_VERSION() | Max Kellermann | 2014-11-28 | 1 | -1/+1 |
|/ | |||||
* | storage/nfs: use the libnfs async API | Max Kellermann | 2014-10-09 | 1 | -49/+228 |
| | | | | Share the NFS connection with the NFS input plugin. | ||||
* | StoragePlugin: pass EventLoop to constructor | Max Kellermann | 2014-10-09 | 7 | -11/+18 |
| | |||||
* | storage/nfs: move code to class MemoryStorageDirectoryReader | Max Kellermann | 2014-10-07 | 3 | -73/+150 |
| | | | | | | 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 Kellermann | 2014-10-07 | 1 | -18/+30 |
| | |||||
* | lib/nfs/Base: kludge to reduce number of NFS mounts | Max Kellermann | 2014-10-05 | 1 | -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. | ||||
* | storage: remove redundant "virtual" keywords | Max Kellermann | 2014-10-02 | 5 | -38/+34 |
| | | | | "override" implies "virtual". | ||||
* | storage/Interface: include cleanup | Max Kellermann | 2014-10-01 | 3 | -2/+6 |
| | |||||
* | storage/nfs: make a few attributes "const" | Max Kellermann | 2014-10-01 | 1 | -3/+3 |
| | |||||
* | storage/nfs: convert file name to UTF-8 | Max Kellermann | 2014-09-28 | 1 | -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 Kellermann | 2014-09-28 | 1 | -3/+2 |
| | | | | | Swap the order of adding the URI and the slash, because appending is cheaper than inserting. | ||||
* | storage/nfs: move code to UriToNfsPath() | Max Kellermann | 2014-09-28 | 1 | -6/+13 |
| | |||||
* | storage/Configured: fix fallback music directory | Max Kellermann | 2014-03-01 | 1 | -4/+1 |
| | | | | This was accidently disabled when storage plugins were introduced. | ||||
* | CompositeStorage: add method GetMount() | Max Kellermann | 2014-02-27 | 2 | -0/+24 |
| | |||||
* | DatabasePlugin: add FLAG_REQUIRE_STORAGE | Max Kellermann | 2014-02-19 | 2 | -0/+14 |
| | | | | | Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in the DatabasePlugin. | ||||
* | CompositeStorage: fix tree walk in Directory::Unmount() | Max Kellermann | 2014-02-12 | 1 | -1/+4 |
| | |||||
* | StorageCommands: add command "listmounts" | Max Kellermann | 2014-02-12 | 1 | -0/+32 |
| | |||||
* | CompositeStorage: new Storage implementation | Max Kellermann | 2014-02-09 | 2 | -0/+467 |
| | | | | This is the backend for the upcoming "mount" command. | ||||
* | Main: move code to storage/Configured.cxx | Max Kellermann | 2014-02-09 | 2 | -0/+114 |
| | |||||
* | storage/nfs: new storage plugin | Max Kellermann | 2014-02-08 | 3 | -0/+271 |
| | |||||
* | storage: add struct StoragePlugin and a plugin registry | Max Kellermann | 2014-02-07 | 7 | -6/+167 |
| | |||||
* | storage/local: remove utf8 path from constructor | Max Kellermann | 2014-02-07 | 2 | -6/+9 |
| | | | | Build the UTF-8 version of the path automatically in the constructor. | ||||
* | StoragePlugin: add method MapToRelativeUTF8() | Max Kellermann | 2014-02-07 | 3 | -0/+24 |
| | | | | Replaces map_to_relative_path() from Mapper.cxx. | ||||
* | storage/local: hide the class declarations | Max Kellermann | 2014-02-07 | 2 | -47/+61 |
| | | | | Hide inside CreateLocalStorage(). | ||||
* | */smbclient: protect all libsmbclient calls with a mutex | Max Kellermann | 2014-02-06 | 1 | -1/+15 |
| | | | | | libsmbclient is not thread-safe nor reentrant. We must protect all function calls with a global mutex, unfortunately. | ||||
* | storage/smbclient: Storage implementation using libsmbclient | Max Kellermann | 2014-02-06 | 2 | -0/+211 |
| | |||||
* | storage/local: OpenDirectory() returns StorageDirectoryReader* | Max Kellermann | 2014-02-05 | 2 | -3/+3 |
| | |||||
* | storage/Interface: explicitly delete copy constructors | Max Kellermann | 2014-02-05 | 2 | -2/+4 |
| | |||||
* | storage/local: move to src/storage/plugins/ | Max Kellermann | 2014-02-05 | 2 | -2/+2 |
| | |||||
* | storage: add abstract interface | Max Kellermann | 2014-02-05 | 4 | -38/+123 |
| | | | | Prepare for the plugin interface. | ||||
* | LocalStorage: new API abstracting filesystem walk | Max Kellermann | 2014-02-05 | 3 | -0/+305 |
Prepare to make this a new plugin API, for example to use a SMB share for the music_directory. |