VirtualBox

Changeset 66944 in vbox


Ignore:
Timestamp:
May 17, 2017 6:50:12 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
115476
Message:

Main/Machine: Streamline API default handling for network adapters (minimizes config file size, potential compatibility issue!), serial and parallel ports. Establish API default handling pattern when loading settings, which can be applied elsewhere later if necessary.

File:
1 edited

Legend:

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

    r66943 r66944  
    338338            mBIOSSettings->i_applyDefaults(aOsType);
    339339
    340             /* Apply network adapters defaults */
    341             for (ULONG slot = 0; slot < mNetworkAdapters.size(); ++slot)
    342                 mNetworkAdapters[slot]->i_applyDefaults(aOsType);
    343 
    344             /* Apply serial port defaults */
    345             for (ULONG slot = 0; slot < RT_ELEMENTS(mSerialPorts); ++slot)
    346                 mSerialPorts[slot]->i_applyDefaults(aOsType);
    347 
    348340            /* Let the OS type select 64-bit ness. */
    349341            mHWData->mLongMode = aOsType->i_is64Bit()
     
    353345            mHWData->mX2APIC = aOsType->i_recommendedX2APIC();
    354346        }
     347
     348        /* Apply network adapters defaults */
     349        for (ULONG slot = 0; slot < mNetworkAdapters.size(); ++slot)
     350            mNetworkAdapters[slot]->i_applyDefaults(aOsType);
     351
     352        /* Apply serial port defaults */
     353        for (ULONG slot = 0; slot < RT_ELEMENTS(mSerialPorts); ++slot)
     354            mSerialPorts[slot]->i_applyDefaults(aOsType);
    355355
    356356        /* Apply parallel port defaults */
     
    89358935    try
    89368936    {
     8937        GuestOSType *pGuestOSType;
     8938        rc = mParent->i_findGuestOSType(Bstr(mUserData->s.strOsType).raw(),
     8939                                        pGuestOSType);
     8940        if (FAILED(rc))
     8941            return rc;
     8942
    89378943        /* The hardware version attribute (optional). */
    89388944        mHWData->mHWVersion = data.strVersion;
     
    90839089        if (FAILED(rc)) return rc;
    90849090
    9085         // network adapters
     9091        // network adapters (establish array size first and apply defaults, to
     9092        // ensure reading the same settings as we saved, since the list skips
     9093        // adapters having defaults)
    90869094        size_t newCount = Global::getMaxNetworkAdapters(mHWData->mChipsetType);
    90879095        size_t oldCount = mNetworkAdapters.size();
     
    90979105        else if (newCount < oldCount)
    90989106            mNetworkAdapters.resize(newCount);
     9107        for (unsigned i = 0; i < mNetworkAdapters.size(); i++)
     9108            mNetworkAdapters[i]->i_applyDefaults(pGuestOSType);
    90999109        for (settings::NetworkAdaptersList::const_iterator
    91009110             it = data.llNetworkAdapters.begin();
     
    91139123        // settings as we saved, since the list skips ports having defaults)
    91149124        for (unsigned i = 0; i < RT_ELEMENTS(mSerialPorts); i++)
    9115             mSerialPorts[i]->i_applyDefaults(NULL);
     9125            mSerialPorts[i]->i_applyDefaults(pGuestOSType);
    91169126        for (settings::SerialPortsList::const_iterator
    91179127             it = data.llSerialPorts.begin();
     
    1041810428            if (mNetworkAdapters[slot])
    1041910429            {
     10430                if (mNetworkAdapters[slot]->i_hasDefaults())
     10431                    continue;
     10432
    1042010433                rc = mNetworkAdapters[slot]->i_saveSettings(nic);
    1042110434                if (FAILED(rc)) throw rc;
Note: See TracChangeset for help on using the changeset viewer.

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