From d2219189d1694be4848c3ab55840c00dbf754edd Mon Sep 17 00:00:00 2001 From: Claus Marxmeier Date: Mon, 25 Mar 2019 19:25:44 +0100 Subject: [PATCH] Create 0001-tunneldigger-client-reset_broken_brokers.patch --- ...eldigger-client-reset_broken_brokers.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 net/tunneldigger/patches/0001-tunneldigger-client-reset_broken_brokers.patch diff --git a/net/tunneldigger/patches/0001-tunneldigger-client-reset_broken_brokers.patch b/net/tunneldigger/patches/0001-tunneldigger-client-reset_broken_brokers.patch new file mode 100644 index 0000000..f7e1054 --- /dev/null +++ b/net/tunneldigger/patches/0001-tunneldigger-client-reset_broken_brokers.patch @@ -0,0 +1,39 @@ +diff --git a/client/l2tp_client.c b/client/l2tp_client.c +index 16fdf3c..69ce54c 100644 +--- a/client/l2tp_client.c ++++ b/client/l2tp_client.c +@@ -1431,10 +1431,6 @@ int main(int argc, char **argv) + + // Reset availability information and standby setting. + for (i = 0; i < broker_cnt; i++) { +- // Re-enable all brokers if they are all broken +- if (working_brokers == 0) { +- brokers[i].broken = 0; +- } + if (brokers[i].broken) { + // Inhibit hostname resolution and connect process. + syslog(LOG_INFO, "Not trying %s:%s again as it broke last time we tried.", +@@ -1442,11 +1438,6 @@ int main(int argc, char **argv) + brokers[i].ctx->state = STATE_FAILED; + } + } +- // Adapt working_brokers, needs updating if we re-enabled brokers +- if (working_brokers == 0) { +- syslog(LOG_INFO, "All brokers sent us an error, trying them all again."); +- working_brokers = broker_cnt; +- } + + // Perform broker processing for 10 seconds or until all brokers are ready + // (whichever is shorter); since all contexts are in standby mode, all +@@ -1476,6 +1467,11 @@ int main(int argc, char **argv) + if (i == -1) { + syslog(LOG_ERR, "No suitable brokers found. Retrying in 5 seconds"); + sleep(5); ++ // Un-break all brokers. There is no point in avoiding bad brokers if that means ++ // we have no candidates left. ++ for (i = 0; i < broker_cnt; i++) { ++ brokers[i].broken = 0; ++ } + continue; + } +