summaryrefslogtreecommitdiffstats
path: root/media/mtp/MtpServer.cpp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@google.com>2010-10-11 17:31:44 -0400
committerMike Lockwood <lockwood@google.com>2010-10-11 17:33:52 -0400
commit23d2071ab44d7b5e3b16e8a81e11884faf01092f (patch)
treea726f3622522b474b0567d956007cc4d93f756d2 /media/mtp/MtpServer.cpp
parent250e051e564e3b6f5a88314379d5e145a2b5615f (diff)
downloadframeworks_av-23d2071ab44d7b5e3b16e8a81e11884faf01092f.zip
frameworks_av-23d2071ab44d7b5e3b16e8a81e11884faf01092f.tar.gz
frameworks_av-23d2071ab44d7b5e3b16e8a81e11884faf01092f.tar.bz2
MTP: Include size of 12 byte header in packet size for GetObject data packet
Fixes file transfer from device to host with libmtp. Change-Id: Ifb304c1f106e94b2710ee5c11816b83cf5f25478 Signed-off-by: Mike Lockwood <lockwood@google.com>
Diffstat (limited to 'media/mtp/MtpServer.cpp')
-rw-r--r--media/mtp/MtpServer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp
index 84a3e2c..f74f395 100644
--- a/media/mtp/MtpServer.cpp
+++ b/media/mtp/MtpServer.cpp
@@ -163,6 +163,7 @@ void MtpServer::run() {
mData.setOperationCode(operation);
mData.setTransactionID(transaction);
LOGV("sending data:");
+ mData.dump();
ret = mData.write(fd);
if (ret < 0) {
LOGE("request write returned %d, errno: %d", ret, errno);
@@ -177,6 +178,7 @@ void MtpServer::run() {
mResponse.setTransactionID(transaction);
LOGV("sending response %04X", mResponse.getResponseCode());
ret = mResponse.write(fd);
+ mResponse.dump();
if (ret < 0) {
LOGE("request write returned %d, errno: %d", ret, errno);
if (errno == ECANCELED) {
@@ -546,7 +548,7 @@ MtpResponseCode MtpServer::doGetObject() {
// send data header
mData.setOperationCode(mRequest.getOperationCode());
mData.setTransactionID(mRequest.getTransactionID());
- mData.writeDataHeader(mFD, fileLength);
+ mData.writeDataHeader(mFD, fileLength + MTP_CONTAINER_HEADER_SIZE);
// then transfer the file
int ret = ioctl(mFD, MTP_SEND_FILE, (unsigned long)&mfr);