[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29616 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29616 - gnunet/src/ats |
Date: |
Thu, 26 Sep 2013 15:03:04 +0200 |
Author: wachs
Date: 2013-09-26 15:03:04 +0200 (Thu, 26 Sep 2013)
New Revision: 29616
Modified:
gnunet/src/ats/gnunet-service-ats-solver_mlp.c
Log:
disconnect peer if no address is available after deletion
Modified: gnunet/src/ats/gnunet-service-ats-solver_mlp.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats-solver_mlp.c 2013-09-26 12:59:41 UTC
(rev 29615)
+++ gnunet/src/ats/gnunet-service-ats-solver_mlp.c 2013-09-26 13:03:04 UTC
(rev 29616)
@@ -1443,6 +1443,7 @@
struct ATS_Peer *p;
struct GAS_MLP_Handle *mlp = solver;
struct MLP_information *mlpi;
+ int was_active;
GNUNET_assert (NULL != solver);
GNUNET_assert (NULL != address);
@@ -1454,7 +1455,10 @@
GNUNET_free (mlpi);
address->solver_information = NULL;
}
+ was_active = address->active;
address->active = GNUNET_NO;
+ address->assigned_bw_in = BANDWIDTH_ZERO;
+ address->assigned_bw_out = BANDWIDTH_ZERO;
/* Is this peer included in the problem? */
if (NULL == (p = GNUNET_CONTAINER_multihashmap_get (mlp->requested_peers,
&address->peer.hashPubKey)))
@@ -1474,6 +1478,15 @@
{
GAS_mlp_solve_problem (solver);
}
+ if (GNUNET_YES == was_active)
+ {
+ if (NULL == GAS_mlp_get_preferred_address (solver, &address->peer))
+ {
+ /* No alternative address, disconnecting peer */
+ mlp->bw_changed_cb (mlp->bw_changed_cb_cls, address);
+ }
+ }
+
return;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29616 - gnunet/src/ats,
gnunet <=