VirtualBox

Changeset 73003 in vbox for trunk/src/VBox/Main/src-server


Ignore:
Timestamp:
Jul 9, 2018 11:09:32 AM (7 years ago)
Author:
vboxsync
Message:

Main: Use setErrorBoth when we've got a VBox status code handy. (The COM status codes aren't too specfic and this may help us decode error messages and provide an alternative to strstr for API clients. setErrorBoth isn't new, btw.)

Location:
trunk/src/VBox/Main/src-server
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/ApplianceImplExport.cpp

    r72476 r73003  
    490490                        throw setError(VBOX_E_NOT_SUPPORTED,
    491491                                       tr("Cannot handle medium attachment: channel is %d, device is %d"), lChannel, lDevice);
    492                 break;
     492                    break;
    493493
    494494                case StorageBus_SATA:
    495495                    lChannelVsys = lChannel;        // should be between 0 and 29
    496496                    lControllerVsys = lSATAControllerIndex;
    497                 break;
     497                    break;
    498498
    499499                case StorageBus_SCSI:
     
    501501                    lChannelVsys = lChannel;        // should be between 0 and 15
    502502                    lControllerVsys = lSCSIControllerIndex;
    503                 break;
     503                    break;
    504504
    505505                case StorageBus_Floppy:
    506506                    lChannelVsys = 0;
    507507                    lControllerVsys = 0;
    508                 break;
     508                    break;
    509509
    510510                default:
     
    512512                                   tr("Cannot handle medium attachment: storageBus is %d, channel is %d, device is %d"),
    513513                                   storageBus, lChannel, lDevice);
    514                 break;
    515514            }
    516515
  • trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp

    r72919 r73003  
    18431843                    vrc = RTCrX509CertPathsSetTrustedStore(hCertPaths, hTrustedCerts);
    18441844                    if (RT_FAILURE(vrc))
    1845                         hrc2 = setError(E_FAIL, tr("RTCrX509CertPathsSetTrustedStore failed (%Rrc)"), vrc);
     1845                        hrc2 = setErrorBoth(E_FAIL, vrc, tr("RTCrX509CertPathsSetTrustedStore failed (%Rrc)"), vrc);
    18461846                    RTCrStoreRelease(hTrustedCerts);
    18471847                }
    18481848                else
    1849                     hrc2 = setError(E_FAIL,
    1850                                     tr("Failed to query trusted CAs and Certificates from the system and for the current user (%Rrc, %s)"),
    1851                                     vrc, StaticErrInfo.Core.pszMsg);
     1849                    hrc2 = setErrorBoth(E_FAIL, vrc,
     1850                                        tr("Failed to query trusted CAs and Certificates from the system and for the current user (%Rrc, %s)"),
     1851                                        vrc, StaticErrInfo.Core.pszMsg);
    18521852
    18531853                /* Add untrusted intermediate certificates. */
     
    19131913                        }
    19141914                        else
    1915                             hrc2 = setError(E_FAIL, tr("Certificate path validation failed (%Rrc, %s)"),
    1916                                             vrc, StaticErrInfo.Core.pszMsg);
     1915                            hrc2 = setErrorBoth(E_FAIL, vrc, tr("Certificate path validation failed (%Rrc, %s)"),
     1916                                                vrc, StaticErrInfo.Core.pszMsg);
    19171917                    }
    19181918                    else
    1919                         hrc2 = setError(E_FAIL, tr("Certificate path building failed (%Rrc, %s)"),
    1920                                         vrc, StaticErrInfo.Core.pszMsg);
     1919                        hrc2 = setErrorBoth(E_FAIL, vrc, tr("Certificate path building failed (%Rrc, %s)"),
     1920                                            vrc, StaticErrInfo.Core.pszMsg);
    19211921                }
    19221922                RTCrX509CertPathsRelease(hCertPaths);
     
    22392239                                             NULL /*pszAttr*/, szDigest, fType);
    22402240            if (RT_FAILURE(vrc))
    2241                 return setError(VBOX_E_IPRT_ERROR, tr("Error fudging missing OVF digest in manifest: %Rrc"), vrc);
     2241                return setErrorBoth(VBOX_E_IPRT_ERROR, vrc, tr("Error fudging missing OVF digest in manifest: %Rrc"), vrc);
    22422242        }
    22432243
  • trunk/src/VBox/Main/src-server/DHCPServerImpl.cpp

    r69500 r73003  
    258258{
    259259    RTNETADDRIPV4 IPAddress, NetworkMask, LowerIP, UpperIP;
    260     int rc;
    261 
    262     rc = RTNetStrToIPv4Addr(aIPAddress.c_str(), &IPAddress);
    263     if (RT_FAILURE(rc))
    264         return mVirtualBox->setErrorBoth(E_INVALIDARG, rc,
    265                    "Invalid server address");
    266 
    267     rc = RTNetStrToIPv4Addr(aNetworkMask.c_str(), &NetworkMask);
    268     if (RT_FAILURE(rc))
    269         return mVirtualBox->setErrorBoth(E_INVALIDARG, rc,
    270                    "Invalid netmask");
    271 
    272     rc = RTNetStrToIPv4Addr(aLowerIP.c_str(), &LowerIP);
    273     if (RT_FAILURE(rc))
    274         return mVirtualBox->setErrorBoth(E_INVALIDARG, rc,
    275                    "Invalid range lower address");
    276 
    277     rc = RTNetStrToIPv4Addr(aUpperIP.c_str(), &UpperIP);
    278     if (RT_FAILURE(rc))
    279         return mVirtualBox->setErrorBoth(E_INVALIDARG, rc,
    280                    "Invalid range upper address");
     260
     261    int vrc = RTNetStrToIPv4Addr(aIPAddress.c_str(), &IPAddress);
     262    if (RT_FAILURE(vrc))
     263        return mVirtualBox->setErrorBoth(E_INVALIDARG, vrc, "Invalid server address");
     264
     265    vrc = RTNetStrToIPv4Addr(aNetworkMask.c_str(), &NetworkMask);
     266    if (RT_FAILURE(vrc))
     267        return mVirtualBox->setErrorBoth(E_INVALIDARG, vrc, "Invalid netmask");
     268
     269    vrc = RTNetStrToIPv4Addr(aLowerIP.c_str(), &LowerIP);
     270    if (RT_FAILURE(vrc))
     271        return mVirtualBox->setErrorBoth(E_INVALIDARG, vrc, "Invalid range lower address");
     272
     273    vrc = RTNetStrToIPv4Addr(aUpperIP.c_str(), &UpperIP);
     274    if (RT_FAILURE(vrc))
     275        return mVirtualBox->setErrorBoth(E_INVALIDARG, vrc, "Invalid range upper address");
    281276
    282277    /*
     
    284279     * here or address/prefix for aIPAddress?
    285280     */
    286     rc = RTNetMaskToPrefixIPv4(&NetworkMask, NULL);
    287     if (RT_FAILURE(rc))
    288         return mVirtualBox->setErrorBoth(E_INVALIDARG, rc,
    289                    "Invalid netmask");
     281    vrc = RTNetMaskToPrefixIPv4(&NetworkMask, NULL);
     282    if (RT_FAILURE(vrc))
     283        return mVirtualBox->setErrorBoth(E_INVALIDARG, vrc, "Invalid netmask");
    290284
    291285    /* It's more convenient to convert to host order once */
     
    301295        || (IPAddress.u & ~NetworkMask.u) == 0
    302296        || ((IPAddress.u & ~NetworkMask.u) | NetworkMask.u) == UINT32_C(0xffffffff))
    303     {
    304         return mVirtualBox->setError(E_INVALIDARG,
    305                    "Invalid server address");
    306     }
     297        return mVirtualBox->setError(E_INVALIDARG, "Invalid server address");
    307298
    308299    if (   (LowerIP.u & UINT32_C(0xe0000000)) == UINT32_C(0xe0000000)
     
    310301        || (LowerIP.u & ~NetworkMask.u) == 0
    311302        || ((LowerIP.u & ~NetworkMask.u) | NetworkMask.u) == UINT32_C(0xffffffff))
    312     {
    313         return mVirtualBox->setError(E_INVALIDARG,
    314                    "Invalid range lower address");
    315     }
     303        return mVirtualBox->setError(E_INVALIDARG, "Invalid range lower address");
    316304
    317305    if (   (UpperIP.u & UINT32_C(0xe0000000)) == UINT32_C(0xe0000000)
     
    319307        || (UpperIP.u & ~NetworkMask.u) == 0
    320308        || ((UpperIP.u & ~NetworkMask.u) | NetworkMask.u) == UINT32_C(0xffffffff))
    321     {
    322         return mVirtualBox->setError(E_INVALIDARG,
    323                    "Invalid range upper address");
    324     }
     309        return mVirtualBox->setError(E_INVALIDARG, "Invalid range upper address");
    325310
    326311    /* The range should be valid ... */
    327312    if (LowerIP.u > UpperIP.u)
    328         return mVirtualBox->setError(E_INVALIDARG,
    329                    "Invalid range bounds");
     313        return mVirtualBox->setError(E_INVALIDARG, "Invalid range bounds");
    330314
    331315    /* ... and shouldn't contain the server's address */
    332316    if (LowerIP.u <= IPAddress.u && IPAddress.u <= UpperIP.u)
    333         return mVirtualBox->setError(E_INVALIDARG,
    334                    "Server address within range bounds");
     317        return mVirtualBox->setError(E_INVALIDARG, "Server address within range bounds");
    335318
    336319    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    416399    {
    417400        uint8_t u8Code;
     401        char    *pszNext;
     402        int vrc = RTStrToUInt8Ex(aValue.c_str(), &pszNext, 10, &u8Code);
     403        if (!RT_SUCCESS(vrc))
     404            return VERR_PARSE_ERROR;
     405
    418406        uint32_t u32Enc;
    419         char *pszNext;
    420         int rc;
    421 
    422         rc = RTStrToUInt8Ex(aValue.c_str(), &pszNext, 10, &u8Code);
    423         if (!RT_SUCCESS(rc))
    424             return VERR_PARSE_ERROR;
    425 
    426407        switch (*pszNext)
    427408        {
     
    440421            case '@':
    441422            {
    442                 rc = RTStrToUInt32Ex(pszNext + 1, &pszNext, 10, &u32Enc);
    443                 if (!RT_SUCCESS(rc))
     423                vrc = RTStrToUInt32Ex(pszNext + 1, &pszNext, 10, &u32Enc);
     424                if (!RT_SUCCESS(vrc))
    444425                    return VERR_PARSE_ERROR;
    445426                if (*pszNext != '=')
  • trunk/src/VBox/Main/src-server/HostUSBDeviceImpl.cpp

    r72980 r73003  
    474474    mCaptureFilename = aCaptureFilename;
    475475    alock.release();
    476     int rc = mUSBProxyBackend->captureDevice(this);
    477     if (RT_FAILURE(rc))
     476    int vrc = mUSBProxyBackend->captureDevice(this);
     477    if (RT_FAILURE(vrc))
    478478    {
    479479        alock.acquire();
    480480        i_failTransition(kHostUSBDeviceState_Invalid);
    481481        mMachine.setNull();
    482         if (rc == VERR_SHARING_VIOLATION)
    483             return setError(E_FAIL,
    484                             tr("USB device '%s' with UUID {%RTuuid} is in use by someone else"),
    485                             mName, mId.raw());
     482        if (vrc == VERR_SHARING_VIOLATION)
     483            return setErrorBoth(E_FAIL, vrc,
     484                                tr("USB device '%s' with UUID {%RTuuid} is in use by someone else"),
     485                                mName, mId.raw());
    486486        return E_FAIL;
    487487    }
  • trunk/src/VBox/Main/src-server/HostVideoInputDeviceImpl.cpp

    r69500 r73003  
    184184        PFNVBOXHOSTWEBCAMLIST pfn = NULL;
    185185        RTLDRMOD hmod = NIL_RTLDRMOD;
    186         int rc = loadHostWebcamLibrary(strLibrary.c_str(), &hmod, &pfn);
    187 
    188         LogRel(("Load [%s] rc %Rrc\n", strLibrary.c_str(), rc));
    189 
    190         if (RT_SUCCESS(rc))
     186        int vrc = loadHostWebcamLibrary(strLibrary.c_str(), &hmod, &pfn);
     187
     188        LogRel(("Load [%s] vrc=%Rrc\n", strLibrary.c_str(), vrc));
     189
     190        if (RT_SUCCESS(vrc))
    191191        {
    192192            uint64_t u64Result = S_OK;
    193             rc = pfn(hostWebcamAdd, pList, &u64Result);
    194             Log(("VBoxHostWebcamList rc %Rrc, result 0x%08X\n", rc, u64Result));
    195             if (RT_FAILURE(rc))
     193            vrc = pfn(hostWebcamAdd, pList, &u64Result);
     194            Log(("VBoxHostWebcamList vrc %Rrc, result 0x%08X\n", vrc, u64Result));
     195            if (RT_FAILURE(vrc))
    196196            {
    197197                hr = (HRESULT)u64Result;
     
    204204        if (SUCCEEDED(hr))
    205205        {
    206             if (RT_FAILURE(rc))
    207                 hr = pVirtualBox->setError(VBOX_E_IPRT_ERROR,
    208                          "Failed to get webcam list: %Rrc", rc);
     206            if (RT_FAILURE(vrc))
     207                hr = pVirtualBox->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, "Failed to get webcam list: %Rrc", vrc);
    209208        }
    210209    }
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r72919 r73003  
    641641    int vrc1 = mParent->i_calculateFullPath(strConfigFile, mData->m_strConfigFileFull);
    642642    if (RT_FAILURE(vrc1))
    643         return setError(VBOX_E_FILE_ERROR,
    644                         tr("Invalid machine settings file name '%s' (%Rrc)"),
    645                         strConfigFile.c_str(),
    646                         vrc1);
     643        return setErrorBoth(VBOX_E_FILE_ERROR, vrc1,
     644                            tr("Invalid machine settings file name '%s' (%Rrc)"),
     645                            strConfigFile.c_str(),
     646                            vrc1);
    647647
    648648    LogFlowThisFuncLeave();
     
    680680            int vrc2 = RTFileDelete(mData->m_strConfigFileFull.c_str());
    681681            if (RT_FAILURE(vrc2))
    682                 rc = setError(VBOX_E_FILE_ERROR,
    683                               tr("Could not delete the existing settings file '%s' (%Rrc)"),
    684                               mData->m_strConfigFileFull.c_str(), vrc2);
     682                rc = setErrorBoth(VBOX_E_FILE_ERROR, vrc2,
     683                                  tr("Could not delete the existing settings file '%s' (%Rrc)"),
     684                                  mData->m_strConfigFileFull.c_str(), vrc2);
    685685        }
    686686    }
     
    688688              && vrc != VERR_PATH_NOT_FOUND
    689689            )
    690         rc = setError(VBOX_E_FILE_ERROR,
    691                       tr("Invalid machine settings file name '%s' (%Rrc)"),
    692                       mData->m_strConfigFileFull.c_str(),
    693                       vrc);
     690        rc = setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     691                          tr("Invalid machine settings file name '%s' (%Rrc)"),
     692                          mData->m_strConfigFileFull.c_str(),
     693                          vrc);
    694694    return rc;
    695695}
     
    26642664                                strSnapshotFolder);
    26652665    if (RT_FAILURE(vrc))
    2666         return setError(E_FAIL,
    2667                         tr("Invalid snapshot folder '%s' (%Rrc)"),
    2668                         strSnapshotFolder.c_str(), vrc);
     2666        return setErrorBoth(E_FAIL, vrc,
     2667                            tr("Invalid snapshot folder '%s' (%Rrc)"),
     2668                            strSnapshotFolder.c_str(), vrc);
    26692669
    26702670    i_setModified(IsModified_MachineData);
     
    48664866            case DeviceType_DVD:
    48674867            case DeviceType_Floppy:
    4868             break;
     4868                break;
    48694869
    48704870            default:
     
    54935493            int vrc = RTFileDelete(strFile.c_str());
    54945494            if (RT_FAILURE(vrc))
    5495                 throw setError(VBOX_E_IPRT_ERROR,
    5496                                tr("Could not delete file '%s' (%Rrc)"), strFile.c_str(), vrc);
     5495                throw setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     5496                                   tr("Could not delete file '%s' (%Rrc)"), strFile.c_str(), vrc);
    54975497        }
    54985498
     
    65206520        *aEnabled = TRUE;
    65216521#endif
    6522         return setError(VBOX_E_IPRT_ERROR,
    6523                         tr("Saved guest size is not available (%Rrc)"),
    6524                         vrc);
     6522        return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6523                            tr("Saved guest size is not available (%Rrc)"),
     6524                            vrc);
    65256525    }
    65266526
     
    65576557
    65586558    if (RT_FAILURE(vrc))
    6559         return setError(VBOX_E_IPRT_ERROR,
    6560                         tr("Saved thumbnail data is not available (%Rrc)"),
    6561                         vrc);
     6559        return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6560                            tr("Saved thumbnail data is not available (%Rrc)"),
     6561                            vrc);
    65626562
    65636563    HRESULT hr = S_OK;
     
    66156615            }
    66166616            else
    6617                 hr = setError(VBOX_E_IPRT_ERROR,
    6618                               tr("Could not convert saved thumbnail to PNG (%Rrc)"),
    6619                               vrc);
     6617                hr = setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6618                                  tr("Could not convert saved thumbnail to PNG (%Rrc)"),
     6619                                  vrc);
    66206620
    66216621            RTMemFree(pu8PNG);
     
    66466646
    66476647    if (RT_FAILURE(vrc))
    6648         return setError(VBOX_E_IPRT_ERROR,
    6649                         tr("Saved screenshot data is not available (%Rrc)"),
    6650                         vrc);
     6648        return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6649                            tr("Saved screenshot data is not available (%Rrc)"),
     6650                            vrc);
    66516651
    66526652    *aWidth = u32Width;
     
    66826682
    66836683    if (RT_FAILURE(vrc))
    6684         return setError(VBOX_E_IPRT_ERROR,
    6685                         tr("Saved screenshot thumbnail data is not available (%Rrc)"),
    6686                         vrc);
     6684        return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6685                            tr("Saved screenshot thumbnail data is not available (%Rrc)"),
     6686                            vrc);
    66876687
    66886688    *aWidth = u32Width;
     
    68286828            aData.resize(cbData);
    68296829        else
    6830             rc = setError(VBOX_E_IPRT_ERROR,
    6831                           tr("Could not read log file '%s' (%Rrc)"),
     6830            rc = setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6831                              tr("Could not read log file '%s' (%Rrc)"),
     6832                              log.c_str(), vrc);
     6833        RTFileClose(LogFile);
     6834    }
     6835    else
     6836        rc = setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     6837                          tr("Could not open log file '%s' (%Rrc)"),
    68326838                          log.c_str(), vrc);
    6833         RTFileClose(LogFile);
    6834     }
    6835     else
    6836         rc = setError(VBOX_E_IPRT_ERROR,
    6837                       tr("Could not open log file '%s' (%Rrc)"),
    6838                       log.c_str(), vrc);
    68396839
    68406840    if (FAILED(rc))
     
    79507950
    79517951    if (RT_FAILURE(vrc))
    7952         return setError(VBOX_E_IPRT_ERROR,
    7953                         tr("Could not launch a process for the machine '%s' (%Rrc)"),
    7954                         mUserData->s.strName.c_str(), vrc);
     7952        return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     7953                            tr("Could not launch a process for the machine '%s' (%Rrc)"),
     7954                            mUserData->s.strName.c_str(), vrc);
    79557955
    79567956    LogFlowThisFunc(("launched.pid=%d(0x%x)\n", pid, pid));
     
    81508150                          i_getName().c_str(), status.iStatus, strExtraInfo.c_str());
    81518151        else
    8152             rc = setError(E_FAIL,
    8153                           tr("The virtual machine '%s' has terminated unexpectedly during startup (%Rrc)%s"),
    8154                           i_getName().c_str(), vrc, strExtraInfo.c_str());
     8152            rc = setErrorBoth(E_FAIL, vrc,
     8153                              tr("The virtual machine '%s' has terminated unexpectedly during startup (%Rrc)%s"),
     8154                              i_getName().c_str(), vrc, strExtraInfo.c_str());
    81558155    }
    81568156
     
    88568856        int vrc = i_calculateFullPath(stateFilePathFull, stateFilePathFull);
    88578857        if (RT_FAILURE(vrc))
    8858             return setError(E_FAIL,
    8859                             tr("Invalid saved state file path '%s' (%Rrc)"),
    8860                             config.strStateFile.c_str(),
    8861                             vrc);
     8858            return setErrorBoth(E_FAIL, vrc,
     8859                                tr("Invalid saved state file path '%s' (%Rrc)"),
     8860                                config.strStateFile.c_str(),
     8861                                vrc);
    88628862        mSSData->strStateFilePath = stateFilePathFull;
    88638863    }
     
    89668966        int vrc = i_calculateFullPath(strStateFile, strStateFile);
    89678967        if (RT_FAILURE(vrc))
    8968             return setError(E_FAIL,
    8969                             tr("Invalid saved state file path '%s' (%Rrc)"),
    8970                             strStateFile.c_str(),
    8971                             vrc);
     8968            return setErrorBoth(E_FAIL, vrc,
     8969                                tr("Invalid saved state file path '%s' (%Rrc)"),
     8970                                strStateFile.c_str(),
     8971                                vrc);
    89728972    }
    89738973
     
    99519951                    if (RT_FAILURE(vrc))
    99529952                    {
    9953                         rc = setError(E_FAIL,
    9954                                       tr("Could not rename the directory '%s' to '%s' to save the settings file (%Rrc)"),
    9955                                       configDir.c_str(),
    9956                                       newConfigDir.c_str(),
    9957                                       vrc);
     9953                        rc = setErrorBoth(E_FAIL, vrc,
     9954                                          tr("Could not rename the directory '%s' to '%s' to save the settings file (%Rrc)"),
     9955                                          configDir.c_str(),
     9956                                          newConfigDir.c_str(),
     9957                                          vrc);
    99589958                        break;
    99599959                    }
     
    99899989                    if (RT_FAILURE(vrc))
    99909990                    {
    9991                         rc = setError(E_FAIL,
    9992                                       tr("Could not rename the settings file '%s' to '%s' (%Rrc)"),
    9993                                       configFile.c_str(),
    9994                                       newConfigFile.c_str(),
    9995                                       vrc);
     9991                        rc = setErrorBoth(E_FAIL, vrc,
     9992                                          tr("Could not rename the settings file '%s' to '%s' (%Rrc)"),
     9993                                          configFile.c_str(),
     9994                                          newConfigFile.c_str(),
     9995                                          vrc);
    99969996                        break;
    99979997                    }
     
    1006310063            if (RT_FAILURE(vrc))
    1006410064            {
    10065                 return setError(E_FAIL,
    10066                                 tr("Could not create a directory '%s' to save the settings file (%Rrc)"),
    10067                                 path.c_str(),
    10068                                 vrc);
     10065                return setErrorBoth(E_FAIL, vrc,
     10066                                    tr("Could not create a directory '%s' to save the settings file (%Rrc)"),
     10067                                    path.c_str(),
     10068                                    vrc);
    1006910069            }
    1007010070        }
     
    1007610076                         RTFILE_O_READWRITE | RTFILE_O_CREATE | RTFILE_O_DENY_WRITE);
    1007710077        if (RT_FAILURE(vrc))
    10078             return setError(E_FAIL,
    10079                             tr("Could not create the settings file '%s' (%Rrc)"),
    10080                             path.c_str(),
    10081                             vrc);
     10078            return setErrorBoth(E_FAIL, vrc,
     10079                                tr("Could not create the settings file '%s' (%Rrc)"),
     10080                                path.c_str(),
     10081                                vrc);
    1008210082        RTFileClose(f);
    1008310083    }
     
    1327413274    int vrc = i_calculateFullPath(aSavedStateFile, stateFilePathFull);
    1327513275    if (RT_FAILURE(vrc))
    13276         return setError(VBOX_E_FILE_ERROR,
    13277                         tr("Invalid saved state file path '%s' (%Rrc)"),
    13278                         aSavedStateFile.c_str(),
    13279                         vrc);
     13276        return setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     13277                            tr("Invalid saved state file path '%s' (%Rrc)"),
     13278                            aSavedStateFile.c_str(),
     13279                            vrc);
    1328013280
    1328113281    mSSData->strStateFilePath = stateFilePathFull;
     
    1392713927        Utf8Str filename = authLibrary;
    1392813928
    13929         int rc = AuthLibLoad(&mAuthLibCtx, filename.c_str());
    13930         if (RT_FAILURE(rc))
    13931         {
    13932             hr = setError(E_FAIL,
    13933                           tr("Could not load the external authentication library '%s' (%Rrc)"),
    13934                           filename.c_str(), rc);
    13935         }
     13929        int vrc = AuthLibLoad(&mAuthLibCtx, filename.c_str());
     13930        if (RT_FAILURE(vrc))
     13931            hr = setErrorBoth(E_FAIL, vrc,
     13932                              tr("Could not load the external authentication library '%s' (%Rrc)"),
     13933                              filename.c_str(), vrc);
    1393613934    }
    1393713935
  • trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp

    r72973 r73003  
    221221        int vrc = RTFileQuerySize(sst.strSaveStateFile.c_str(), &cbSize);
    222222        if (RT_FAILURE(vrc))
    223             return p->setError(VBOX_E_IPRT_ERROR, p->tr("Could not query file size of '%s' (%Rrc)"),
    224                                sst.strSaveStateFile.c_str(), vrc);
    225         /* same rule as above: count both the data which needs to
     223            return p->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, p->tr("Could not query file size of '%s' (%Rrc)"),
     224                                   sst.strSaveStateFile.c_str(), vrc);
     225        /*  same rule as above: count both the data which needs to
    226226         * be read and written */
    227227        sst.uWeight = (ULONG)(2 * (cbSize + _1M - 1) / _1M);
     
    965965
    966966        if (RT_FAILURE(vrc))
    967             p->setError(VBOX_E_IPRT_ERROR, "Could not create machine clone thread (%Rrc)", vrc);
     967            p->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, "Could not create machine clone thread (%Rrc)", vrc);
    968968    }
    969969    catch (HRESULT rc2)
     
    13931393            int vrc = RTDirCreateFullPath(strTrgSnapshotFolder.c_str(), 0700);
    13941394            if (RT_FAILURE(vrc))
    1395                 throw p->setError(VBOX_E_IPRT_ERROR,
    1396                                   p->tr("Could not create snapshots folder '%s' (%Rrc)"),
    1397                                         strTrgSnapshotFolder.c_str(), vrc);
     1395                throw p->setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     1396                                      p->tr("Could not create snapshots folder '%s' (%Rrc)"),
     1397                                            strTrgSnapshotFolder.c_str(), vrc);
    13981398        }
    13991399        /* Clone all save state files. */
     
    14141414                                       MachineCloneVMPrivate::copyStateFileProgress, &d->pProgress);
    14151415                if (RT_FAILURE(vrc))
    1416                     throw p->setError(VBOX_E_IPRT_ERROR,
    1417                                       p->tr("Could not copy state file '%s' to '%s' (%Rrc)"),
    1418                                             sst.strSaveStateFile.c_str(), strTrgSaveState.c_str(), vrc);
     1416                    throw p->setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     1417                                          p->tr("Could not copy state file '%s' to '%s' (%Rrc)"),
     1418                                          sst.strSaveStateFile.c_str(), strTrgSaveState.c_str(), vrc);
    14191419                newFiles.append(strTrgSaveState);
    14201420            }
     
    15071507            vrc = RTFileDelete(newFiles.at(i).c_str());
    15081508            if (RT_FAILURE(vrc))
    1509                 mrc = p->setError(VBOX_E_IPRT_ERROR, p->tr("Could not delete file '%s' (%Rrc)"), newFiles.at(i).c_str(), vrc);
     1509                mrc = p->setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     1510                                      p->tr("Could not delete file '%s' (%Rrc)"), newFiles.at(i).c_str(), vrc);
    15101511        }
    15111512        /* Delete all already created medias. (Reverse, cause there could be
  • trunk/src/VBox/Main/src-server/MachineImplMoveVM.cpp

    r72841 r73003  
    185185                                 strTargetFolder.c_str());
    186186            errorsList.push_back(ErrorInfoItem(E_FAIL, errorDesc.c_str()));
    187             rc = m_pMachine->setError(E_FAIL, m_pMachine->tr(errorDesc.c_str()));
     187            rc = m_pMachine->setErrorBoth(E_FAIL, vrc, m_pMachine->tr(errorDesc.c_str()));
    188188            throw rc;
    189189        }
     
    204204                                     "the destination folder.", strTargetFolder.c_str());
    205205                errorsList.push_back(ErrorInfoItem(HRESULT(vrc), errorDesc.c_str()));
    206                 rc = m_pMachine->setError(vrc, m_pMachine->tr(errorDesc.c_str()));
    207 
     206                rc = m_pMachine->setErrorBoth(VBOX_E_FILE_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    208207            }
    209208
     
    493492                errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    494493
    495                 throw m_pMachine->setError(VBOX_E_IPRT_ERROR,m_pMachine->tr(errorDesc.c_str()));
     494                throw m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
    496495            }
    497496        }
     
    658657                    taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    659658
    660                     throw machine->setError(VBOX_E_IPRT_ERROR,machine->tr(errorDesc.c_str()));
     659                    throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    661660                }
    662661            }
     
    682681                    taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    683682
    684                     throw machine->setError(VBOX_E_IPRT_ERROR,machine->tr(errorDesc.c_str()));
     683                    throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    685684                }
    686685
     
    731730                    taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    732731
    733                     throw machine->setError(VBOX_E_IPRT_ERROR,machine->tr(errorDesc.c_str()));
     732                    throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    734733                }
    735734                LogRelFunc(("Created a home machine folder %s\n", strTargetSettingsFilePath.c_str()));
     
    755754                taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    756755
    757                 throw machine->setError(VBOX_E_IPRT_ERROR, machine->tr(errorDesc.c_str()));
     756                throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    758757            }
    759758
     
    789788                            taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    790789
    791                             throw machine->setError(VBOX_E_IPRT_ERROR,machine->tr(errorDesc.c_str()));
     790                            throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    792791                        }
    793792                        LogRelFunc(("Created a log machine folder %s\n", strTargetLogFolderPath.c_str()));
     
    807806                        /* Move to next sub-operation. */
    808807                        rc = taskMoveVM->m_pProgress->SetNextOperation(BstrFmt(machine->tr("Copying the log file '%s' ..."),
    809                                                                 RTPathFilename(strFullSourceFilePath.c_str())).raw(), 1);
     808                                                                               RTPathFilename(strFullSourceFilePath.c_str())).raw(),
     809                                                                       1);
    810810                        if (FAILED(rc)) throw rc;
    811811
    812812                        int vrc = RTFileCopyEx(strFullSourceFilePath.c_str(), strFullTargetFilePath.c_str(), 0,
    813                                        MachineMoveVM::copyFileProgress, &taskMoveVM->m_pProgress);
     813                                               MachineMoveVM::copyFileProgress, &taskMoveVM->m_pProgress);
    814814                        if (RT_FAILURE(vrc))
    815815                        {
     
    820820                            taskMoveVM->errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    821821
    822                             throw machine->setError(VBOX_E_IPRT_ERROR,machine->tr(errorDesc.c_str()));
     822                            throw machine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, machine->tr(errorDesc.c_str()));
    823823                        }
    824824
    825825                        LogRelFunc(("The log file %s has been copied into the folder %s\n", strFullSourceFilePath.c_str(),
    826                                          strFullTargetFilePath.stripFilename().c_str()));
     826                                    strFullTargetFilePath.stripFilename().c_str()));
    827827
    828828                        /* save new file in case of restoring */
     
    12321232
    12331233        vrc = RTDirClose(hDir);
     1234        AssertRC(vrc);
    12341235    }
    12351236    else if (vrc == VERR_FILE_NOT_FOUND)
     
    12381239        errorsList.push_back(ErrorInfoItem(VERR_FILE_NOT_FOUND, errorDesc.c_str()));
    12391240
    1240         m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
    1241         rc = vrc;
     1241        rc = m_pMachine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    12421242    }
    12431243    else
     
    12461246        errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    12471247
    1248         throw m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
     1248/** @todo r=bird: document this throwing business, please!  Error handling is
     1249 *        a bit fishy here.  See also */
     1250        throw m_pMachine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    12491251    }
    12501252
     
    12701272                errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    12711273
    1272                 rc = m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
     1274                rc = m_pMachine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    12731275            }
    12741276            else
     
    13171319                    errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    13181320
    1319                     throw m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
     1321                    throw m_pMachine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    13201322                }
    13211323                ++it;
     
    13261328        else
    13271329        {
    1328             Utf8StrFmt errorDesc("Could not calculate the size of folder '%s' (%Rrc)", strRootFolder.c_str(), vrc);
     1330/** @todo r=bird: This only happens if RTDirOpen fails.  So, I'm not sure
     1331 * what you're going for here... See not about throwing in getFilesList(). */
     1332            Utf8StrFmt errorDesc("Could not calculate the size of folder '%s'", strRootFolder.c_str());
    13291333            errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    13301334
     
    15021506            errorsList.push_back(ErrorInfoItem(VBOX_E_IPRT_ERROR, errorDesc.c_str()));
    15031507
    1504             return m_pMachine->setError(VBOX_E_IPRT_ERROR, m_pMachine->tr(errorDesc.c_str()));
     1508            return m_pMachine->setErrorBoth(VBOX_E_IPRT_ERROR, vrc, m_pMachine->tr(errorDesc.c_str()));
    15051509        }
    15061510        /* same rule as above: count both the data which needs to
  • trunk/src/VBox/Main/src-server/MediumImpl.cpp

    r72999 r73003  
    36103610                int vrc = VDPluginLoadFromFilename(strPlugin.c_str());
    36113611                if (RT_FAILURE(vrc))
    3612                     throw setError(VBOX_E_NOT_SUPPORTED,
    3613                                    tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
    3614                                    i_vdError(vrc).c_str());
     3612                    throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     3613                                       tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
     3614                                       i_vdError(vrc).c_str());
    36153615            }
    36163616            else
     
    36333633        vrc = VDFilterAdd(pDisk, "CRYPT", VD_FILTER_FLAGS_READ | VD_FILTER_FLAGS_INFO, CryptoSettings.vdFilterIfaces);
    36343634        if (RT_FAILURE(vrc))
    3635             throw setError(VBOX_E_INVALID_OBJECT_STATE,
    3636                            tr("Failed to load the encryption filter: %s"),
    3637                            i_vdError(vrc).c_str());
     3635            throw setErrorBoth(VBOX_E_INVALID_OBJECT_STATE, vrc,
     3636                               tr("Failed to load the encryption filter: %s"),
     3637                               i_vdError(vrc).c_str());
    36383638
    36393639        it = pBase->m->mapProperties.find("CRYPT/KeyId");
     
    36863686                int vrc = VDPluginLoadFromFilename(strPlugin.c_str());
    36873687                if (RT_FAILURE(vrc))
    3688                     throw setError(VBOX_E_NOT_SUPPORTED,
    3689                                    tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
    3690                                    i_vdError(vrc).c_str());
     3688                    throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     3689                                       tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
     3690                                       i_vdError(vrc).c_str());
    36913691            }
    36923692            else
     
    37133713                           tr("The given password is incorrect"));
    37143714        else if (RT_FAILURE(vrc))
    3715             throw setError(VBOX_E_INVALID_OBJECT_STATE,
    3716                            tr("Failed to load the encryption filter: %s"),
    3717                            i_vdError(vrc).c_str());
     3715            throw setErrorBoth(VBOX_E_INVALID_OBJECT_STATE, vrc,
     3716                               tr("Failed to load the encryption filter: %s"),
     3717                               i_vdError(vrc).c_str());
    37183718
    37193719        VDDestroy(pDisk);
     
    60856085        catch (int aVRC)
    60866086        {
    6087             rc = setError(E_FAIL,
    6088                           tr("Could not update medium UUID references to parent '%s' (%s)"),
    6089                           m->strLocationFull.c_str(),
    6090                           i_vdError(aVRC).c_str());
     6087            rc = setErrorBoth(E_FAIL, aVRC,
     6088                              tr("Could not update medium UUID references to parent '%s' (%s)"),
     6089                              m->strLocationFull.c_str(),
     6090                              i_vdError(aVRC).c_str());
    60916091        }
    60926092
     
    74257425            {
    74267426                if (vrc == VERR_ACCESS_DENIED)
    7427                     return setError(VBOX_E_FILE_ERROR,
    7428                                     tr("Permission problem accessing the file for the medium '%s' (%Rrc)"),
    7429                                     locationFull.c_str(), vrc);
     7427                    return setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     7428                                        tr("Permission problem accessing the file for the medium '%s' (%Rrc)"),
     7429                                        locationFull.c_str(), vrc);
    74307430                else if (vrc == VERR_FILE_NOT_FOUND || vrc == VERR_PATH_NOT_FOUND)
    7431                     return setError(VBOX_E_FILE_ERROR,
    7432                                     tr("Could not find file for the medium '%s' (%Rrc)"),
    7433                                     locationFull.c_str(), vrc);
     7431                    return setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     7432                                        tr("Could not find file for the medium '%s' (%Rrc)"),
     7433                                        locationFull.c_str(), vrc);
    74347434                else if (aFormat.isEmpty())
    7435                     return setError(VBOX_E_IPRT_ERROR,
    7436                                     tr("Could not get the storage format of the medium '%s' (%Rrc)"),
    7437                                     locationFull.c_str(), vrc);
     7435                    return setErrorBoth(VBOX_E_IPRT_ERROR, vrc,
     7436                                        tr("Could not get the storage format of the medium '%s' (%Rrc)"),
     7437                                        locationFull.c_str(), vrc);
    74387438                else
    74397439                {
     
    80468046                    vrc = VDPluginLoadFromFilename(strPlugin.c_str());
    80478047                    if (RT_FAILURE(vrc))
    8048                         throw setError(VBOX_E_NOT_SUPPORTED,
    8049                                        tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
    8050                                        i_vdError(vrc).c_str());
     8048                        throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     8049                                           tr("Retrieving encryption settings of the image failed because the encryption plugin could not be loaded (%s)"),
     8050                                           i_vdError(vrc).c_str());
    80518051                }
    80528052                else
     
    80878087            pKeyStore->releaseSecretKey(itKeyId->second);
    80888088            if (vrc == VERR_VD_PASSWORD_INCORRECT)
    8089                 throw setError(VBOX_E_PASSWORD_INCORRECT, tr("The password to decrypt the image is incorrect"));
     8089                throw setErrorBoth(VBOX_E_PASSWORD_INCORRECT, vrc, tr("The password to decrypt the image is incorrect"));
    80908090            if (RT_FAILURE(vrc))
    8091                 throw setError(VBOX_E_INVALID_OBJECT_STATE, tr("Failed to load the decryption filter: %s"),
    8092                                i_vdError(vrc).c_str());
     8091                throw setErrorBoth(VBOX_E_INVALID_OBJECT_STATE, vrc, tr("Failed to load the decryption filter: %s"),
     8092                                   i_vdError(vrc).c_str());
    80938093        }
    80948094
     
    81178117                         pMedium->m->vdImageIfaces);
    81188118            if (RT_FAILURE(vrc))
    8119                 throw setError(VBOX_E_FILE_ERROR,
    8120                                tr("Could not open the medium storage unit '%s'%s"),
    8121                                pMedium->m->strLocationFull.c_str(),
    8122                                i_vdError(vrc).c_str());
     8119                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     8120                                   tr("Could not open the medium storage unit '%s'%s"),
     8121                                   pMedium->m->strLocationFull.c_str(),
     8122                                   i_vdError(vrc).c_str());
    81238123        }
    81248124
     
    84058405                             pMedium->m->vdImageIfaces);
    84068406                if (RT_FAILURE(vrc))
    8407                     throw setError(VBOX_E_FILE_ERROR,
    8408                                    tr("Could not open the medium storage unit '%s'%s"),
    8409                                    pMedium->m->strLocationFull.c_str(),
    8410                                    i_vdError(vrc).c_str());
     8407                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     8408                                       tr("Could not open the medium storage unit '%s'%s"),
     8409                                       pMedium->m->strLocationFull.c_str(),
     8410                                       i_vdError(vrc).c_str());
    84118411            }
    84128412
     
    84348434            {
    84358435                if (vrc == VERR_VD_INVALID_TYPE)
    8436                     throw setError(VBOX_E_FILE_ERROR,
    8437                                    tr("Parameters for creating the differencing medium storage unit '%s' are invalid%s"),
    8438                                    targetLocation.c_str(), i_vdError(vrc).c_str());
     8436                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     8437                                       tr("Parameters for creating the differencing medium storage unit '%s' are invalid%s"),
     8438                                       targetLocation.c_str(), i_vdError(vrc).c_str());
    84398439                else
    8440                     throw setError(VBOX_E_FILE_ERROR,
    8441                                    tr("Could not create the differencing medium storage unit '%s'%s"),
    8442                                    targetLocation.c_str(), i_vdError(vrc).c_str());
     8440                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     8441                                       tr("Could not create the differencing medium storage unit '%s'%s"),
     8442                                       targetLocation.c_str(), i_vdError(vrc).c_str());
    84438443            }
    84448444
     
    86878687        catch (int aVRC)
    86888688        {
    8689             rcTmp = setError(VBOX_E_FILE_ERROR,
    8690                              tr("Could not merge the medium '%s' to '%s'%s"),
    8691                              m->strLocationFull.c_str(),
    8692                              pTarget->m->strLocationFull.c_str(),
    8693                              i_vdError(aVRC).c_str());
     8689            rcTmp = setErrorBoth(VBOX_E_FILE_ERROR, aVRC,
     8690                                 tr("Could not merge the medium '%s' to '%s'%s"),
     8691                                 m->strLocationFull.c_str(),
     8692                                 pTarget->m->strLocationFull.c_str(),
     8693                                 i_vdError(aVRC).c_str());
    86948694        }
    86958695
     
    89348934                             pMedium->m->vdImageIfaces);
    89358935                if (RT_FAILURE(vrc))
    8936                     throw setError(VBOX_E_FILE_ERROR,
    8937                                    tr("Could not open the medium storage unit '%s'%s"),
    8938                                    pMedium->m->strLocationFull.c_str(),
    8939                                    i_vdError(vrc).c_str());
     8936                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     8937                                       tr("Could not open the medium storage unit '%s'%s"),
     8938                                       pMedium->m->strLocationFull.c_str(),
     8939                                       i_vdError(vrc).c_str());
    89408940            }
    89418941
     
    90049004                                 pMedium->m->vdImageIfaces);
    90059005                    if (RT_FAILURE(vrc))
    9006                         throw setError(VBOX_E_FILE_ERROR,
    9007                                        tr("Could not open the medium storage unit '%s'%s"),
    9008                                        pMedium->m->strLocationFull.c_str(),
    9009                                        i_vdError(vrc).c_str());
     9006                        throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9007                                           tr("Could not open the medium storage unit '%s'%s"),
     9008                                           pMedium->m->strLocationFull.c_str(),
     9009                                           i_vdError(vrc).c_str());
    90109010                }
    90119011
     
    90469046                }
    90479047                if (RT_FAILURE(vrc))
    9048                     throw setError(VBOX_E_FILE_ERROR,
    9049                                    tr("Could not create the clone medium '%s'%s"),
    9050                                    targetLocation.c_str(), i_vdError(vrc).c_str());
     9048                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9049                                       tr("Could not create the clone medium '%s'%s"),
     9050                                       targetLocation.c_str(), i_vdError(vrc).c_str());
    90519051
    90529052                size = VDGetFileSize(targetHdd, VD_LAST_IMAGE);
     
    92459245                             pMedium->m->vdImageIfaces);
    92469246                if (RT_FAILURE(vrc))
    9247                     throw setError(VBOX_E_FILE_ERROR,
    9248                                    tr("Could not open the medium storage unit '%s'%s"),
    9249                                    pMedium->m->strLocationFull.c_str(),
    9250                                    i_vdError(vrc).c_str());
     9247                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9248                                       tr("Could not open the medium storage unit '%s'%s"),
     9249                                       pMedium->m->strLocationFull.c_str(),
     9250                                       i_vdError(vrc).c_str());
    92519251            }
    92529252
     
    92919291                             NULL);
    92929292                if (RT_FAILURE(vrc))
    9293                     throw setError(VBOX_E_FILE_ERROR,
    9294                                    tr("Could not move medium '%s'%s"),
    9295                                    targetLocation.c_str(), i_vdError(vrc).c_str());
     9293                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9294                                       tr("Could not move medium '%s'%s"),
     9295                                       targetLocation.c_str(), i_vdError(vrc).c_str());
    92969296                size = VDGetFileSize(hdd, VD_LAST_IMAGE);
    92979297                logicalSize = VDGetSize(hdd, VD_LAST_IMAGE);
     
    93839383
    93849384            if (RT_FAILURE(vrc) && vrc != VERR_FILE_NOT_FOUND)
    9385                 throw setError(VBOX_E_FILE_ERROR,
    9386                                tr("Could not delete the medium storage unit '%s'%s"),
    9387                                location.c_str(), i_vdError(vrc).c_str());
     9385                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9386                                   tr("Could not delete the medium storage unit '%s'%s"),
     9387                                   location.c_str(), i_vdError(vrc).c_str());
    93889388
    93899389        }
     
    94789478                             pMedium->m->vdImageIfaces);
    94799479                if (RT_FAILURE(vrc))
    9480                     throw setError(VBOX_E_FILE_ERROR,
    9481                                    tr("Could not open the medium storage unit '%s'%s"),
    9482                                    pMedium->m->strLocationFull.c_str(),
    9483                                    i_vdError(vrc).c_str());
     9480                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9481                                       tr("Could not open the medium storage unit '%s'%s"),
     9482                                       pMedium->m->strLocationFull.c_str(),
     9483                                       i_vdError(vrc).c_str());
    94849484
    94859485                /* Done when we hit the media which should be reset */
     
    94919491            vrc = VDClose(hdd, true /* fDelete */);
    94929492            if (RT_FAILURE(vrc))
    9493                 throw setError(VBOX_E_FILE_ERROR,
    9494                                tr("Could not delete the medium storage unit '%s'%s"),
    9495                                location.c_str(), i_vdError(vrc).c_str());
     9493                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9494                                   tr("Could not delete the medium storage unit '%s'%s"),
     9495                                   location.c_str(), i_vdError(vrc).c_str());
    94969496
    94979497            /* next, create it again */
     
    95029502                         m->vdImageIfaces);
    95039503            if (RT_FAILURE(vrc))
    9504                 throw setError(VBOX_E_FILE_ERROR,
    9505                                tr("Could not open the medium storage unit '%s'%s"),
    9506                                parentLocation.c_str(), i_vdError(vrc).c_str());
     9504                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9505                                   tr("Could not open the medium storage unit '%s'%s"),
     9506                                   parentLocation.c_str(), i_vdError(vrc).c_str());
    95079507
    95089508            vrc = VDCreateDiff(hdd,
     
    95209520            {
    95219521                if (vrc == VERR_VD_INVALID_TYPE)
    9522                     throw setError(VBOX_E_FILE_ERROR,
    9523                                    tr("Parameters for creating the differencing medium storage unit '%s' are invalid%s"),
    9524                                    location.c_str(), i_vdError(vrc).c_str());
     9522                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9523                                       tr("Parameters for creating the differencing medium storage unit '%s' are invalid%s"),
     9524                                       location.c_str(), i_vdError(vrc).c_str());
    95259525                else
    9526                     throw setError(VBOX_E_FILE_ERROR,
    9527                                    tr("Could not create the differencing medium storage unit '%s'%s"),
    9528                                    location.c_str(), i_vdError(vrc).c_str());
     9526                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9527                                       tr("Could not create the differencing medium storage unit '%s'%s"),
     9528                                       location.c_str(), i_vdError(vrc).c_str());
    95299529            }
    95309530
     
    96089608                             pMedium->m->vdImageIfaces);
    96099609                if (RT_FAILURE(vrc))
    9610                     throw setError(VBOX_E_FILE_ERROR,
    9611                                    tr("Could not open the medium storage unit '%s'%s"),
    9612                                    pMedium->m->strLocationFull.c_str(),
    9613                                    i_vdError(vrc).c_str());
     9610                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9611                                       tr("Could not open the medium storage unit '%s'%s"),
     9612                                       pMedium->m->strLocationFull.c_str(),
     9613                                       i_vdError(vrc).c_str());
    96149614            }
    96159615
     
    96259625            {
    96269626                if (vrc == VERR_NOT_SUPPORTED)
    9627                     throw setError(VBOX_E_NOT_SUPPORTED,
    9628                                    tr("Compacting is not yet supported for medium '%s'"),
    9629                                    location.c_str());
     9627                    throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     9628                                       tr("Compacting is not yet supported for medium '%s'"),
     9629                                       location.c_str());
    96309630                else if (vrc == VERR_NOT_IMPLEMENTED)
    9631                     throw setError(E_NOTIMPL,
    9632                                    tr("Compacting is not implemented, medium '%s'"),
    9633                                    location.c_str());
     9631                    throw setErrorBoth(E_NOTIMPL, vrc,
     9632                                       tr("Compacting is not implemented, medium '%s'"),
     9633                                       location.c_str());
    96349634                else
    9635                     throw setError(VBOX_E_FILE_ERROR,
    9636                                    tr("Could not compact medium '%s'%s"),
    9637                                    location.c_str(),
    9638                                    i_vdError(vrc).c_str());
     9635                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9636                                       tr("Could not compact medium '%s'%s"),
     9637                                       location.c_str(),
     9638                                       i_vdError(vrc).c_str());
    96399639            }
    96409640        }
     
    97069706                             pMedium->m->vdImageIfaces);
    97079707                if (RT_FAILURE(vrc))
    9708                     throw setError(VBOX_E_FILE_ERROR,
    9709                                    tr("Could not open the medium storage unit '%s'%s"),
    9710                                    pMedium->m->strLocationFull.c_str(),
    9711                                    i_vdError(vrc).c_str());
     9708                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9709                                       tr("Could not open the medium storage unit '%s'%s"),
     9710                                       pMedium->m->strLocationFull.c_str(),
     9711                                       i_vdError(vrc).c_str());
    97129712            }
    97139713
     
    97249724            {
    97259725                if (vrc == VERR_NOT_SUPPORTED)
    9726                     throw setError(VBOX_E_NOT_SUPPORTED,
    9727                                    tr("Resizing to new size %llu is not yet supported for medium '%s'"),
    9728                                    task.mSize, location.c_str());
     9726                    throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     9727                                       tr("Resizing to new size %llu is not yet supported for medium '%s'"),
     9728                                       task.mSize, location.c_str());
    97299729                else if (vrc == VERR_NOT_IMPLEMENTED)
    9730                     throw setError(E_NOTIMPL,
    9731                                    tr("Resiting is not implemented, medium '%s'"),
    9732                                    location.c_str());
     9730                    throw setErrorBoth(E_NOTIMPL, vrc,
     9731                                       tr("Resiting is not implemented, medium '%s'"),
     9732                                       location.c_str());
    97339733                else
    9734                     throw setError(VBOX_E_FILE_ERROR,
    9735                                    tr("Could not resize medium '%s'%s"),
    9736                                    location.c_str(),
    9737                                    i_vdError(vrc).c_str());
     9734                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9735                                       tr("Could not resize medium '%s'%s"),
     9736                                       location.c_str(),
     9737                                       i_vdError(vrc).c_str());
    97389738            }
    97399739            size = VDGetFileSize(hdd, VD_LAST_IMAGE);
     
    98289828                         task.mVDImageIfaces);
    98299829            if (RT_FAILURE(vrc))
    9830                 throw setError(VBOX_E_FILE_ERROR,
    9831                                tr("Could not open the medium storage unit '%s'%s"),
    9832                                task.mFilename.c_str(),
    9833                                i_vdError(vrc).c_str());
     9830                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9831                                   tr("Could not open the medium storage unit '%s'%s"),
     9832                                   task.mFilename.c_str(),
     9833                                   i_vdError(vrc).c_str());
    98349834
    98359835            Utf8Str targetFormat(m->strFormat);
     
    98969896                                 pMedium->m->vdImageIfaces);
    98979897                    if (RT_FAILURE(vrc))
    9898                         throw setError(VBOX_E_FILE_ERROR,
    9899                                        tr("Could not open the medium storage unit '%s'%s"),
    9900                                        pMedium->m->strLocationFull.c_str(),
    9901                                        i_vdError(vrc).c_str());
     9898                        throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9899                                           tr("Could not open the medium storage unit '%s'%s"),
     9900                                           pMedium->m->strLocationFull.c_str(),
     9901                                           i_vdError(vrc).c_str());
    99029902                }
    99039903
     
    99169916                             task.mVDOperationIfaces);
    99179917                if (RT_FAILURE(vrc))
    9918                     throw setError(VBOX_E_FILE_ERROR,
    9919                                    tr("Could not create the imported medium '%s'%s"),
    9920                                    targetLocation.c_str(), i_vdError(vrc).c_str());
     9918                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     9919                                       tr("Could not create the imported medium '%s'%s"),
     9920                                       targetLocation.c_str(), i_vdError(vrc).c_str());
    99219921
    99229922                size = VDGetFileSize(targetHdd, VD_LAST_IMAGE);
     
    1009410094                int vrc = VDPluginLoadFromFilename(strPlugin.c_str());
    1009510095                if (RT_FAILURE(vrc))
    10096                     throw setError(VBOX_E_NOT_SUPPORTED,
    10097                                    tr("Encrypting the image failed because the encryption plugin could not be loaded (%s)"),
    10098                                    i_vdError(vrc).c_str());
     10096                    throw setErrorBoth(VBOX_E_NOT_SUPPORTED, vrc,
     10097                                       tr("Encrypting the image failed because the encryption plugin could not be loaded (%s)"),
     10098                                       i_vdError(vrc).c_str());
    1009910099            }
    1010010100            else
     
    1017210172                vrc = VDFilterAdd(pDisk, "CRYPT", VD_FILTER_FLAGS_WRITE, CryptoSettingsWrite.vdFilterIfaces);
    1017310173                if (RT_FAILURE(vrc))
    10174                     throw setError(VBOX_E_INVALID_OBJECT_STATE,
    10175                                    tr("Failed to load the encryption filter: %s"),
    10176                                    i_vdError(vrc).c_str());
     10174                    throw setErrorBoth(VBOX_E_INVALID_OBJECT_STATE, vrc,
     10175                                       tr("Failed to load the encryption filter: %s"),
     10176                                       i_vdError(vrc).c_str());
    1017710177            }
    1017810178            else if (task.mstrNewPasswordId.isNotEmpty() || task.mstrNewPassword.isNotEmpty())
     
    1020710207                             pMedium->m->vdImageIfaces);
    1020810208                if (RT_FAILURE(vrc))
    10209                     throw setError(VBOX_E_FILE_ERROR,
    10210                                    tr("Could not open the medium storage unit '%s'%s"),
    10211                                    pMedium->m->strLocationFull.c_str(),
    10212                                    i_vdError(vrc).c_str());
     10209                    throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     10210                                       tr("Could not open the medium storage unit '%s'%s"),
     10211                                       pMedium->m->strLocationFull.c_str(),
     10212                                       i_vdError(vrc).c_str());
    1021310213            }
    1021410214
     
    1022210222            vrc = VDPrepareWithFilters(pDisk, task.mVDOperationIfaces);
    1022310223            if (RT_FAILURE(vrc))
    10224                 throw setError(VBOX_E_FILE_ERROR,
    10225                                tr("Could not prepare disk images for encryption (%Rrc): %s"),
    10226                                vrc, i_vdError(vrc).c_str());
     10224                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc,
     10225                                   tr("Could not prepare disk images for encryption (%Rrc): %s"),
     10226                                   vrc, i_vdError(vrc).c_str());
    1022710227
    1022810228            thisLock.acquire();
  • trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp

    r69500 r73003  
    11711171    int vrc = RTPathUserHome(szHome, sizeof(szHome));
    11721172    if (RT_FAILURE(vrc))
    1173         return setError(E_FAIL,
    1174                         tr("Cannot determine user home directory (%Rrc)"),
    1175                         vrc);
     1173        return setErrorBoth(E_FAIL, vrc,
     1174                            tr("Cannot determine user home directory (%Rrc)"),
     1175                            vrc);
    11761176    strPath = szHome;
    11771177    return S_OK;
     
    12871287            m->strAutostartDatabasePath = aPath;
    12881288        else
    1289             rc = setError(E_FAIL,
    1290                           tr("Cannot set the autostart database path (%Rrc)"),
    1291                           vrc);
     1289            rc = setErrorBoth(E_FAIL, vrc,
     1290                              tr("Cannot set the autostart database path (%Rrc)"),
     1291                              vrc);
    12921292    }
    12931293    else
     
    12971297            m->strAutostartDatabasePath = "";
    12981298        else
    1299             rc = setError(E_FAIL,
    1300                           tr("Deleting the autostart database path failed (%Rrc)"),
    1301                           vrc);
     1299            rc = setErrorBoth(E_FAIL, vrc,
     1300                              tr("Deleting the autostart database path failed (%Rrc)"),
     1301                              vrc);
    13021302    }
    13031303
  • trunk/src/VBox/Main/src-server/USBProxyService.cpp

    r72833 r73003  
    949949    va_start(va, aText);
    950950    HRESULT rc = VirtualBoxBase::setErrorInternal(aResultCode,
    951                                                     COM_IIDOF(IHost),
    952                                                     "USBProxyService",
    953                                                     Utf8Str(aText, va),
    954                                                     false /* aWarning*/,
    955                                                     true /* aLogIt*/);
     951                                                  COM_IIDOF(IHost),
     952                                                  "USBProxyService",
     953                                                  Utf8Str(aText, va),
     954                                                  false /* aWarning*/,
     955                                                  true /* aLogIt*/);
    956956    va_end(va);
    957957    return rc;
  • trunk/src/VBox/Main/src-server/VFSExplorerImpl.cpp

    r69753 r73003  
    319319    }
    320320    else
    321         rc = setError(VBOX_E_FILE_ERROR, tr ("Can't open directory '%s' (%Rrc)"), m->strPath.c_str(), vrc);
     321        rc = setErrorBoth(VBOX_E_FILE_ERROR, vrc, tr ("Can't open directory '%s' (%Rrc)"), m->strPath.c_str(), vrc);
    322322
    323323    if (aTask->m_ptrProgress)
     
    362362            int vrc = RTPathJoin(szPath, sizeof(szPath), m->strPath.c_str(), (*it).c_str());
    363363            if (RT_FAILURE(vrc))
    364                 throw setError(E_FAIL, tr("Internal Error (%Rrc)"), vrc);
     364                throw setErrorBoth(E_FAIL, vrc, tr("Internal Error (%Rrc)"), vrc);
    365365            vrc = RTFileDelete(szPath);
    366366            if (RT_FAILURE(vrc))
    367                 throw setError(VBOX_E_FILE_ERROR, tr("Can't delete file '%s' (%Rrc)"), szPath, vrc);
     367                throw setErrorBoth(VBOX_E_FILE_ERROR, vrc, tr("Can't delete file '%s' (%Rrc)"), szPath, vrc);
    368368            if (aTask->m_ptrProgress)
    369369                aTask->m_ptrProgress->SetCurrentOperationProgress((ULONG)(fPercentStep * (float)i));
  • trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp

    r72919 r73003  
    401401            int vrc = com::GetVBoxUserHomeDirectory(szHomeDir, sizeof(szHomeDir));
    402402            if (RT_FAILURE(vrc))
    403                 throw setError(E_FAIL,
    404                                tr("Could not create the VirtualBox home directory '%s' (%Rrc)"),
    405                                szHomeDir, vrc);
     403                throw setErrorBoth(E_FAIL, vrc,
     404                                   tr("Could not create the VirtualBox home directory '%s' (%Rrc)"),
     405                                   szHomeDir, vrc);
    406406
    407407            unconst(m->strHomeDir) = szHomeDir;
     
    26282628        if (RT_FAILURE(vrc))
    26292629        {
    2630             rc = pTask->that->setError(E_FAIL, tr("Could not create the communication channel (%Rrc)"), vrc);
     2630            rc = pTask->that->setErrorBoth(E_FAIL, vrc, tr("Could not create the communication channel (%Rrc)"), vrc);
    26312631            break;
    26322632        }
     
    26732673                 * (pressing the Cancel button to close the Run As dialog) */
    26742674                if (vrc2 == VERR_CANCELLED)
    2675                     rc = pTask->that->setError(E_FAIL, tr("Operation canceled by the user"));
     2675                    rc = pTask->that->setErrorBoth(E_FAIL, vrc, tr("Operation canceled by the user"));
    26762676                else
    2677                     rc = pTask->that->setError(E_FAIL, tr("Could not launch a privileged process '%s' (%Rrc)"), exePath, vrc2);
     2677                    rc = pTask->that->setErrorBoth(E_FAIL, vrc, tr("Could not launch a privileged process '%s' (%Rrc)"), exePath, vrc2);
    26782678                break;
    26792679            }
     
    26852685            if (RT_FAILURE(vrc))
    26862686            {
    2687                 rc = pTask->that->setError(E_FAIL, tr("Could not launch a process '%s' (%Rrc)"), exePath, vrc);
     2687                rc = pTask->that->setErrorBoth(E_FAIL, vrc, tr("Could not launch a process '%s' (%Rrc)"), exePath, vrc);
    26882688                break;
    26892689            }
     
    27082708        if (SUCCEEDED(rc) && RT_FAILURE(vrc))
    27092709        {
    2710             rc = pTask->that->setError(E_FAIL, tr("Could not operate the communication channel (%Rrc)"), vrc);
     2710            rc = pTask->that->setErrorBoth(E_FAIL, vrc, tr("Could not operate the communication channel (%Rrc)"), vrc);
    27112711            break;
    27122712        }
     
    48564856            int vrc = RTDirCreateFullPath(strDir.c_str(), 0700);
    48574857            if (RT_FAILURE(vrc))
    4858                 return i_setErrorStatic(VBOX_E_IPRT_ERROR,
    4859                                         Utf8StrFmt(tr("Could not create the directory '%s' (%Rrc)"),
    4860                                                    strDir.c_str(),
    4861                                                    vrc));
     4858                return i_setErrorStaticBoth(VBOX_E_IPRT_ERROR, vrc,
     4859                                            Utf8StrFmt(tr("Could not create the directory '%s' (%Rrc)"),
     4860                                                       strDir.c_str(),
     4861                                                       vrc));
    48624862        }
    48634863        else
    4864             return i_setErrorStatic(VBOX_E_IPRT_ERROR,
    4865                                     Utf8StrFmt(tr("Directory '%s' does not exist"),
    4866                                                strDir.c_str()));
     4864            return i_setErrorStaticBoth(VBOX_E_IPRT_ERROR, VERR_FILE_NOT_FOUND,
     4865                                        Utf8StrFmt(tr("Directory '%s' does not exist"), strDir.c_str()));
    48674866    }
    48684867
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