Changeset 5540


Ignore:
Timestamp:
Jul 31, 2009, 4:39:27 PM (15 years ago)
Author:
mies
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/SideportListener.cpp

    r5479 r5540  
    8787
    8888        BOOST_FOREACH( LinkDescriptor* link, overlay->links ){
    89                 if( (!link->localRelay.isUnspecified()) && link->remoteRelay == node && link->up)
     89                if( link->relay && link->remoteNode == node && link->up)
    9090                        return true;
    9191        }
     
    9898
    9999        BOOST_FOREACH( LinkDescriptor* link, overlay->links ){
    100                 if( (!link->localRelay.isUnspecified()) && link->localRelay == node && link->up)
     100                if( link->relay && link->localRelay == node && link->up)
    101101                        return true;
    102102        }
     
    111111        using namespace ariba::addressing;
    112112
    113         BOOST_FOREACH( LinkDescriptor* link, overlay->links ){
    114                 if(link->remoteNode == node){
    115                         if(overlay->bc == NULL) continue;
     113        LinkDescriptor* link = overlay->getSendDescriptor(node);
     114        if (link==NULL) return (Protocol)ret;
    116115
    117                         BaseCommunication::LinkDescriptor& bclink =
    118                                 overlay->bc->queryLocalLink(link->communicationId);
     116        BaseCommunication::LinkDescriptor& bclink =
     117                overlay->bc->queryLocalLink(link->communicationId);
    119118
    120                         if(bclink.isUnspecified()) continue;
    121                         if(bclink.localLocator == NULL) continue;
     119        if(bclink.isUnspecified()) return (Protocol)ret;
     120        if(bclink.localLocator == NULL) return (Protocol)ret;
    122121
    123                         const address_v* locator = bclink.remoteLocator;
     122        const address_v* locator = bclink.remoteLocator;
    124123
    125                         if( locator->instanceof<tcpip_endpoint>() ){
     124        if( locator->instanceof<tcpip_endpoint>() ){
    126125
    127                                 tcpip_endpoint tcpip = *locator;
    128                                 ret |= SideportListener::tcp;
     126                tcpip_endpoint tcpip = *locator;
     127                ret |= SideportListener::tcp;
    129128
    130                                 if( tcpip.address().is_v4() )
    131                                         ret |= SideportListener::ipv4;
     129                if( tcpip.address().is_v4() )
     130                        ret |= SideportListener::ipv4;
    132131
    133                                 if( tcpip.address().is_v6() )
    134                                         ret |= SideportListener::ipv6;
     132                if( tcpip.address().is_v6() )
     133                        ret |= SideportListener::ipv6;
    135134
    136                         }else if( locator->instanceof<rfcomm_endpoint>() ){
    137                                 ret |= SideportListener::rfcomm;
    138                         }
    139                 }
     135        }else if( locator->instanceof<rfcomm_endpoint>() ){
     136                ret |= SideportListener::rfcomm;
    140137        }
    141138
Note: See TracChangeset for help on using the changeset viewer.