[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34160 - gnunet/src/dht
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34160 - gnunet/src/dht |
Date: |
Sun, 17 Aug 2014 13:01:09 +0200 |
Author: supriti
Date: 2014-08-17 13:01:09 +0200 (Sun, 17 Aug 2014)
New Revision: 34160
Modified:
gnunet/src/dht/gnunet-service-xdht_neighbours.c
gnunet/src/dht/gnunet-service-xdht_routing.c
Log:
Added correct routing table entry in trail setup
Modified: gnunet/src/dht/gnunet-service-xdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_neighbours.c 2014-08-16 19:23:37 UTC
(rev 34159)
+++ gnunet/src/dht/gnunet-service-xdht_neighbours.c 2014-08-17 11:01:09 UTC
(rev 34160)
@@ -1133,7 +1133,7 @@
pending = GNUNET_malloc (sizeof (struct P2PPendingMessage) + msize);
pending->importance = 0;
- pending->timeout = GNUNET_TIME_relative_to_absolute (GET_TIMEOUT);
+ pending->timeout = GNUNET_TIME_relative_to_absolute (GET_TIMEOUT); //TODO:
Change it
tsrm = (struct PeerTrailSetupResultMessage *) &pending[1];
pending->msg = &tsrm->header;
tsrm->header.size = htons (msize);
@@ -1145,9 +1145,8 @@
tsrm->ulitmate_destination_finger_value =
GNUNET_htonll (ultimate_destination_finger_value);
peer_list = (struct GNUNET_PeerIdentity *) &tsrm[1];
-
memcpy (peer_list, trail_peer_list, trail_length * sizeof (struct
GNUNET_PeerIdentity));
-
+
/* Send the message to chosen friend. */
GNUNET_CONTAINER_DLL_insert_tail (target_friend->head, target_friend->tail,
pending);
target_friend->pending_count++;
@@ -4133,7 +4132,6 @@
trail_length = (msize - sizeof (struct PeerTrailSetupMessage))/
sizeof (struct GNUNET_PeerIdentity);
-
GNUNET_STATISTICS_update (GDS_stats,
gettext_noop
("# Bytes received from other peers"), msize,
@@ -4206,7 +4204,6 @@
return GNUNET_OK;
}
- GDS_ROUTING_add (trail_id, *peer, my_identity);
if (trail_length > 0)
target_friend =
GNUNET_CONTAINER_multipeermap_get (friend_peermap,
@@ -4220,13 +4217,15 @@
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
-
+
+ GDS_ROUTING_add (trail_id, target_friend->id, my_identity);
GDS_NEIGHBOURS_send_trail_setup_result (source,
my_identity,
target_friend, trail_length,
trail_peer_list,
is_predecessor,
final_dest_finger_val,trail_id);
+
}
else /* I'm not the final destination. */
{
@@ -4243,13 +4242,14 @@
memcpy (peer_list, trail_peer_list,
trail_length * sizeof (struct GNUNET_PeerIdentity));
peer_list[trail_length] = my_identity;
-
+
GDS_NEIGHBOURS_send_trail_setup (source,
final_dest_finger_val,
next_peer.best_known_destination,
target_friend, trail_length + 1,
peer_list,
is_predecessor, trail_id,
next_peer.trail_id);
+ GNUNET_free_non_null (peer_list);
}
else
GDS_NEIGHBOURS_send_trail_setup (source,
@@ -4295,15 +4295,15 @@
}
trail_result = (const struct PeerTrailSetupResultMessage *) message;
- trail_length = (msize - sizeof (struct PeerTrailSetupResultMessage))/
- sizeof (struct GNUNET_PeerIdentity);
if ((msize - sizeof (struct PeerTrailSetupResultMessage)) %
sizeof (struct GNUNET_PeerIdentity) != 0)
{
GNUNET_break_op (0);
return GNUNET_OK;
}
-
+ trail_length = (msize - sizeof (struct PeerTrailSetupResultMessage))/
+ sizeof (struct GNUNET_PeerIdentity);
+
GNUNET_STATISTICS_update (GDS_stats,
gettext_noop
("# Bytes received from other peers"), msize,
@@ -4332,13 +4332,6 @@
peer));
}
- /* If I am my own finger identity, error. */
- if (0 == GNUNET_CRYPTO_cmp_peer_identity (&my_identity, &finger_identity))
- {
- GNUNET_break_op (0);
- return GNUNET_SYSERR;
- }
-
GDS_ROUTING_add (trail_id, my_identity, *peer);
finger_table_add (finger_identity, trail_peer_list, trail_length,
is_predecessor, ulitmate_destination_finger_value,
trail_id);
@@ -4353,7 +4346,7 @@
GNUNET_break_op(0);
return GNUNET_SYSERR;
}
-
+ //TODO; return -2.
if ((trail_length + 1) == my_index)
{
DEBUG ("Found twice in trail.\n");
@@ -4361,6 +4354,7 @@
return GNUNET_SYSERR;
}
+ //TODO; Refactor code here and above to check if sender peer is correct
if (my_index == 0)
{
if(trail_length > 1)
@@ -4392,12 +4386,7 @@
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- if (0 == (GNUNET_CRYPTO_cmp_peer_identity (&(trail_result->querying_peer),
-
&(trail_result->finger_identity))))
- {
- GNUNET_break_op (0);
- return GNUNET_SYSERR;
- }
+
GDS_ROUTING_add (trail_id, next_hop, *peer);
GDS_NEIGHBOURS_send_trail_setup_result (querying_peer, finger_identity,
target_friend, trail_length,
trail_peer_list,
@@ -5799,7 +5788,7 @@
struct GNUNET_PeerIdentity *next_hop;
struct GNUNET_HashCode trail_id;
/* FIXME: Just for check, remove it afterwards. Here finger is a friend.
- hence trail length should be 0.*/
+ hence trail length should be 0*/
GNUNET_assert (0 == remove_finger->trail_list[0].trail_length);
GNUNET_assert (GNUNET_YES == (remove_finger->trail_list[0].is_present));
trail_id = remove_finger->trail_list[0].trail_id;
Modified: gnunet/src/dht/gnunet-service-xdht_routing.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_routing.c 2014-08-16 19:23:37 UTC
(rev 34159)
+++ gnunet/src/dht/gnunet-service-xdht_routing.c 2014-08-17 11:01:09 UTC
(rev 34160)
@@ -177,6 +177,7 @@
GNUNET_free (remove_entry);
return GNUNET_YES;
}
+
return GNUNET_NO;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34160 - gnunet/src/dht,
gnunet <=