Changeset 87949 in vbox for trunk/src/VBox/Main/src-server
- Timestamp:
- Mar 4, 2021 12:49:43 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143044
- Location:
- trunk/src/VBox/Main/src-server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-server/NATNetworkImpl.cpp
r87948 r87949 149 149 150 150 151 HRESULT NATNetwork::setErrorBusy() 152 { 153 return setError(E_FAIL, 154 "Unable to change settings" 155 " while NATNetwork instance is running"); 156 } 157 158 151 159 HRESULT NATNetwork::i_loadSettings(const settings::NATNetwork &data) 152 160 { … … 212 220 return setError(E_INVALIDARG, 213 221 tr("Network name cannot be empty")); 214 { 222 223 { 224 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 225 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 226 return setErrorBusy(); 227 228 /** @todo r=uwe who ensures there's no other network with that name? */ 229 215 230 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 216 231 if (aNetworkName == m->s.strNetworkName) … … 219 234 m->s.strNetworkName = aNetworkName; 220 235 } 236 237 221 238 AutoWriteLock vboxLock(m->pVirtualBox COMMA_LOCKVAL_SRC_POS); 222 239 HRESULT rc = m->pVirtualBox->i_saveSettings(); … … 296 313 297 314 { 315 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 316 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 317 return setErrorBusy(); 318 298 319 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 299 320 … … 377 398 { 378 399 { 400 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 401 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 402 return setErrorBusy(); 403 379 404 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 380 405 … … 440 465 441 466 { 467 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 468 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 469 return setErrorBusy(); 470 442 471 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 443 472 … … 475 504 { 476 505 { 506 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 507 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 508 return setErrorBusy(); 509 477 510 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 478 511 … … 612 645 { 613 646 { 647 AutoReadLock alockNatNetList(m->pVirtualBox->i_getNatNetLock() COMMA_LOCKVAL_SRC_POS); 648 if (m->pVirtualBox->i_isNatNetStarted(m->s.strNetworkName)) 649 return setErrorBusy(); 650 614 651 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 615 652 -
trunk/src/VBox/Main/src-server/VirtualBoxImpl.cpp
r86908 r87949 3465 3465 3466 3466 3467 /* 3468 * Export this to NATNetwork so that its setters can refuse to change 3469 * essential network settings when an VBoxNatNet instance is running. 3470 */ 3471 RWLockHandle *VirtualBox::i_getNatNetLock() const 3472 { 3473 return spMtxNatNetworkNameToRefCountLock; 3474 } 3475 3476 3477 /* 3478 * Export this to NATNetwork so that its setters can refuse to change 3479 * essential network settings when an VBoxNatNet instance is running. 3480 * The caller is expected to hold a read lock on i_getNatNetLock(). 3481 */ 3482 bool VirtualBox::i_isNatNetStarted(const Utf8Str &aNetworkName) const 3483 { 3484 return sNatNetworkNameToRefCount[aNetworkName] > 0; 3485 } 3486 3487 3467 3488 void VirtualBox::i_onCloudProviderListChanged(BOOL aRegistered) 3468 3489 {
Note:
See TracChangeset
for help on using the changeset viewer.