Changeset 5803 for source/ariba/overlay/BaseOverlay.cpp
- Timestamp:
- Aug 10, 2009, 5:55:19 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
source/ariba/overlay/BaseOverlay.cpp
r5779 r5803 118 118 // get descriptor of first hop 119 119 rld = getDescriptor(rlid); 120 if (rld!=NULL) { 121 // is first hop a relay path use local relay 122 if ( rld->relay ) relayNode = rld->localRelay; 123 124 // no-> a proper relay node has been found 125 else relayNode = rld->remoteNode; 126 } 120 121 // is first hop a relay path use local relay 122 if ( rld->relay ) relayNode = rld->localRelay; 123 124 // no-> a proper relay node has been found 125 else relayNode = rld->remoteNode; 127 126 } 128 127 … … 148 147 lp->service == OverlayInterface::OVERLAY_SERVICE_ID && 149 148 lp->relay == false && 150 lp->up) { 151 152 // std::cout << "using relay node: " << lp->remoteNode.toString() << std::endl; 149 lp->up) 153 150 return lp; 154 }155 151 156 152 return NULL; … … 1156 1152 // delegate data message 1157 1153 listener->onMessage( overlayMsg, 1158 overlayMsg->getSourceNode(), ld ==NULL ? LinkID::UNSPECIFIED : ld->overlayId );1154 overlayMsg->getSourceNode(), ld->overlayId ); 1159 1155 1160 1156 ret = true; … … 1395 1391 RelayMessage* relayMsg = overlayMsg->decapsulate<RelayMessage>(); 1396 1392 1397 // mark incoming link as relay1398 if (ld!=NULL) ld->markAsRelay();1399 1400 // am I the destination of this message? yes->1401 if (relayMsg->getDestNode() == nodeId ) {1402 // deliver relay message locally!1403 logging_debug("Relay message reached destination. Handling the message.");1404 handleMessage( relayMsg, relayMsg->getDestLink(), LinkID::UNSPECIFIED, remoteNode );1405 ret = true;1406 break;1407 }1408 1409 1393 // is relay message informative? 1410 1394 switch (relayMsg->getType()) { … … 1416 1400 << " destination " << relayMsg->getDestNode() ); 1417 1401 1402 // mark incoming link as relay 1403 if (ld!=NULL) ld->markAsRelay(); 1404 1405 // am I the destination of this message? yes-> 1406 if (relayMsg->getDestNode() == nodeId ) { 1407 // deliver relay message locally! 1408 logging_debug("Relay message reached destination. Handling the message."); 1409 handleMessage( relayMsg, relayMsg->getDestLink(), LinkID::UNSPECIFIED, remoteNode ); 1410 ret = true; 1411 break; 1412 } 1413 1418 1414 // create route message 1419 1415 OverlayMsg _overMsg( *overlayMsg ); 1420 relayMsg->setType( RelayMessage::typeRoute ); 1421 _overMsg.encapsulate( relayMsg ); 1416 RelayMessage _relayMsg( *relayMsg ); 1417 _relayMsg.setType( RelayMessage::typeRoute ); 1418 _overMsg.encapsulate( &_relayMsg ); 1422 1419 1423 1420 // forward message … … 1439 1436 << " destination " << relayMsg->getDestNode() ); 1440 1437 1438 // mark incoming link as relay 1439 if (ld!=NULL) ld->markAsRelay(); 1440 1441 // am I the destination of this message? yes-> 1442 if (relayMsg->getDestNode() == nodeId ) { 1443 // deliver relay message locally! 1444 logging_debug("Relay message reached destination. Handling the message."); 1445 handleMessage( relayMsg, relayMsg->getDestLink(), LinkID::UNSPECIFIED, remoteNode ); 1446 ret = true; 1447 break; 1448 } 1449 1441 1450 // am I the relay for this message? yes-> 1442 1451 if (relayMsg->getRelayNode() == nodeId ) { 1443 1452 logging_debug("I'm the relay for this message. Sending to destination."); 1444 1453 OverlayMsg _overMsg( *overlayMsg ); 1445 _overMsg.encapsulate(relayMsg); 1454 RelayMessage _relayMsg( *relayMsg ); 1455 _overMsg.encapsulate(&_relayMsg); 1446 1456 1447 1457 /// this must be handled by using relay link! … … 1607 1617 1608 1618 // missed more than four keep-alive messages (10 sec)? -> drop link 1609 if (ld->keepAliveMissed > 8) {1619 if (ld->keepAliveMissed > 4) { 1610 1620 logging_info( "Link connection request is stale, closing: " << ld ); 1611 1621 oldlinks.push_back( ld );
Note:
See TracChangeset
for help on using the changeset viewer.