VirtualBox

Changeset 67804 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Jul 5, 2017 2:53:27 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
116727
Message:

Main/Net (bugref:8905) canonicalize bridged interface name upon modification

File:
1 edited

Legend:

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

    r67792 r67804  
    487487    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
    488488
    489     if (mData->strBridgedName != aBridgedInterface)
     489    Bstr canonicalName = aBridgedInterface;
     490#ifdef RT_OS_DARWIN
     491    com::SafeIfaceArray<IHostNetworkInterface> hostNetworkInterfaces;
     492    ComPtr<IHost> host;
     493    HRESULT rc = mParent->i_getVirtualBox()->COMGETTER(Host)(host.asOutParam());
     494    if (SUCCEEDED(rc))
     495    {
     496        host->FindHostNetworkInterfacesOfType(HostNetworkInterfaceType_Bridged,
     497                                              ComSafeArrayAsOutParam(hostNetworkInterfaces));
     498        for (size_t i = 0; i < hostNetworkInterfaces.size(); ++i)
     499        {
     500            Bstr shortName;
     501            ComPtr<IHostNetworkInterface> ni = hostNetworkInterfaces[i];
     502            ni->COMGETTER(ShortName)(shortName.asOutParam());
     503            if (shortName == aBridgedInterface)
     504            {
     505                ni->COMGETTER(Name)(canonicalName.asOutParam());
     506                break;
     507            }
     508        }
     509    }
     510#endif /* RT_OS_DARWIN */
     511    if (Bstr(mData->strBridgedName) != canonicalName)
    490512    {
    491513        /* if an empty/null string is to be set, bridged interface must be
    492514         * turned off */
    493         if (aBridgedInterface.isEmpty()
     515        if (canonicalName.isEmpty()
    494516            && mData->mode == NetworkAttachmentType_Bridged)
    495517        {
     
    499521
    500522        mData.backup();
    501         mData->strBridgedName = aBridgedInterface;
     523        mData->strBridgedName = canonicalName;
    502524
    503525        // leave the lock before informing callbacks
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