Ignore:
Timestamp:
Aug 12, 2009, 2:52:12 PM (15 years ago)
Author:
mies
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/BaseOverlay.cpp

    r5883 r5884  
    141141        time_t now = time(NULL);
    142142        BOOST_FOREACH( LinkDescriptor* ld, links ) {
    143                 // remote used as relay flag
    144                 if ( ld->relaying && difftime( now, ld->timeRelaying ) > 10)
    145                         ld->relaying = false;
    146143
    147144                // keep alives and not up? yes-> link connection request is stale!
     
    160157
    161158                if (!ld->up) continue;
     159
     160                // remote used as relay flag
     161                if ( ld->relaying && difftime( now, ld->timeRelaying ) > 10)
     162                        ld->relaying = false;
    162163
    163164                // drop links that are dropped and not used as relay
     
    240241        } else {
    241242                // destinastion myself? yes-> handle message
    242                 if (message->getDestinationNode() == nodeId)
    243                         handleMessage( message, NULL );
    244                 else
     243                if (message->getDestinationNode() == nodeId) {
     244                        logging_warn("Usually I should not route messages to myself!");
     245                        Message msg;
     246                        msg.encapsulate(message);
     247                        handleMessage( &msg, NULL );
     248                } else {
    245249                        // no->send message to next hop
    246250                        send( message, message->getDestinationNode() );
     251                }
    247252        }
    248253}
     
    331336        const ServiceID& service) {
    332337        message->setSourceNode(nodeId);
     338        message->setDestinationNode(remote);
    333339        message->setService(service);
    334         message->setDestinationNode(remote);
    335340        send( message, remote );
    336341}
     
    343348        }
    344349        message->setSourceNode(nodeId);
     350        message->setDestinationNode(ld->remoteNode);
     351
    345352        message->setSourceLink(ld->overlayId);
     353        message->setDestinationLink(ld->remoteLink);
     354
    346355        message->setService(ld->service);
    347         message->setDestinationNode(ld->remoteNode);
    348         message->setDestinationLink(ld->remoteLink);
    349356        return send( message, ld, ignore_down );
    350357}
     
    14761483        if( overlayMsg == NULL ) return false;
    14771484
     1485        // increase number of hops
     1486        overlayMsg->increaseNumHops();
     1487
    14781488        // refresh relay information
    14791489        refreshRelayInformation( overlayMsg, ld );
    1480 
    1481         // increase number of hops
    1482         overlayMsg->increaseNumHops();
    14831490
    14841491        // update route record
     
    15001507                        << " to " << overlayMsg->getDestinationNode()
    15011508                );
    1502 
    15031509                route( overlayMsg );
    15041510                delete overlayMsg;
Note: See TracChangeset for help on using the changeset viewer.