[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r35180 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r35180 - gnunet/src/ats |
Date: |
Sun, 8 Feb 2015 21:55:26 +0100 |
Author: grothoff
Date: 2015-02-08 21:55:25 +0100 (Sun, 08 Feb 2015)
New Revision: 35180
Modified:
gnunet/src/ats/plugin_ats_proportional.c
gnunet/src/ats/test_ats_api_common.c
gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
Log:
-getting there...
Modified: gnunet/src/ats/plugin_ats_proportional.c
===================================================================
--- gnunet/src/ats/plugin_ats_proportional.c 2015-02-08 19:59:05 UTC (rev
35179)
+++ gnunet/src/ats/plugin_ats_proportional.c 2015-02-08 20:55:25 UTC (rev
35180)
@@ -917,29 +917,23 @@
* are different switch
*
* @param s solver handle
+ * @param current_address the address currently active for the peer,
+ * NULL for none
* @param peer the peer to check
* return the new address or NULL if no update was performed
*/
static struct ATS_Address *
update_active_address (struct GAS_PROPORTIONAL_Handle *s,
+ struct ATS_Address *current_address,
const struct GNUNET_PeerIdentity *peer)
{
struct ATS_Address *best_address;
- struct ATS_Address *current_address;
struct AddressWrapper *asi;
struct Network *net;
- current_address = get_active_address (s,
- peer);
best_address = get_best_address (s,
s->env->addresses,
peer);
- LOG (GNUNET_ERROR_TYPE_INFO,
- "Peer `%s' has active address %p and best address %p\n",
- GNUNET_i2s (peer),
- current_address,
- best_address);
-
if (NULL != current_address)
{
GNUNET_assert (GNUNET_YES == current_address->active);
@@ -950,9 +944,7 @@
/* We switch to a new address (or to none),
mark old address as inactive */
LOG (GNUNET_ERROR_TYPE_INFO,
- "Disabling previous %s address %p for peer `%s'\n",
- (GNUNET_NO == current_address->active) ? "inactive" : "active",
- current_address,
+ "Disabling previous active address for peer `%s'\n",
GNUNET_i2s (peer));
asi = current_address->solver_information;
@@ -997,7 +989,6 @@
}
asi = best_address->solver_information;
- GNUNET_assert (NULL != asi);
net = asi->network;
/* Mark address as active */
@@ -1019,7 +1010,8 @@
best_address,
GNUNET_i2s (peer));
/* Distribute bandwidth */
- distribute_bandwidth_in_network (s, net);
+ distribute_bandwidth_in_network (s,
+ net);
return best_address;
}
@@ -1082,6 +1074,8 @@
struct AddressWrapper *asi;
best_address = update_active_address (s,
+ get_active_address (s,
+ peer),
peer);
if (NULL == best_address)
return;
@@ -1152,11 +1146,13 @@
return;
}
s->bulk_lock--;
- if ((0 == s->bulk_lock) && (0 < s->bulk_requests))
+ if ( (0 == s->bulk_lock) &&
+ (0 < s->bulk_requests) )
{
LOG (GNUNET_ERROR_TYPE_INFO,
"No lock pending, recalculating\n");
- distribute_bandwidth_in_network (s, NULL);
+ distribute_bandwidth_in_network (s,
+ NULL);
s->bulk_requests = 0;
}
}
@@ -1222,21 +1218,24 @@
1,
GNUNET_NO);
+ if (0 !=
+ s->env->get_connectivity (s->env->cls,
+ &address->peer))
+ {
+ /* This peer is requested, find best address */
+ update_active_address (s,
+ get_active_address (s,
+ &address->peer),
+ &address->peer);
+ }
LOG (GNUNET_ERROR_TYPE_INFO,
"Added new address for `%s', now total %u and active %u addresses in
network `%s'\n",
- GNUNET_i2s (&address->peer),
+ GNUNET_i2s (&address->peer),
net->total_addresses,
net->active_addresses,
net->desc);
- if (0 ==
- s->env->get_connectivity (s->env->cls,
- &address->peer))
- return; /* Peer is not requested */
- /* This peer is requested, find best address */
- update_active_address (s,
- &address->peer);
}
@@ -1279,16 +1278,11 @@
if (GNUNET_YES == address->active)
{
/* Address was active, remove from network and update quotas*/
- address->active = GNUNET_NO;
address->assigned_bw_in = 0;
address->assigned_bw_out = 0;
- address_decrement_active (s, net);
- /* FIXME: this may trigger the solver unnecessarily,
- especially if update_active_address() succeeds! */
- distribute_bandwidth_in_network (s, net);
-
if (NULL ==
update_active_address (s,
+ address,
&address->peer))
{
/* No alternative address found, disconnect peer */
@@ -1299,6 +1293,7 @@
s->env->bandwidth_changed_cb (s->env->cls,
address);
}
+ distribute_bandwidth_in_network (s, net);
}
GNUNET_free (aw);
address->solver_information = NULL;
Modified: gnunet/src/ats/test_ats_api_common.c
===================================================================
--- gnunet/src/ats/test_ats_api_common.c 2015-02-08 19:59:05 UTC (rev
35179)
+++ gnunet/src/ats/test_ats_api_common.c 2015-02-08 20:55:25 UTC (rev
35180)
@@ -44,6 +44,7 @@
dest->addr_len = addrlen;
}
+
void
free_test_address (struct Test_Address *dest)
{
@@ -53,37 +54,46 @@
dest->addr = NULL;
}
+
int
-compare_addresses (const struct GNUNET_HELLO_Address *address1, void *session1,
- const struct GNUNET_HELLO_Address *address2, void *session2)
+compare_addresses (const struct GNUNET_HELLO_Address *address1,
+ void *session1,
+ const struct GNUNET_HELLO_Address *address2,
+ void *session2)
{
- if (0 != memcmp (&address1->peer, &address2->peer, sizeof (struct
GNUNET_PeerIdentity)))
+ if (0 !=
+ memcmp (&address1->peer,
+ &address2->peer,
+ sizeof (struct GNUNET_PeerIdentity)))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid peer
id'\n");
- return GNUNET_SYSERR;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Suggestion with invalid peer id'\n");
+ return GNUNET_SYSERR;
}
if (0 != strcmp (address1->transport_name, address2->transport_name))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid
plugin'\n");
- return GNUNET_SYSERR;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Suggestion with invalid plugin'\n");
+ return GNUNET_SYSERR;
}
if (address1->address_length != address2->address_length)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid address
length\n");
- return GNUNET_SYSERR;
-
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Suggestion with invalid address length\n");
+ return GNUNET_SYSERR;
}
- else if (0 != memcmp (address1->address, address2->address,
address2->address_length))
+ if (0 != memcmp (address1->address, address2->address,
address2->address_length))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid
address\n");
- return GNUNET_SYSERR;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Suggestion with invalid address\n");
+ return GNUNET_SYSERR;
}
if (session1 != session2)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Suggestion with invalid session1
%p vs session2 %p'\n",
- session1, session2);
- return GNUNET_SYSERR;
-
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Suggestion with invalid session1 %p vs session2 %p'\n",
+ session1, session2);
+ return GNUNET_SYSERR;
}
return GNUNET_OK;
}
Modified: gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
===================================================================
--- gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
2015-02-08 19:59:05 UTC (rev 35179)
+++ gnunet/src/ats/test_ats_solver_alternative_after_delete_address.c
2015-02-08 20:55:25 UTC (rev 35180)
@@ -145,17 +145,20 @@
GNUNET_ATS_scheduling_done (sched_ats);
sched_ats = NULL;
}
-
- GNUNET_STATISTICS_watch_cancel (stats, "ats", "# addresses", &stat_cb, NULL);
+ GNUNET_STATISTICS_watch_cancel (stats,
+ "ats",
+ "# addresses",
+ &stat_cb, NULL);
if (NULL != stats)
{
GNUNET_STATISTICS_destroy (stats, GNUNET_NO);
stats = NULL;
}
-
free_test_address (&test_addr);
GNUNET_free_non_null (first_suggestion);
+ first_suggestion = NULL;
GNUNET_free_non_null (second_suggestion);
+ second_suggestion = NULL;
ret = 0;
}
@@ -253,8 +256,11 @@
return;
}
- if (0 != memcmp (address->address, first_suggestion->address,
- (first_suggestion->address_length < address->address_length) ?
first_suggestion->address_length : address->address_length))
+ if (0 !=
+ memcmp (address->address,
+ first_suggestion->address,
+ (first_suggestion->address_length < address->address_length)
+ ? first_suggestion->address_length :
address->address_length))
{
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Received 2nd sugggestion for peer `%s' : `%s'\n",
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r35180 - gnunet/src/ats,
gnunet <=