summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Primiano Tucci <primiano@google.com> 2018-01-26 19:29:31 +0000
committer android-build-merger <android-build-merger@google.com> 2018-01-26 19:29:31 +0000
commit8552eb769c0231ac1d4b68f94cee65b40dde688c (patch)
treeb3f5a9bbc86a840c231841b2d3ba360e181c27f7
parentc8f0e0dab9f76cc7fdbfe451603c7c203078637d (diff)
parent71411b877a080f85a9e4014ee3a5904582ac46e3 (diff)
Merge "DropBoxManager: Allow adding a file using an fd" am: a946cc9f53
am: 71411b877a Change-Id: I8c07b8650a508f03352075ac7bd6e7943f6cacb4
-rw-r--r--libs/services/include/android/os/DropBoxManager.h6
-rw-r--r--libs/services/src/os/DropBoxManager.cpp5
2 files changed, 10 insertions, 1 deletions
diff --git a/libs/services/include/android/os/DropBoxManager.h b/libs/services/include/android/os/DropBoxManager.h
index 8717178bb7d6..3449a7b72283 100644
--- a/libs/services/include/android/os/DropBoxManager.h
+++ b/libs/services/include/android/os/DropBoxManager.h
@@ -57,7 +57,11 @@ public:
// and a handle will be passed to the system process, so no additional permissions
// 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 bbb45f022a87..e8e34d7c4cb3 100644
--- a/libs/services/src/os/DropBoxManager.cpp
+++ b/libs/services/src/os/DropBoxManager.cpp
@@ -179,7 +179,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);
}