Changeset 3694 for source


Ignore:
Timestamp:
May 26, 2009, 9:42:23 AM (15 years ago)
Author:
mies
Message:

fixed discovery issue, when no successor/predecessor is available

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/modules/chord/Chord.cpp

    r3693 r3694  
    288288                        dmsg->setTTL(dmsg->getTTL() - 1);
    289289
    290                         const route_item* item;
    291                         if (dmsg->getFollowType() == Discovery::successor) item
    292                                         = table->get(*table->get_successor());
    293                         else item = table->get(*table->get_predesessor());
     290                        const route_item* item = NULL;
     291                        if (dmsg->getFollowType() == Discovery::successor &&
     292                                        table->get_successor() != NULL) {
     293                                item = table->get(*table->get_successor());
     294                        } else {
     295                                if (table->get_predesessor()!=NULL)
     296                                        item = table->get(*table->get_predesessor());
     297                        }
     298                        if (item == NULL) break;
    294299                        logging_debug("routing discovery message to succ/pred "
    295300                                        << item->id.toString() );
Note: See TracChangeset for help on using the changeset viewer.