From 23d2071ab44d7b5e3b16e8a81e11884faf01092f Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 11 Oct 2010 17:31:44 -0400 Subject: 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 --- media/mtp/MtpServer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'media/mtp') 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); -- cgit v1.1