Changeset 9494 in orxonox.OLD for trunk/src/lib/network/synchronizeable.cc
- Timestamp:
- Jul 27, 2006, 10:44:28 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/network/synchronizeable.cc
r9406 r9494 72 72 this->networkStream->disconnectSynchronizeable(*this); 73 73 74 if ( (SharedNetworkData::getInstance()->isMasterServer() || SharedNetworkData::getInstance()->isProxyServer() ) 74 // remove the message manager only by the server 75 if ( (SharedNetworkData::getInstance()->isMasterServer() ) 75 76 && this->beSynchronized() && this->getUniqueID() > 0 && !this->isA( CL_MESSAGE_MANAGER ) ) 76 77 NetworkGameManager::getInstance()->removeSynchronizeable( this->getUniqueID() ); … … 213 214 hasPermission = true; 214 215 // now check PROXY_SERVER permissions 215 else if( SharedNetworkData::getInstance()->isProxyServer () && (*it)->checkPermission( PERMISSION_MASTER_SERVER ))216 else if( SharedNetworkData::getInstance()->isProxyServerActive() && (*it)->checkPermission( PERMISSION_PROXY_SERVER )) 216 217 hasPermission = true; 217 218 // now check OWNER permissions … … 222 223 hasPermission = true; 223 224 // SPECIAL: get write permissions if i am master server and i am able to overwrite the client stuff 225 #warning this could probably override also clients that are connected to another proxy: the master server overwrites it 224 226 else if( SharedNetworkData::getInstance()->isMasterServer() && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER )) 225 227 hasPermission = true; 226 228 // SPECIAL: get write permissions if i am proxy server and i am able to overwrite the client stuff 227 else if( SharedNetworkData::getInstance()->isProxyServer() && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER )) 229 else if( SharedNetworkData::getInstance()->isProxyServerActive() && this->networkStream->isUserClient(userId) 230 && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER ) ) 228 231 hasPermission = true; 229 232 else … … 354 357 hasPermission = true; 355 358 // now check PROXY_SERVER permissions 356 else if( this->networkStream->isUserProxyServer( userId ) && (*it)->checkPermission( PERMISSION_MASTER_SERVER )) 359 else if( this->networkStream->isUserProxyServerActive( userId ) && (*it)->checkPermission( PERMISSION_MASTER_SERVER ) 360 && SharedNetworkData::getInstance()->isClient()) 357 361 hasPermission = true; 358 362 // now check OWNER permissions … … 366 370 hasPermission = true; 367 371 // SPECIAL: get write permissions if im sending to a proxy server that does not own this sync 368 else if( this->networkStream->isUserProxyServer( userId ) && this->owner != SharedNetworkData::getInstance()->getHostID() && (*it)->checkPermission( PERMISSION_OWNER )) 372 else if( this->networkStream->isUserProxyServerActive( userId ) && SharedNetworkData::getInstance()->isClient() 373 && this->owner != SharedNetworkData::getInstance()->getHostID() && (*it)->checkPermission( PERMISSION_OWNER )) 369 374 hasPermission = true; 370 375 else … … 388 393 else 389 394 { 390 // PRINTF(0)("DONT SET VAR BECAUSE OF PERMISSION: %s %d %d %d %d %d %d\n", (*it)->getName().c_str(), (*it)->checkPermission( PERMISSION_MASTER_SERVER ), (*it)->checkPermission( PERMISSION_OWNER ), (*it)->checkPermission( PERMISSION_ALL ), networkStream->isUserServer( userId ), this->owner, userId );395 // PRINTF(0)("DONT SET VAR BECAUSE OF PERMISSION: %s perm: %d %d %d - %d %d %d\n", (*it)->getName().c_str(), (*it)->checkPermission( PERMISSION_MASTER_SERVER ), (*it)->checkPermission( PERMISSION_OWNER ), (*it)->checkPermission( PERMISSION_ALL ), networkStream->isUserMasterServer( userId ), this->owner, userId ); 391 396 n = (*it)->getSizeFromBuf( stateTo->data + i, stateTo->dataLength - i ); 392 397 //NETPRINTF(0)("%s::setvar %s %d\n", getClassCName(), (*it)->getName().c_str(), n); … … 416 421 void Synchronizeable::registerVar( SynchronizeableVar * var ) 417 422 { 418 //PRINTF(0)("ADDING VAR: %s\n", var->getName().c_str());419 423 syncVarList.push_back( var ); 420 424 } … … 428 432 int Synchronizeable::registerVarId( SynchronizeableVar * var ) 429 433 { 430 //PRINTF(0)("ADDING VAR: %s\n", var->getName().c_str());431 434 syncVarList.push_back( var ); 432 435 var->setWatched( true );
Note: See TracChangeset
for help on using the changeset viewer.