*/
struct GNUNET_SCHEDULER_Task *task;
+ /**
+ * Reconnect backoff delay.
+ */
+ struct GNUNET_TIME_Relative backoff;
};
GNUNET_CLIENT_disconnect (ch->client);
ch->client = NULL;
}
- ch->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+ ch->backoff = GNUNET_TIME_STD_BACKOFF (ch->backoff);
+ ch->task = GNUNET_SCHEDULER_add_delayed (ch->backoff,
&reconnect_task,
ch);
}
/**
* Task to trigger reconnect.
*/
- struct GNUNET_SCHEDULER_Task * task;
+ struct GNUNET_SCHEDULER_Task *task;
+
+ /**
+ * Reconnect backoff delay.
+ */
+ struct GNUNET_TIME_Relative backoff;
/**
* Monitor request multiplexing
GNUNET_break(0);
goto reconnect;
}
+ ph->backoff = GNUNET_TIME_UNIT_ZERO;
GNUNET_CLIENT_receive (ph->client,
&process_ats_message,
ph,
GNUNET_BANDWIDTH_value_init (0),
NULL, 0);
}
- ph->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
- &reconnect_task, ph);
+ ph->backoff = GNUNET_TIME_STD_BACKOFF (ph->backoff);
+ ph->task = GNUNET_SCHEDULER_add_delayed (ph->backoff,
+ &reconnect_task,
+ ph);
}
*/
struct GNUNET_SCHEDULER_Task *task;
+ /**
+ * Reconnect backoff delay.
+ */
+ struct GNUNET_TIME_Relative backoff;
+
/**
* Size of the @e session_array.
*/
NULL, NULL, NULL,
GNUNET_BANDWIDTH_ZERO,
GNUNET_BANDWIDTH_ZERO);
- sh->task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+ sh->backoff = GNUNET_TIME_STD_BACKOFF (sh->backoff);
+ sh->task = GNUNET_SCHEDULER_add_delayed (sh->backoff,
&reconnect_task,
sh);
}
GNUNET_break (0);
return;
}
+ sh->backoff = GNUNET_TIME_UNIT_ZERO;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"ATS suggests address slot %u for peer `%s' using plugin %s\n",
ar->slot,