VirtualBox

Changeset 50650 in vbox


Ignore:
Timestamp:
Feb 28, 2014 3:27:51 PM (11 years ago)
Author:
vboxsync
Message:

Main/MachineImpl: don't start the NAT network at SessionMachine::init() but do it at SessionMachine::BeginPowerUp(), otherwise we start the NAT network every time the VM settings are opened.

Location:
trunk/src/VBox/Main
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/MachineImpl.h

    r49976 r50650  
    12201220    ClientToken *mClientToken;
    12211221
     1222    int iNATNetworksStarted;
     1223
    12221224    static DECLCALLBACK(int) taskHandler(RTTHREAD thread, void *pvUser);
    12231225};
  • trunk/src/VBox/Main/src-server/HostDnsService.cpp

    r50355 r50650  
    289289        updateInfo();
    290290
    291     LogRel(("HostDnsMonitorProxy::GetDomainName:%s\n", m->info->domain.c_str()));
     291    LogRel(("HostDnsMonitorProxy::GetDomainName: %s\n", m->info->domain.c_str()));
    292292
    293293    Utf8Str(m->info->domain.c_str()).cloneTo(aDomainName);
     
    356356static void dumpHostDnsStrVector(const std::string& prefix, const std::vector<std::string>& v)
    357357{
    358     int i = 0;
     358    int i = 1;
    359359    for (std::vector<std::string>::const_iterator it = v.begin();
    360360         it != v.end();
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r50435 r50650  
    1287312873        unconst(mNetworkAdapters[slot]).createObject();
    1287412874        mNetworkAdapters[slot]->init(this, aMachine->mNetworkAdapters[slot]);
    12875 
    12876         NetworkAttachmentType_T type;
    12877         HRESULT hrc;
    12878         hrc = mNetworkAdapters[slot]->COMGETTER(AttachmentType)(&type);
    12879         if (   SUCCEEDED(hrc)
    12880             && type == NetworkAttachmentType_NATNetwork)
    12881         {
    12882             Bstr name;
    12883             hrc = mNetworkAdapters[slot]->COMGETTER(NATNetwork)(name.asOutParam());
    12884             if (SUCCEEDED(hrc))
    12885             {
    12886                 LogRel(("VM '%s' starts using NAT network '%ls'\n",
    12887                         mUserData->s.strName.c_str(), name.raw()));
    12888                 aMachine->lockHandle()->unlockWrite();
    12889                 mParent->i_natNetworkRefInc(name.raw());
    12890 #ifdef RT_LOCK_STRICT
    12891                 aMachine->lockHandle()->lockWrite(RT_SRC_POS);
    12892 #else
    12893                 aMachine->lockHandle()->lockWrite();
    12894 #endif
    12895             }
    12896         }
    1289712875    }
    1289812876
     
    1308613064    }
    1308713065
    13088     for (ULONG slot = 0; slot < mNetworkAdapters.size(); slot++)
    13089     {
    13090         NetworkAttachmentType_T type;
    13091         HRESULT hrc;
    13092 
    13093         hrc = mNetworkAdapters[slot]->COMGETTER(AttachmentType)(&type);
    13094         if (   SUCCEEDED(hrc)
    13095             && type == NetworkAttachmentType_NATNetwork)
    13096         {
    13097             Bstr name;
    13098             hrc = mNetworkAdapters[slot]->COMGETTER(NATNetwork)(name.asOutParam());
    13099             if (SUCCEEDED(hrc))
     13066    if (iNATNetworksStarted)
     13067    {
     13068        for (ULONG slot = 0; slot < mNetworkAdapters.size(); slot++)
     13069        {
     13070            NetworkAttachmentType_T type;
     13071            HRESULT hrc;
     13072
     13073            hrc = mNetworkAdapters[slot]->COMGETTER(AttachmentType)(&type);
     13074            if (   SUCCEEDED(hrc)
     13075                && type == NetworkAttachmentType_NATNetwork)
    1310013076            {
    13101                 multilock.release();
    13102                 LogRel(("VM '%s' stops using NAT network '%ls'\n",
    13103                         mUserData->s.strName.c_str(), name.raw()));
    13104                 mParent->i_natNetworkRefDec(name.raw());
    13105                 multilock.acquire();
     13077                Bstr name;
     13078                hrc = mNetworkAdapters[slot]->COMGETTER(NATNetwork)(name.asOutParam());
     13079                if (SUCCEEDED(hrc))
     13080                {
     13081                    multilock.release();
     13082                    LogRel(("VM '%s' stops using NAT network '%ls'\n",
     13083                            mUserData->s.strName.c_str(), name.raw()));
     13084                    mParent->i_natNetworkRefDec(name.raw());
     13085                    multilock.acquire();
     13086                }
    1310613087            }
    1310713088        }
     13089        iNATNetworksStarted--;
    1310813090    }
    1310913091
     
    1327513257    if (!mData->mSession.mProgress.isNull())
    1327613258        mData->mSession.mProgress->setOtherProgressObject(aProgress);
     13259
     13260    for (ULONG slot = 0; slot < mNetworkAdapters.size(); slot++)
     13261    {
     13262        NetworkAttachmentType_T type;
     13263        HRESULT hrc;
     13264        hrc = mNetworkAdapters[slot]->COMGETTER(AttachmentType)(&type);
     13265        if (   SUCCEEDED(hrc)
     13266            && type == NetworkAttachmentType_NATNetwork)
     13267        {
     13268            Bstr name;
     13269            hrc = mNetworkAdapters[slot]->COMGETTER(NATNetwork)(name.asOutParam());
     13270            if (SUCCEEDED(hrc))
     13271            {
     13272                LogRel(("VM '%s' starts using NAT network '%ls'\n",
     13273                        mUserData->s.strName.c_str(), name.raw()));
     13274                mPeer->lockHandle()->unlockWrite();
     13275                mParent->i_natNetworkRefInc(name.raw());
     13276#ifdef RT_LOCK_STRICT
     13277                mPeer->lockHandle()->lockWrite(RT_SRC_POS);
     13278#else
     13279                mPeer->lockHandle()->lockWrite();
     13280#endif
     13281            }
     13282        }
     13283    }
     13284
     13285    iNATNetworksStarted++;
    1327713286
    1327813287    LogFlowThisFunc(("returns S_OK.\n"));
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