VirtualBox

Ignore:
Timestamp:
Dec 1, 2011 10:58:19 AM (13 years ago)
Author:
vboxsync
Message:

GuestCtrl: More bugfixing.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/GuestCtrlImplTasks.cpp

    r39475 r39487  
    7070
    7171    LogFlowFuncEnter();
    72     LogFlowFunc(("Guest %p\n", pGuest));
    7372
    7473    HRESULT rc = S_OK;
     
    295294                            }
    296295                            else
     296                            {
    297297                                rc = GuestTask::setProgressErrorInfo(VBOX_E_IPRT_ERROR, aTask->pProgress,
    298298                                                                     Guest::tr("Seeking file \"%s\" failed; offset = %RU64 (%Rrc)"),
    299299                                                                     aTask->strSource.c_str(), cbTransferedTotal, vrc);
     300                                break;
     301                            }
    300302                            /* Resize buffer to reflect amount we just have read.
    301303                             * Size 0 is allowed! */
     
    360362                            ExecuteProcessStatus_T retStatus;
    361363                            ULONG uRetExitCode;
    362                             rc = pGuest->executeWaitForStatusChange(uPID, 0 /* No timeout. */,
    363                                                                     &retStatus, &uRetExitCode);
     364
     365                            rc = executeWaitForExit(uPID, execProgress, 0 /* No timeout */,
     366                                                    &retStatus, &uRetExitCode);
    364367                            if (FAILED(rc))
    365368                            {
     
    372375                                {
    373376                                    rc = GuestTask::setProgressErrorInfo(VBOX_E_IPRT_ERROR, aTask->pProgress,
    374                                                                          Guest::tr("Guest reported error %u while copying file \"%s\" to \"%s\""),
    375                                                                          uRetExitCode, aTask->strSource.c_str(), aTask->strDest.c_str());
     377                                                                         Guest::tr("Guest process reported error %u (status: %u) while copying file \"%s\" to \"%s\""),
     378                                                                         uRetExitCode, retStatus, aTask->strSource.c_str(), aTask->strDest.c_str());
    376379                                }
    377380                            }
     
    592595                    RTFileClose(hFileDest);
    593596
    594                     if (   cbTransfered
    595                         && (cbTransfered != lFileSize))
    596                     {
    597                         /*
    598                          * Only bitch about an unexpected end of a file when there already
    599                          * was data read from that file. If this was the very first read we can
    600                          * be (almost) sure that this file is not meant to be read by the specified user.
    601                          */
    602                         rc = GuestTask::setProgressErrorInfo(VBOX_E_IPRT_ERROR, aTask->pProgress,
    603                                                              Guest::tr("Unexpected end of file \"%s\" (%u bytes total, %u bytes transferred)"),
    604                                                              aTask->strSource.c_str(), lFileSize, cbTransfered);
    605                     }
    606 
    607597                    if (SUCCEEDED(rc))
    608                         aTask->pProgress->notifyComplete(S_OK);
     598                    {
     599                        if (   cbTransfered
     600                            && (cbTransfered != lFileSize))
     601                        {
     602                            /*
     603                             * Only bitch about an unexpected end of a file when there already
     604                             * was data read from that file. If this was the very first read we can
     605                             * be (almost) sure that this file is not meant to be read by the specified user.
     606                             */
     607                            rc = GuestTask::setProgressErrorInfo(VBOX_E_IPRT_ERROR, aTask->pProgress,
     608                                                                 Guest::tr("Unexpected end of file \"%s\" (%u bytes total, %u bytes transferred)"),
     609                                                                 aTask->strSource.c_str(), lFileSize, cbTransfered);
     610                        }
     611
     612                        if (SUCCEEDED(rc))
     613                            aTask->pProgress->notifyComplete(S_OK);
     614                    }
    609615                }
    610616            }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette