Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 406f47fa authored by Narayan Kamath's avatar Narayan Kamath Committed by Android Git Automerger
Browse files

am 9f29eb31: am 79074914: am a5c5f900: Merge "Use errno correctly."

* commit '9f29eb31':
  Use errno correctly.
parents 33e3e657 9f29eb31
Loading
Loading
Loading
Loading
+29 −14
Original line number Original line Diff line number Diff line
@@ -214,10 +214,11 @@ void MtpServer::run() {
            mResponse.setTransactionID(transaction);
            mResponse.setTransactionID(transaction);
            ALOGV("sending response %04X", mResponse.getResponseCode());
            ALOGV("sending response %04X", mResponse.getResponseCode());
            ret = mResponse.write(fd);
            ret = mResponse.write(fd);
            const int savedErrno = errno;
            mResponse.dump();
            mResponse.dump();
            if (ret < 0) {
            if (ret < 0) {
                ALOGE("request write returned %d, errno: %d", ret, errno);
                ALOGE("request write returned %d, errno: %d", ret, errno);
                if (errno == ECANCELED) {
                if (savedErrno == ECANCELED) {
                    // return to top of loop and wait for next command
                    // return to top of loop and wait for next command
                    continue;
                    continue;
                }
                }
@@ -787,15 +788,19 @@ MtpResponseCode MtpServer::doGetObject() {


    // then transfer the file
    // then transfer the file
    int ret = ioctl(mFD, MTP_SEND_FILE_WITH_HEADER, (unsigned long)&mfr);
    int ret = ioctl(mFD, MTP_SEND_FILE_WITH_HEADER, (unsigned long)&mfr);
    ALOGV("MTP_SEND_FILE_WITH_HEADER returned %d\n", ret);
    close(mfr.fd);
    if (ret < 0) {
    if (ret < 0) {
        if (errno == ECANCELED)
        if (errno == ECANCELED) {
            return MTP_RESPONSE_TRANSACTION_CANCELLED;
            result = MTP_RESPONSE_TRANSACTION_CANCELLED;
        else
        } else {
            return MTP_RESPONSE_GENERAL_ERROR;
            result = MTP_RESPONSE_GENERAL_ERROR;
        }
        }
    return MTP_RESPONSE_OK;
    } else {
        result = MTP_RESPONSE_OK;
    }

    ALOGV("MTP_SEND_FILE_WITH_HEADER returned %d\n", ret);
    close(mfr.fd);
    return result;
}
}


MtpResponseCode MtpServer::doGetThumb() {
MtpResponseCode MtpServer::doGetThumb() {
@@ -864,14 +869,15 @@ MtpResponseCode MtpServer::doGetPartialObject(MtpOperationCode operation) {
    // transfer the file
    // transfer the file
    int ret = ioctl(mFD, MTP_SEND_FILE_WITH_HEADER, (unsigned long)&mfr);
    int ret = ioctl(mFD, MTP_SEND_FILE_WITH_HEADER, (unsigned long)&mfr);
    ALOGV("MTP_SEND_FILE_WITH_HEADER returned %d\n", ret);
    ALOGV("MTP_SEND_FILE_WITH_HEADER returned %d\n", ret);
    close(mfr.fd);
    result = MTP_RESPONSE_OK;
    if (ret < 0) {
    if (ret < 0) {
        if (errno == ECANCELED)
        if (errno == ECANCELED)
            return MTP_RESPONSE_TRANSACTION_CANCELLED;
            result = MTP_RESPONSE_TRANSACTION_CANCELLED;
        else
        else
            return MTP_RESPONSE_GENERAL_ERROR;
            result = MTP_RESPONSE_GENERAL_ERROR;
    }
    }
    return MTP_RESPONSE_OK;
    close(mfr.fd);
    return result;
}
}


MtpResponseCode MtpServer::doSendObjectInfo() {
MtpResponseCode MtpServer::doSendObjectInfo() {
@@ -985,6 +991,7 @@ MtpResponseCode MtpServer::doSendObject() {
    MtpResponseCode result = MTP_RESPONSE_OK;
    MtpResponseCode result = MTP_RESPONSE_OK;
    mode_t mask;
    mode_t mask;
    int ret, initialData;
    int ret, initialData;
    bool isCanceled = false;


    if (mSendObjectHandle == kInvalidObjectHandle) {
    if (mSendObjectHandle == kInvalidObjectHandle) {
        ALOGE("Expected SendObjectInfo before SendObject");
        ALOGE("Expected SendObjectInfo before SendObject");
@@ -1032,6 +1039,10 @@ MtpResponseCode MtpServer::doSendObject() {
            ALOGV("receiving %s\n", (const char *)mSendObjectFilePath);
            ALOGV("receiving %s\n", (const char *)mSendObjectFilePath);
            // transfer the file
            // transfer the file
            ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr);
            ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr);
            if ((ret < 0) && (errno == ECANCELED)) {
                isCanceled = true;
            }

            ALOGV("MTP_RECEIVE_FILE returned %d\n", ret);
            ALOGV("MTP_RECEIVE_FILE returned %d\n", ret);
        }
        }
    }
    }
@@ -1039,7 +1050,7 @@ MtpResponseCode MtpServer::doSendObject() {


    if (ret < 0) {
    if (ret < 0) {
        unlink(mSendObjectFilePath);
        unlink(mSendObjectFilePath);
        if (errno == ECANCELED)
        if (isCanceled)
            result = MTP_RESPONSE_TRANSACTION_CANCELLED;
            result = MTP_RESPONSE_TRANSACTION_CANCELLED;
        else
        else
            result = MTP_RESPONSE_GENERAL_ERROR;
            result = MTP_RESPONSE_GENERAL_ERROR;
@@ -1208,6 +1219,7 @@ MtpResponseCode MtpServer::doSendPartialObject() {
        length -= initialData;
        length -= initialData;
    }
    }


    bool isCanceled = false;
    if (ret < 0) {
    if (ret < 0) {
        ALOGE("failed to write initial data");
        ALOGE("failed to write initial data");
    } else {
    } else {
@@ -1219,12 +1231,15 @@ MtpResponseCode MtpServer::doSendPartialObject() {


            // transfer the file
            // transfer the file
            ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr);
            ret = ioctl(mFD, MTP_RECEIVE_FILE, (unsigned long)&mfr);
            if ((ret < 0) && (errno == ECANCELED)) {
                isCanceled = true;
            }
            ALOGV("MTP_RECEIVE_FILE returned %d", ret);
            ALOGV("MTP_RECEIVE_FILE returned %d", ret);
        }
        }
    }
    }
    if (ret < 0) {
    if (ret < 0) {
        mResponse.setParameter(1, 0);
        mResponse.setParameter(1, 0);
        if (errno == ECANCELED)
        if (isCanceled)
            return MTP_RESPONSE_TRANSACTION_CANCELLED;
            return MTP_RESPONSE_TRANSACTION_CANCELLED;
        else
        else
            return MTP_RESPONSE_GENERAL_ERROR;
            return MTP_RESPONSE_GENERAL_ERROR;