From 5e083dcc202e53f21a9b2ca786d939abed090bde Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Wed, 3 Sep 2014 14:46:41 -0500 Subject: Improve MtpStorage handling when more than one storage is present Change-Id: I02f1984d02a85d9fd42450cc3772e88a43d9e9ff --- mtp/MtpStorage.cpp | 11 +++++------ mtp/mtp_MtpDatabase.cpp | 7 ++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp index e20dab402..c726bc651 100755 --- a/mtp/MtpStorage.cpp +++ b/mtp/MtpStorage.cpp @@ -212,7 +212,7 @@ int MtpStorage::getObjectInfo(MtpObjectHandle handle, MtpObjectInfo& info) { return 0; } } - MTPE("MtpStorage::getObjectInfo no object found, error!\n"); + // Item is not on this storage device return -1; } @@ -290,7 +290,7 @@ int MtpStorage::getObjectFilePath(MtpObjectHandle handle, MtpString& outFilePath goto end; } } - MTPE("MtpStorage::getObjectFilePath fauled to find handle: %i\n", handle); + // Item is not on this storage return -1; end: outFormat = MTP_FORMAT_ASSOCIATION; @@ -440,7 +440,6 @@ int MtpStorage::deleteFile(MtpObjectHandle handle) { goto end; } } - MTPE("MtpStorage::deleteFile deleting handle: %d FAILED\n", handle); return -1; end: if (local_parent_id) { @@ -556,7 +555,7 @@ int MtpStorage::getObjectPropertyList(MtpObjectHandle handle, uint32_t format, u } } else { - MTPE("MtpStorage::getObjectPropertyList unsupported property %x\n", property); + // Either the property is not supported or the handle is not on this storage return -1; } @@ -653,7 +652,7 @@ int MtpStorage::renameObject(MtpObjectHandle handle, std::string newName) { } } } - MTPE("MtpStorage::renameObject handle / node not found, error!\n"); + // handle not foudn on this storage return -1; } @@ -680,7 +679,7 @@ int MtpStorage::getObjectPropertyValue(MtpObjectHandle handle, MtpObjectProperty return 0; } } - MTPE("MtpStorage::getObjectPropertyValue unable to locate handle: %i\n", handle); + // handle not found on this storage return -1; } pthread_t MtpStorage::inotify(void) { diff --git a/mtp/mtp_MtpDatabase.cpp b/mtp/mtp_MtpDatabase.cpp index 60a871ce3..acdab523d 100755 --- a/mtp/mtp_MtpDatabase.cpp +++ b/mtp/mtp_MtpDatabase.cpp @@ -322,7 +322,7 @@ MtpResponseCode MyMtpDatabase::getObjectPropertyValue(MtpObjectHandle handle, MtpDataPacket& packet) { MTPD("MyMtpDatabase::getObjectPropertyValue mtpid: %i, property: %x\n", handle, property); int type; - MtpResponseCode result; + MtpResponseCode result = MTP_RESPONSE_INVALID_OBJECT_HANDLE; uint64_t longValue; if (!getObjectPropertyInfo(property, type)) { MTPE("MyMtpDatabase::setObjectPropertyValue returning MTP_RESPONSE_OBJECT_PROP_NOT_SUPPORTED\n"); @@ -336,6 +336,11 @@ MtpResponseCode MyMtpDatabase::getObjectPropertyValue(MtpObjectHandle handle, } } + if (result != MTP_RESPONSE_OK) { + MTPE("MyMtpDatabase::setObjectPropertyValue unable to locate handle: %i\n", handle); + return MTP_RESPONSE_INVALID_OBJECT_HANDLE; + } + // special case date properties, which are strings to MTP // but stored internally as a uint64 if (property == MTP_PROPERTY_DATE_MODIFIED || property == MTP_PROPERTY_DATE_ADDED) { -- cgit v1.2.3