Improve MtpStorage handling when more than one storage is present
Change-Id: I02f1984d02a85d9fd42450cc3772e88a43d9e9ff
diff --git a/mtp/MtpStorage.cpp b/mtp/MtpStorage.cpp
index e20dab4..c726bc6 100755
--- a/mtp/MtpStorage.cpp
+++ b/mtp/MtpStorage.cpp
@@ -212,7 +212,7 @@
return 0;
}
}
- MTPE("MtpStorage::getObjectInfo no object found, error!\n");
+ // Item is not on this storage device
return -1;
}
@@ -290,7 +290,7 @@
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 @@
goto end;
}
}
- MTPE("MtpStorage::deleteFile deleting handle: %d FAILED\n", handle);
return -1;
end:
if (local_parent_id) {
@@ -556,7 +555,7 @@
}
}
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 @@
}
}
}
- MTPE("MtpStorage::renameObject handle / node not found, error!\n");
+ // handle not foudn on this storage
return -1;
}
@@ -680,7 +679,7 @@
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 60a871c..acdab52 100755
--- a/mtp/mtp_MtpDatabase.cpp
+++ b/mtp/mtp_MtpDatabase.cpp
@@ -322,7 +322,7 @@
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 @@
}
}
+ 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) {