[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34137 - gnunet/src/dht
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34137 - gnunet/src/dht |
Date: |
Sun, 10 Aug 2014 23:25:18 +0200 |
Author: supriti
Date: 2014-08-10 23:25:18 +0200 (Sun, 10 Aug 2014)
New Revision: 34137
Modified:
gnunet/src/dht/gnunet-service-xdht_neighbours.c
Log:
Xvine: Fixes
Modified: gnunet/src/dht/gnunet-service-xdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-xdht_neighbours.c 2014-08-10 20:04:15 UTC
(rev 34136)
+++ gnunet/src/dht/gnunet-service-xdht_neighbours.c 2014-08-10 21:25:18 UTC
(rev 34137)
@@ -1719,6 +1719,29 @@
#if 0
/**
+ *
+ *
+ */
+void
+test_print_trail (struct GNUNET_PeerIdentity *trail,
+ unsigned int trail_length)
+{
+ struct GNUNET_PeerIdentity print_peer;
+ int i;
+
+ FPRINTF (stderr,_("\nSUPU %s, %s, %d,trail_length = %d"),
+ __FILE__, __func__,__LINE__,trail_length);
+ for (i =0 ; i< trail_length; i++)
+ {
+ print_peer = trail[i];
+ FPRINTF (stderr,_("\nSUPU %s, %s, %d,trail[%d]=%s"),
+ __FILE__, __func__,__LINE__,i,GNUNET_i2s(&print_peer));
+ }
+}
+#endif
+
+#if 0
+/**
* This is a test function to print all the entries of friend table.
*/
static void
@@ -4408,7 +4431,7 @@
if(0 != GNUNET_CRYPTO_cmp_peer_identity (&trail_1[i],&trail_2[j]))
continue;
- *joined_trail_len = i + (trail_2_len - j) + 1;
+ *joined_trail_len = i + (trail_2_len - j);
joined_trail = GNUNET_malloc (*joined_trail_len *
sizeof(struct GNUNET_PeerIdentity));
@@ -4422,7 +4445,7 @@
/* Increment j as entry stored is same as entry stored at i*/
j = j+1;
- /* Copy all the elements from j+1 to trail_2_len-1 to joined trail.*/
+ /* Copy all the elements from j to trail_2_len-1 to joined trail.*/
while((k < *joined_trail_len) && (j < trail_2_len));
{
joined_trail[k] = trail_2[j];
@@ -4438,12 +4461,13 @@
*joined_trail_len = trail_1_len + trail_2_len + 1;
joined_trail = GNUNET_malloc (*joined_trail_len *
sizeof(struct GNUNET_PeerIdentity));
- i = 0;
- while( i < trail_1_len)
+
+
+ for(i = 0; i < trail_1_len;i++)
{
joined_trail[i] = trail_1[i];
- i++;
}
+
joined_trail[i] = my_identity;
i++;
@@ -4451,6 +4475,12 @@
{
joined_trail[i] = trail_2[j];
}
+
+ /* THIS CODE IS ONLY FOR TESTNG. FIXME*/
+ for(i = 0; i < *joined_trail_len; i++)
+ {
+ GNUNET_assert(0 != GNUNET_CRYPTO_cmp_peer_identity(&my_identity,
&joined_trail[i]));
+ }
return joined_trail;
}
@@ -4475,68 +4505,63 @@
struct GNUNET_PeerIdentity *trail_src_to_curr_pred;
unsigned int trail_me_to_curr_pred_length;
struct FingerInfo *current_predecessor;
- unsigned int i;
+ int i;
unsigned int j;
current_predecessor = &finger_table[PREDECESSOR_FINGER_ID];
+
+ /* Check if trail_src_to_me contains current_predecessor. */
+ for (i = 0; i < trail_src_to_me_len; i++)
+ {
+ if(0 != GNUNET_CRYPTO_cmp_peer_identity(&trail_src_to_me[i],
+
¤t_predecessor->finger_identity))
+ continue;
+
+
+ *trail_src_to_curr_pred_length = i;
+
+ if(0 == i)
+ return NULL;
+
+ trail_src_to_curr_pred = GNUNET_malloc (*trail_src_to_curr_pred_length *
+ sizeof(struct
GNUNET_PeerIdentity));
+ for(j = 0; j < i;j++)
+ trail_src_to_curr_pred[j] = trail_src_to_me[j];
+ return trail_src_to_curr_pred;
+ }
+
+
trail_me_to_curr_pred = get_shortest_trail (current_predecessor,
&trail_me_to_curr_pred_length);
-
- /* If there is only on element in the trail, and that element is source.*/
- if ((trail_me_to_curr_pred_length == 1) &&
- (0 == GNUNET_CRYPTO_cmp_peer_identity (&source_peer,
- &trail_me_to_curr_pred[0])))
- {
- *trail_src_to_curr_pred_length = 0;
- GNUNET_free_non_null(trail_me_to_curr_pred);
- return NULL;
- }
- /* Check if trail_me_to_curr_pred contains source. */
- if (trail_me_to_curr_pred_length > 1)
+ /* Check if trail contains the source_peer. */
+ for(i = trail_me_to_curr_pred_length - 1; i >= 0; i--)
{
- for(i = trail_me_to_curr_pred_length - 1; i > 0; i--)
- {
- if(0 != GNUNET_CRYPTO_cmp_peer_identity (&source_peer,
- &trail_me_to_curr_pred[i]))
- continue;
+ if(0 != GNUNET_CRYPTO_cmp_peer_identity (&source_peer,
+ &trail_me_to_curr_pred[i]))
+ continue;
+
+ /* Source is NOT part of trail. */
+ i = i+1;
- /* Source is NOT part of trail. */
- i = i+1;
-
- /* Source is the last element in the trail to reach to my pred.
+ /* Source is the last element in the trail to reach to my pred.
Source is direct friend of the pred. */
- if (trail_me_to_curr_pred_length == i)
- {
+ if (trail_me_to_curr_pred_length == i)
+ {
*trail_src_to_curr_pred_length = 0;
return NULL;
- }
-
- *trail_src_to_curr_pred_length = trail_me_to_curr_pred_length - i;
- trail_src_to_curr_pred = GNUNET_malloc (sizeof (struct
GNUNET_PeerIdentity)*
+ }
+
+ *trail_src_to_curr_pred_length = trail_me_to_curr_pred_length - i;
+ trail_src_to_curr_pred = GNUNET_malloc (sizeof (struct
GNUNET_PeerIdentity)*
*trail_src_to_curr_pred_length);
- for(j = 0; j < *trail_src_to_curr_pred_length; i++,j++)
- {
- trail_src_to_curr_pred[j] = trail_me_to_curr_pred[i];
- }
- GNUNET_free_non_null(trail_me_to_curr_pred);
- return trail_src_to_curr_pred;
- }
- /* Is first element source? Then exclude first element and copy rest of the
- trail. */
- if(0 == GNUNET_CRYPTO_cmp_peer_identity (&source_peer,
- &trail_me_to_curr_pred[0]))
- {
- *trail_src_to_curr_pred_length = trail_me_to_curr_pred_length - 1;
- trail_src_to_curr_pred = GNUNET_malloc(sizeof(struct
GNUNET_PeerIdentity)*
- *trail_src_to_curr_pred_length);
- unsigned int j;
- for(j=0; j < *trail_src_to_curr_pred_length;j++)
- {
- trail_src_to_curr_pred[j] = trail_me_to_curr_pred[j+1];
- }
- return trail_src_to_curr_pred;
- }
+
+ for(j = 0; j < *trail_src_to_curr_pred_length; i++,j++)
+ {
+ trail_src_to_curr_pred[j] = trail_me_to_curr_pred[i];
+ }
+ GNUNET_free_non_null(trail_me_to_curr_pred);
+ return trail_src_to_curr_pred;
}
unsigned int len;
@@ -4758,42 +4783,16 @@
* it. */
compare_and_update_predecessor (source_peer, trail, trail_length);
current_predecessor = finger_table[PREDECESSOR_FINGER_ID];
- unsigned int flag = 0;
/* Is source of this message NOT my predecessor. */
if (0 != (GNUNET_CRYPTO_cmp_peer_identity
(¤t_predecessor.finger_identity,
&source_peer)))
{
- /* Check if trail contains current_predecessor. */
- unsigned int i;
- for (i = 0; i < trail_length; i++)
- {
- if(0 != GNUNET_CRYPTO_cmp_peer_identity(&trail[i],
-
¤t_predecessor.finger_identity))
- continue;
-
- flag = 1;
- trail_src_to_curr_pred_len = i;
- trail_src_to_curr_pred = GNUNET_malloc (trail_src_to_curr_pred_len *
- sizeof(struct
GNUNET_PeerIdentity));
- unsigned int k = 0;
-
- while(k < i)
- {
- trail_src_to_curr_pred[k] = trail[k];
- k++;
- }
- break;
- }
-
- if(0 == flag)
- {
- trail_src_to_curr_pred =
+ trail_src_to_curr_pred =
get_trail_src_to_curr_pred (source_peer,
trail,
trail_length,
&trail_src_to_curr_pred_len);
- }
}
else
{
@@ -4862,7 +4861,6 @@
&trail_me_to_probable_successor[i]))
continue;
- j = 0;
*trail_to_new_successor_length = (trail_me_to_probable_successor_len -
i);
trail_to_new_successor = GNUNET_malloc (sizeof(struct
GNUNET_PeerIdentity)*
*trail_to_new_successor_length);
@@ -4879,15 +4877,6 @@
*trail_to_new_successor_length = trail_me_to_probable_successor_len;
return (struct GNUNET_PeerIdentity*)trail_me_to_probable_successor;
-#if 0
- trail_to_new_successor = GNUNET_malloc (sizeof (struct GNUNET_PeerIdentity)*
- *trail_to_new_successor_length);
-
- for(i = 0; i < *trail_to_new_successor_length; i++)
- trail_to_new_successor[i] = trail_me_to_probable_successor[i];
-
- return trail_to_new_successor;
-#endif
}
@@ -4920,27 +4909,6 @@
current_successor = &finger_table[0];
successor_value = compute_finger_identity_value(0);
- /* Have we found some other successor, while waiting for verify successor
result
- *
- * FIXME closest_peer is being overwritten just after the if
- */
-#if 0
- if(0 != GNUNET_CRYPTO_cmp_peer_identity(&curr_succ,
¤t_successor->finger_identity))
- {
- /* We could have added this new successor, only if it was closer the old
one. */
- closest_peer = select_closest_peer (&curr_succ,
- ¤t_successor->finger_identity,
- successor_value, is_predecessor);
-
- /* FIXME: it may fail in case we have done more number of iterations of
- find _finger_trail_task. */
- /*GNUNET_assert (0 ==
- GNUNET_CRYPTO_cmp_peer_identity (closest_peer,
-
¤t_successor->finger_identity));*/
-
- }
-#endif
-
closest_peer = select_closest_peer (&probable_successor,
¤t_successor->finger_identity,
successor_value, is_predecessor);
@@ -4978,7 +4946,6 @@
}
trail_me_to_probable_succ_len = 0;
- /* TODO: Check if the path to reach to probable successor contains a friend.
*/
trail_me_to_probable_succ =
check_trail_me_to_probable_succ (probable_successor,
trail, trail_length,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34137 - gnunet/src/dht,
gnunet <=