aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-05-22 11:27:03 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-05-22 11:27:03 +0000
commit5afa110251ecd1230d1386e114b65508d5916027 (patch)
tree12ffb54a9b302ed0fddbd7b7c5ef2be46bea5da0 /src
parent58243199da1c8959f3a86d5ec848575f97ca6e94 (diff)
downloadgnunet-5afa110251ecd1230d1386e114b65508d5916027.tar.gz
gnunet-5afa110251ecd1230d1386e114b65508d5916027.zip
- changes
Diffstat (limited to 'src')
-rw-r--r--src/ats/test_ats_api_reset_backoff.c34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/ats/test_ats_api_reset_backoff.c b/src/ats/test_ats_api_reset_backoff.c
index 90d9e7f83..38c18e1ac 100644
--- a/src/ats/test_ats_api_reset_backoff.c
+++ b/src/ats/test_ats_api_reset_backoff.c
@@ -28,7 +28,7 @@
28#include "ats.h" 28#include "ats.h"
29 29
30#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10) 30#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10)
31#define ATS_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1) 31#define ATS_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 90)
32 32
33static GNUNET_SCHEDULER_TaskIdentifier die_task; 33static GNUNET_SCHEDULER_TaskIdentifier die_task;
34 34
@@ -130,25 +130,16 @@ suggest_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
130 suggest_timeout_task = GNUNET_SCHEDULER_NO_TASK; 130 suggest_timeout_task = GNUNET_SCHEDULER_NO_TASK;
131 131
132 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Requesting address for peer timed out\n"); 132 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Requesting address for peer timed out\n");
133}
134
135static void request_address ()
136{
137 133
138 if (suggest_timeout_task != GNUNET_SCHEDULER_NO_TASK) 134 if (die_task != GNUNET_SCHEDULER_NO_TASK)
139 { 135 {
140 GNUNET_SCHEDULER_cancel (suggest_timeout_task); 136 GNUNET_SCHEDULER_cancel (die_task);
141 suggest_timeout_task = GNUNET_SCHEDULER_NO_TASK; 137 die_task = GNUNET_SCHEDULER_NO_TASK;
142 } 138 }
143 139
144 suggest_timeout_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_MINUTES, &suggest_timeout, NULL); 140 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
145
146 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Requesting address for peer `%s'\n",
147 GNUNET_i2s (&peer.id));
148 GNUNET_ATS_suggest_address (ats, &peer.id);
149} 141}
150 142
151
152static void 143static void
153address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *a, 144address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *a,
154 struct Session *session, 145 struct Session *session,
@@ -236,14 +227,9 @@ address_suggest_cb (void *cls, const struct GNUNET_HELLO_Address *a,
236 GNUNET_SCHEDULER_cancel (suggest_timeout_task); 227 GNUNET_SCHEDULER_cancel (suggest_timeout_task);
237 suggest_timeout_task = GNUNET_SCHEDULER_NO_TASK; 228 suggest_timeout_task = GNUNET_SCHEDULER_NO_TASK;
238 } 229 }
239 230 suggest_timeout_task = GNUNET_SCHEDULER_add_delayed(ATS_TIMEOUT, &suggest_timeout, NULL);
240 GNUNET_ATS_reset_backoff(ats, &a->peer);
241 request_address ();
242} 231}
243 232
244
245
246
247void 233void
248start_arm (const char *cfgname) 234start_arm (const char *cfgname)
249{ 235{
@@ -289,7 +275,13 @@ check (void *cls, char *const *args, const char *cfgfile,
289 hello_addr.address_length = address.addr_len; 275 hello_addr.address_length = address.addr_len;
290 GNUNET_ATS_address_update (ats, &hello_addr, address.session, NULL, 0); 276 GNUNET_ATS_address_update (ats, &hello_addr, address.session, NULL, 0);
291 277
292 request_address (); 278 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Requesting address for peer `%s'\n",
279 GNUNET_i2s (&peer.id));
280 /* Increase block timout far beyond ATS_TIMEOUT */
281 GNUNET_ATS_suggest_address (ats, &peer.id);
282
283 GNUNET_ATS_reset_backoff(ats, &peer.id);
284 GNUNET_ATS_suggest_address (ats, &peer.id);
293} 285}
294 286
295int 287int