aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-02-09 12:17:18 +0000
committerChristian Grothoff <christian@grothoff.org>2015-02-09 12:17:18 +0000
commit5b23ce75b0196174e5ea189314a0e7301e5c388b (patch)
tree0695dc711df3bd67abcb9d245f6966e0d74ea1e1 /src
parent16b3d36a08d5159a6d662b81146943060d08a149 (diff)
downloadgnunet-5b23ce75b0196174e5ea189314a0e7301e5c388b.tar.gz
gnunet-5b23ce75b0196174e5ea189314a0e7301e5c388b.zip
-use backoff for reconnects
Diffstat (limited to 'src')
-rw-r--r--src/ats/ats_api_connectivity.c7
-rw-r--r--src/ats/ats_api_performance.c14
-rw-r--r--src/ats/ats_api_scheduling.c9
3 files changed, 25 insertions, 5 deletions
diff --git a/src/ats/ats_api_connectivity.c b/src/ats/ats_api_connectivity.c
index f20743dc2..432f1ca35 100644
--- a/src/ats/ats_api_connectivity.c
+++ b/src/ats/ats_api_connectivity.c
@@ -78,6 +78,10 @@ struct GNUNET_ATS_ConnectivityHandle
78 */ 78 */
79 struct GNUNET_SCHEDULER_Task *task; 79 struct GNUNET_SCHEDULER_Task *task;
80 80
81 /**
82 * Reconnect backoff delay.
83 */
84 struct GNUNET_TIME_Relative backoff;
81}; 85};
82 86
83 87
@@ -125,7 +129,8 @@ force_reconnect (struct GNUNET_ATS_ConnectivityHandle *ch)
125 GNUNET_CLIENT_disconnect (ch->client); 129 GNUNET_CLIENT_disconnect (ch->client);
126 ch->client = NULL; 130 ch->client = NULL;
127 } 131 }
128 ch->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, 132 ch->backoff = GNUNET_TIME_STD_BACKOFF (ch->backoff);
133 ch->task = GNUNET_SCHEDULER_add_delayed (ch->backoff,
129 &reconnect_task, 134 &reconnect_task,
130 ch); 135 ch);
131} 136}
diff --git a/src/ats/ats_api_performance.c b/src/ats/ats_api_performance.c
index 19e769bd3..e81f0d394 100644
--- a/src/ats/ats_api_performance.c
+++ b/src/ats/ats_api_performance.c
@@ -221,7 +221,12 @@ struct GNUNET_ATS_PerformanceHandle
221 /** 221 /**
222 * Task to trigger reconnect. 222 * Task to trigger reconnect.
223 */ 223 */
224 struct GNUNET_SCHEDULER_Task * task; 224 struct GNUNET_SCHEDULER_Task *task;
225
226 /**
227 * Reconnect backoff delay.
228 */
229 struct GNUNET_TIME_Relative backoff;
225 230
226 /** 231 /**
227 * Monitor request multiplexing 232 * Monitor request multiplexing
@@ -609,6 +614,7 @@ process_ats_message (void *cls,
609 GNUNET_break(0); 614 GNUNET_break(0);
610 goto reconnect; 615 goto reconnect;
611 } 616 }
617 ph->backoff = GNUNET_TIME_UNIT_ZERO;
612 GNUNET_CLIENT_receive (ph->client, 618 GNUNET_CLIENT_receive (ph->client,
613 &process_ats_message, 619 &process_ats_message,
614 ph, 620 ph,
@@ -635,8 +641,10 @@ process_ats_message (void *cls,
635 GNUNET_BANDWIDTH_value_init (0), 641 GNUNET_BANDWIDTH_value_init (0),
636 NULL, 0); 642 NULL, 0);
637 } 643 }
638 ph->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, 644 ph->backoff = GNUNET_TIME_STD_BACKOFF (ph->backoff);
639 &reconnect_task, ph); 645 ph->task = GNUNET_SCHEDULER_add_delayed (ph->backoff,
646 &reconnect_task,
647 ph);
640} 648}
641 649
642 650
diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c
index 1ed89e86e..fb6df4494 100644
--- a/src/ats/ats_api_scheduling.c
+++ b/src/ats/ats_api_scheduling.c
@@ -145,6 +145,11 @@ struct GNUNET_ATS_SchedulingHandle
145 struct GNUNET_SCHEDULER_Task *task; 145 struct GNUNET_SCHEDULER_Task *task;
146 146
147 /** 147 /**
148 * Reconnect backoff delay.
149 */
150 struct GNUNET_TIME_Relative backoff;
151
152 /**
148 * Size of the @e session_array. 153 * Size of the @e session_array.
149 */ 154 */
150 unsigned int session_array_size; 155 unsigned int session_array_size;
@@ -200,7 +205,8 @@ force_reconnect (struct GNUNET_ATS_SchedulingHandle *sh)
200 NULL, NULL, NULL, 205 NULL, NULL, NULL,
201 GNUNET_BANDWIDTH_ZERO, 206 GNUNET_BANDWIDTH_ZERO,
202 GNUNET_BANDWIDTH_ZERO); 207 GNUNET_BANDWIDTH_ZERO);
203 sh->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, 208 sh->backoff = GNUNET_TIME_STD_BACKOFF (sh->backoff);
209 sh->task = GNUNET_SCHEDULER_add_delayed (sh->backoff,
204 &reconnect_task, 210 &reconnect_task,
205 sh); 211 sh);
206} 212}
@@ -432,6 +438,7 @@ process_ats_address_suggestion_message (void *cls,
432 GNUNET_break (0); 438 GNUNET_break (0);
433 return; 439 return;
434 } 440 }
441 sh->backoff = GNUNET_TIME_UNIT_ZERO;
435 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 442 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
436 "ATS suggests address slot %u for peer `%s' using plugin %s\n", 443 "ATS suggests address slot %u for peer `%s' using plugin %s\n",
437 ar->slot, 444 ar->slot,