Commit c7f5444d authored by Bhavesh Yadav's avatar Bhavesh Yadav

Missed changes from chord.c

parent 7ad0f169
......@@ -168,7 +168,7 @@ void initChordServer(sockaddr_t serverAddr) {
pthread_t stabilizer;
pthread_create(&stabilizer,NULL,periodicStabilize,NULL);
pthread_detach(stabilizer);
FILE *configFile = fopen(".chordConfig","a");
FILE *configFile = fopen(".chordConfig","a+");
chord.node.socketAddr = serverAddr;
chord.node.nodeId = nodeToId(&chord.node.socketAddr);
int id = nodeToId(&serverAddr);
......@@ -225,26 +225,34 @@ void initChordStructure(struct sockaddr_in *joinNode,sockaddr_t socketAddrServer
Node closestPreceedingNode(int id){
int m= MAXLOCATIONS;
Node* f=chord.fingerTable[0];
Node maxNode;
for (int i = m-1; i >=0; i--)
{
int nextId = chord.fingerTable[i]->nodeId;
if(maxNode.nodeId < nextId)
maxNode = *chord.fingerTable[i];
printf("nextid: %d\n",nextId);
if (nextId>chord.node.nodeId && nextId<=id)
if (nextId>chord.node.nodeId && nextId<id)
{
return *chord.fingerTable[i];
}
/// To handle edge case
}
/// To handle edge case
if(chord.node.nodeId<chord.predecessor.nodeId)
return chord.node;
else if(chord.node.nodeId>chord.successor.nodeId)
return chord.successor;
}
else {
puts("returned max node");
return maxNode;
}
// strcpy(ip,f[0].ip); //????
}
Node findSuccessor(int id, bool fixFinger){
printf("successor: %d, pred: %d",chord.successor.nodeId,chord.predecessor.nodeId);
printFingerTable();
// printFingerTable();
if(chord.predecessor.nodeId == chord.node.nodeId) {
return chord.node;
}else if(id<=chord.node.nodeId && id > chord.predecessor.nodeId)
......@@ -253,8 +261,15 @@ Node findSuccessor(int id, bool fixFinger){
{
return chord.successor;
}
else
{
if(chord.node.nodeId<chord.predecessor.nodeId){
if(id>chord.predecessor.nodeId || id <=chord.node.nodeId)
return chord.node;
}
if(chord.node.nodeId>chord.successor.nodeId) {
if(id>chord.node.nodeId || id<=chord.successor.nodeId) {
return chord.successor;
}
}
Node preceedingNode = closestPreceedingNode(id);
if(fixFinger){
char *msg ,buffer[1000];
......@@ -266,9 +281,8 @@ Node findSuccessor(int id, bool fixFinger){
sendUDPToNode(msg,preceedingNode,true,buffer);
//
}
printf("Returning preceeding node : %d",preceedingNode.nodeId);
printf("Returning forwarding node : %d\n",preceedingNode.nodeId);
return preceedingNode;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment