diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-02-06 12:18:53 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-02-06 12:18:53 +0000 |
commit | 0dcfafed3117b1759f1d4ab3cb5db11952e65061 (patch) | |
tree | 91ca5e6e6c86d8fe94d2e48d91de7d81ba6349ea /src/ats/plugin_ats_mlp.c | |
parent | ca0050772a26fc9251d83146ef9b05b0b56069a9 (diff) | |
download | gnunet-0dcfafed3117b1759f1d4ab3cb5db11952e65061.tar.gz gnunet-0dcfafed3117b1759f1d4ab3cb5db11952e65061.zip |
-fix misc minor crashes
Diffstat (limited to 'src/ats/plugin_ats_mlp.c')
-rw-r--r-- | src/ats/plugin_ats_mlp.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/ats/plugin_ats_mlp.c b/src/ats/plugin_ats_mlp.c index 23fbf5063..533aae506 100644 --- a/src/ats/plugin_ats_mlp.c +++ b/src/ats/plugin_ats_mlp.c | |||
@@ -219,11 +219,6 @@ struct GAS_MLP_Handle | |||
219 | struct GNUNET_ATS_PluginEnvironment *env; | 219 | struct GNUNET_ATS_PluginEnvironment *env; |
220 | 220 | ||
221 | /** | 221 | /** |
222 | * Address hashmap for lookups | ||
223 | */ | ||
224 | const struct GNUNET_CONTAINER_MultiPeerMap *addresses; | ||
225 | |||
226 | /** | ||
227 | * Exclude peer from next result propagation | 222 | * Exclude peer from next result propagation |
228 | */ | 223 | */ |
229 | const struct GNUNET_PeerIdentity *exclude_peer; | 224 | const struct GNUNET_PeerIdentity *exclude_peer; |
@@ -1290,8 +1285,9 @@ mlp_create_problem (struct GAS_MLP_Handle *mlp) | |||
1290 | /* create the glpk problem */ | 1285 | /* create the glpk problem */ |
1291 | p->prob = glp_create_prob (); | 1286 | p->prob = glp_create_prob (); |
1292 | GNUNET_assert (NULL != p->prob); | 1287 | GNUNET_assert (NULL != p->prob); |
1293 | p->num_peers = mlp_create_problem_count_peers (mlp->requested_peers, mlp->addresses); | 1288 | p->num_peers = mlp_create_problem_count_peers (mlp->requested_peers, mlp->env->addresses); |
1294 | p->num_addresses = mlp_create_problem_count_addresses (mlp->requested_peers, mlp->addresses); | 1289 | p->num_addresses = mlp_create_problem_count_addresses (mlp->requested_peers, |
1290 | mlp->env->addresses); | ||
1295 | 1291 | ||
1296 | /* Create problem matrix: 10 * #addresses + #q * #addresses + #q, + #peer + 2 + 1 */ | 1292 | /* Create problem matrix: 10 * #addresses + #q * #addresses + #q, + #peer + 2 + 1 */ |
1297 | p->num_elements = (10 * p->num_addresses + mlp->pv.m_q * p->num_addresses + | 1293 | p->num_elements = (10 * p->num_addresses + mlp->pv.m_q * p->num_addresses + |
@@ -1331,7 +1327,7 @@ mlp_create_problem (struct GAS_MLP_Handle *mlp) | |||
1331 | mlp_create_problem_add_invariant_rows (mlp, p); | 1327 | mlp_create_problem_add_invariant_rows (mlp, p); |
1332 | 1328 | ||
1333 | /* Adding address dependent columns constraint rows */ | 1329 | /* Adding address dependent columns constraint rows */ |
1334 | GNUNET_CONTAINER_multipeermap_iterate (mlp->addresses, | 1330 | GNUNET_CONTAINER_multipeermap_iterate (mlp->env->addresses, |
1335 | &mlp_create_problem_add_address_information, | 1331 | &mlp_create_problem_add_address_information, |
1336 | mlp); | 1332 | mlp); |
1337 | 1333 | ||
@@ -1618,7 +1614,7 @@ GAS_mlp_solve_problem (void *solver) | |||
1618 | notify(mlp, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS, GAS_INFO_NONE); | 1614 | notify(mlp, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS, GAS_INFO_NONE); |
1619 | return GNUNET_OK; /* No pending requests */ | 1615 | return GNUNET_OK; /* No pending requests */ |
1620 | } | 1616 | } |
1621 | if (0 == GNUNET_CONTAINER_multipeermap_size(mlp->addresses)) | 1617 | if (0 == GNUNET_CONTAINER_multipeermap_size(mlp->env->addresses)) |
1622 | { | 1618 | { |
1623 | notify(mlp, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS, GAS_INFO_NONE); | 1619 | notify(mlp, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS, GAS_INFO_NONE); |
1624 | return GNUNET_OK; /* No addresses available */ | 1620 | return GNUNET_OK; /* No addresses available */ |
@@ -1831,7 +1827,7 @@ GAS_mlp_solve_problem (void *solver) | |||
1831 | GAS_INFO_NONE); | 1827 | GAS_INFO_NONE); |
1832 | if ((GNUNET_OK == res_lp) && (GNUNET_OK == mip_res)) | 1828 | if ((GNUNET_OK == res_lp) && (GNUNET_OK == mip_res)) |
1833 | { | 1829 | { |
1834 | GNUNET_CONTAINER_multipeermap_iterate(mlp->addresses, | 1830 | GNUNET_CONTAINER_multipeermap_iterate(mlp->env->addresses, |
1835 | &mlp_propagate_results, mlp); | 1831 | &mlp_propagate_results, mlp); |
1836 | } | 1832 | } |
1837 | notify (mlp, GAS_OP_SOLVE_UPDATE_NOTIFICATION_STOP, | 1833 | notify (mlp, GAS_OP_SOLVE_UPDATE_NOTIFICATION_STOP, |
@@ -2133,7 +2129,7 @@ GAS_mlp_get_preferred_address (void *solver, | |||
2133 | mlp->stat_mlp_prob_changed = GNUNET_YES; | 2129 | mlp->stat_mlp_prob_changed = GNUNET_YES; |
2134 | 2130 | ||
2135 | if ((GNUNET_YES == mlp->opt_mlp_auto_solve)&& | 2131 | if ((GNUNET_YES == mlp->opt_mlp_auto_solve)&& |
2136 | (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains(mlp->addresses, | 2132 | (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains(mlp->env->addresses, |
2137 | peer))) | 2133 | peer))) |
2138 | { | 2134 | { |
2139 | mlp->exclude_peer = peer; | 2135 | mlp->exclude_peer = peer; |
@@ -2143,7 +2139,7 @@ GAS_mlp_get_preferred_address (void *solver, | |||
2143 | } | 2139 | } |
2144 | /* Get prefered address */ | 2140 | /* Get prefered address */ |
2145 | res = NULL; | 2141 | res = NULL; |
2146 | GNUNET_CONTAINER_multipeermap_get_multiple (mlp->addresses, peer, | 2142 | GNUNET_CONTAINER_multipeermap_get_multiple (mlp->env->addresses, peer, |
2147 | &mlp_get_preferred_address_it, &res); | 2143 | &mlp_get_preferred_address_it, &res); |
2148 | return res; | 2144 | return res; |
2149 | } | 2145 | } |
@@ -2430,12 +2426,6 @@ libgnunet_plugin_ats_mlp_init (void *cls) | |||
2430 | struct GNUNET_TIME_Relative max_duration; | 2426 | struct GNUNET_TIME_Relative max_duration; |
2431 | long long unsigned int max_iterations; | 2427 | long long unsigned int max_iterations; |
2432 | 2428 | ||
2433 | GNUNET_assert (NULL != env->cfg); | ||
2434 | GNUNET_assert (NULL != env->addresses); | ||
2435 | GNUNET_assert (NULL != env->bandwidth_changed_cb); | ||
2436 | GNUNET_assert (NULL != env->get_preferences); | ||
2437 | GNUNET_assert (NULL != env->get_property); | ||
2438 | |||
2439 | /* Init GLPK environment */ | 2429 | /* Init GLPK environment */ |
2440 | int res = glp_init_env(); | 2430 | int res = glp_init_env(); |
2441 | switch (res) { | 2431 | switch (res) { |