Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9494 in orxonox.OLD for trunk/src/lib/network/synchronizeable.cc


Ignore:
Timestamp:
Jul 27, 2006, 10:44:28 AM (19 years ago)
Author:
bensch
Message:

merged the proxy back

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/network/synchronizeable.cc

    r9406 r9494  
    7272    this->networkStream->disconnectSynchronizeable(*this);
    7373
    74     if ( (SharedNetworkData::getInstance()->isMasterServer() || SharedNetworkData::getInstance()->isProxyServer() )
     74    // remove the message manager only by the server
     75    if ( (SharedNetworkData::getInstance()->isMasterServer() )
    7576           && this->beSynchronized() && this->getUniqueID() > 0 && !this->isA( CL_MESSAGE_MANAGER ) )
    7677      NetworkGameManager::getInstance()->removeSynchronizeable( this->getUniqueID() );
     
    213214      hasPermission = true;
    214215    // 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 ))
    216217      hasPermission = true;
    217218    // now check OWNER permissions
     
    222223      hasPermission = true;
    223224    // 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
    224226    else if( SharedNetworkData::getInstance()->isMasterServer() && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER ))
    225227      hasPermission = true;
    226228    // 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 ) )
    228231      hasPermission = true;
    229232    else
     
    354357      hasPermission = true;
    355358    // 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())
    357361      hasPermission = true;
    358362    // now check OWNER permissions
     
    366370      hasPermission = true;
    367371    // 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 ))
    369374      hasPermission = true;
    370375    else
     
    388393    else
    389394    {
    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 );
    391396      n = (*it)->getSizeFromBuf( stateTo->data + i, stateTo->dataLength - i );
    392397      //NETPRINTF(0)("%s::setvar %s %d\n", getClassCName(), (*it)->getName().c_str(), n);
     
    416421void Synchronizeable::registerVar( SynchronizeableVar * var )
    417422{
    418   //PRINTF(0)("ADDING VAR: %s\n", var->getName().c_str());
    419423  syncVarList.push_back( var );
    420424}
     
    428432int Synchronizeable::registerVarId( SynchronizeableVar * var )
    429433{
    430   //PRINTF(0)("ADDING VAR: %s\n", var->getName().c_str());
    431434  syncVarList.push_back( var );
    432435  var->setWatched( true );
Note: See TracChangeset for help on using the changeset viewer.