diff options
author | 2018-01-25 14:14:23 +0000 | |
---|---|---|
committer | 2018-01-25 14:14:23 +0000 | |
commit | 0cccde6b1ad66c16a1dbacdd17c634efdf80d83d (patch) | |
tree | 235ba068a5d8d0ca7d5f3560e4169376d1d8a8d0 | |
parent | 27507d86962047b45aa069c7140cd46c2577c51e (diff) | |
parent | 52c866eea41549d0efc4d09f95f0c6d401b78b82 (diff) |
Merge "DropBoxManager: Allow adding a file using an fd"
-rw-r--r-- | libs/services/include/android/os/DropBoxManager.h | 4 | ||||
-rw-r--r-- | libs/services/src/os/DropBoxManager.cpp | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libs/services/include/android/os/DropBoxManager.h b/libs/services/include/android/os/DropBoxManager.h index 2ed203d9f865..75b26c626d14 100644 --- a/libs/services/include/android/os/DropBoxManager.h +++ b/libs/services/include/android/os/DropBoxManager.h @@ -58,6 +58,10 @@ public: // are required from the system process. Returns NULL if the file can't be opened. Status addFile(const String16& tag, const string& filename, int flags); + // Create a new Entry from an already opened file. Takes ownership of the + // file descriptor. + Status addFile(const String16& tag, int fd, int flags); + class Entry : public virtual RefBase, public Parcelable { public: Entry(); diff --git a/libs/services/src/os/DropBoxManager.cpp b/libs/services/src/os/DropBoxManager.cpp index 1c760e850e4f..f5685d9ca753 100644 --- a/libs/services/src/os/DropBoxManager.cpp +++ b/libs/services/src/os/DropBoxManager.cpp @@ -202,7 +202,12 @@ DropBoxManager::addFile(const String16& tag, const string& filename, int flags) ALOGW("DropboxManager: %s", message.c_str()); return Status::fromExceptionCode(Status::EX_ILLEGAL_STATE, message.c_str()); } + return addFile(tag, fd, flags); +} +Status +DropBoxManager::addFile(const String16& tag, int fd, int flags) +{ Entry entry(tag, flags, fd); return add(entry); } |