[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r15176 - in gnunet/src: include mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r15176 - in gnunet/src: include mesh |
Date: |
Fri, 6 May 2011 18:42:29 +0200 |
Author: bartpolot
Date: 2011-05-06 18:42:29 +0200 (Fri, 06 May 2011)
New Revision: 15176
Modified:
gnunet/src/include/gnunet_container_lib.h
gnunet/src/mesh/gnunet-service-mesh.c
Log:
Fixed wrong perception about how doubly linked list work
Modified: gnunet/src/include/gnunet_container_lib.h
===================================================================
--- gnunet/src/include/gnunet_container_lib.h 2011-05-06 16:31:41 UTC (rev
15175)
+++ gnunet/src/include/gnunet_container_lib.h 2011-05-06 16:42:29 UTC (rev
15176)
@@ -715,6 +715,7 @@
/* ******************** doubly-linked list *************** */
+/* To avoid mistakes: head->prev == tail->next == NULL */
/**
* Insert an element at the head of a DLL. Assumes that head, tail and
Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c 2011-05-06 16:31:41 UTC (rev
15175)
+++ gnunet/src/mesh/gnunet-service-mesh.c 2011-05-06 16:42:29 UTC (rev
15176)
@@ -348,10 +348,7 @@
c = clients_head;
while(NULL != c) {
if(c->handle == client) return c;
- if(c == clients_tail)
- return NULL;
- else
- c = c->next;
+ c = c->next;
}
return NULL;
}
@@ -445,12 +442,9 @@
if(p->peers[p->length-1] == peer_info->id) {
break;
}
- if(p != peer_info->t->paths_tail) {
- p = p->next;
- } else {
- // TODO ERROR Path not found
- }
+ p = p->next;
}
+ if(p == NULL) return 0; // TODO Notify ERROR Path not found
size_needed = sizeof(struct GNUNET_MESH_ManipulatePath)
+ p->length * sizeof(struct GNUNET_PeerIdentity);
@@ -686,7 +680,6 @@
} else {
c = c->next;
}
- if(c == clients_head) return; /* Tail already processed? */
}
return;
}
@@ -778,7 +771,6 @@
GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
return;
}
- if(t == c->tunnels_tail) break;
t = t->next;
}
/* FIXME: calloc? Is NULL != 0 on any platform? */
@@ -898,22 +890,18 @@
/* Tunnel exists? */
tid = ntohl(peer_msg->tunnel_id);
- if(NULL == (t = c->tunnels_head)) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
+ t = c->tunnels_head;
while(NULL != t) {
if(t->tid == tid) {
break;
}
- if(t == c->tunnels_tail) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
t = t->next;
}
+ if(NULL == t) {
+ GNUNET_break(0);
+ GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
+ return;
+ }
/* Does client own tunnel? */
if(t->client->handle != client) {
@@ -1005,6 +993,11 @@
}
t = t->next;
}
+ if(NULL == t) {
+ GNUNET_break(0);
+ GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
+ return;
+ }
/* Does client own tunnel? */
if(t->client->handle != client) {
@@ -1028,9 +1021,6 @@
} else {
p = p->next;
}
- if(p == t->paths_head) {
- break;
- }
}
/*Delete peer info */
@@ -1046,9 +1036,6 @@
} else {
peer_info = peer_info->next;
}
- if(peer_info == t->peers_head) {
- break;
- }
}
GNUNET_PEER_change_rc(peer_id, -1);
@@ -1093,22 +1080,18 @@
/* Tunnel exists? */
tid = ntohl(connect_msg->tunnel_id);
- if(NULL == (t = c->tunnels_head)) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
+ t = c->tunnels_head;
while(NULL != t) {
if(t->tid == tid) {
break;
}
- if(t == c->tunnels_tail) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
t = t->next;
}
+ if(NULL == t) {
+ GNUNET_break(0);
+ GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
+ return;
+ }
/* Does client own tunnel? */
if(t->client->handle != client) {
@@ -1159,22 +1142,18 @@
/* Tunnel exists? */
tid = ntohl(data_msg->tunnel_id);
- if(NULL == (t = c->tunnels_head)) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
+ t = c->tunnels_head;
while(NULL != t) {
if(t->tid == tid) {
break;
}
- if(t == c->tunnels_tail) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
t = t->next;
}
+ if(NULL == t) {
+ GNUNET_break(0);
+ GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
+ return;
+ }
/* Does client own tunnel? */
if(t->client->handle != client) {
@@ -1222,22 +1201,18 @@
/* Tunnel exists? */
tid = ntohl(data_msg->tunnel_id);
- if(NULL == (t = c->tunnels_head)) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
+ t = c->tunnels_head;
while(NULL != t) {
if(t->tid == tid) {
break;
}
- if(t == c->tunnels_tail) {
- GNUNET_break(0);
- GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
- return;
- }
t = t->next;
}
+ if(NULL == t) {
+ GNUNET_break(0);
+ GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
+ return;
+ }
/* Does client own tunnel? */
if(t->client->handle != client) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r15176 - in gnunet/src: include mesh,
gnunet <=