VirtualBox

Changeset 34368 in vbox for trunk


Ignore:
Timestamp:
Nov 25, 2010 2:00:02 PM (14 years ago)
Author:
vboxsync
Message:

Guest Additions update/Main: Retrieve installer status after run.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/GuestImpl.cpp

    r34254 r34368  
    417417                if (SUCCEEDED(rc))
    418418                {
    419                     LogRel(("Executing Guest Additions update ...\n"));
     419                    LogRel(("Guest Additions update is running ...\n"));
     420                    while (SUCCEEDED(progressInstaller->COMGETTER(Completed(&fCompleted))))
     421                    {
     422                        /* Progress canceled by Main API? */
     423                        if (   SUCCEEDED(progressInstaller->COMGETTER(Canceled(&fCanceled)))
     424                            && fCanceled)
     425                        {
     426                            break;
     427                        }
     428                        if (fCompleted)
     429                            break;
     430                        RTThreadSleep(1);
     431                    }
     432
     433                    ULONG uRetStatus, uRetExitCode, uRetFlags;
     434                    rc = pGuest->GetProcessStatus(uPID, &uRetExitCode, &uRetFlags, &uRetStatus);
     435                    if (SUCCEEDED(rc))
     436                    {
     437                        if (fCompleted)
     438                        {
     439                            if (uRetExitCode == 0)
     440                                LogRel(("Guest Additions update successful!\n"));
     441                            else
     442                            {
     443                                rc = setError(VBOX_E_IPRT_ERROR,
     444                                              tr("Guest Additions update failed with exit code=%u (Status=%u, Flags=%u)"),
     445                                              uRetExitCode, uRetStatus, uRetFlags);
     446                            }
     447                        }
     448                        else if (fCanceled)
     449                        {
     450                            rc = setError(VBOX_E_IPRT_ERROR,
     451                                          tr("Guest Additions update was canceled with exit code=%u (Status=%u, Flags=%u)"),
     452                                          uRetExitCode, uRetStatus, uRetFlags);
     453                        }
     454                        else
     455                            AssertMsgFailed(("Unknown Guest Additions update status!"));
     456                    }
    420457                }
    421458            }
     
    446483    else /* The task was canceled, set error code to prevent assertions. */
    447484    {
    448         LogRel(("Automatic Guest Additions update was canceled\n"));
     485        LogRel(("Guest Additions update was canceled\n"));
    449486        aTask->progress->notifyComplete(VBOX_E_IPRT_ERROR,
    450487                                        COM_IIDOF(IGuest),
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