summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Sheplyakov <asheplyakov@altlinux.org>2021-08-30 14:54:50 +0400
committerAlexey Sheplyakov <asheplyakov@altlinux.org>2021-08-30 14:56:24 +0400
commitfd6f688120e4f18decee6a49120837f27df53b35 (patch)
tree6b7a35d98ea0b9552e8929722cb89afd352b0aa6
parentb83d607b65d879c1bca5933dcc6ca1689b073646 (diff)
downloaddistcc-git-fd6f688120e4f18decee6a49120837f27df53b35.tar.gz
backoff.c: added dcc_backof_is_enabled() helper function
-rw-r--r--src/backoff.c33
-rw-r--r--src/distcc.h1
2 files changed, 18 insertions, 16 deletions
diff --git a/src/backoff.c b/src/backoff.c
index b3d656c..5aaf45a 100644
--- a/src/backoff.c
+++ b/src/backoff.c
@@ -52,6 +52,19 @@
static int dcc_backoff_period = 60; /* seconds */
+static int dcc_get_backoff_period(void)
+{
+ char *bp;
+ bp = getenv("DISTCC_BACKOFF_PERIOD");
+ if (bp)
+ dcc_backoff_period = atoi(bp);
+ return dcc_backoff_period;
+}
+
+int dcc_backoff_is_enabled(void)
+{
+ return dcc_get_backoff_period() != 0;
+}
/**
* Remember that this host is working OK.
@@ -61,23 +74,17 @@ static int dcc_backoff_period = 60; /* seconds */
**/
int dcc_enjoyed_host(const struct dcc_hostdef *host)
{
- char *bp;
-
/* special-case: if DISTCC_BACKOFF_PERIOD==0, don't manage backoff files */
- bp = getenv("DISTCC_BACKOFF_PERIOD");
- if (bp && (atoi(bp) == 0))
- return 0;
+ if (!dcc_backoff_is_enabled())
+ return 0;
return dcc_remove_timefile("backoff", host);
}
int dcc_disliked_host(const struct dcc_hostdef *host)
{
- char *bp;
-
/* special-case: if DISTCC_BACKOFF_PERIOD==0, don't manage backoff files */
- bp = getenv("DISTCC_BACKOFF_PERIOD");
- if (bp && (atoi(bp) == 0))
+ if (!dcc_backoff_is_enabled())
return 0;
/* i hate you (but only for dcc_backoff_period seconds) */
@@ -108,14 +115,8 @@ static int dcc_check_backoff(struct dcc_hostdef *host)
int dcc_remove_disliked(struct dcc_hostdef **hostlist)
{
struct dcc_hostdef *h;
- char *bp;
- bp = getenv("DISTCC_BACKOFF_PERIOD");
- if (bp)
- dcc_backoff_period = atoi(bp);
-
- /* special-case: if DISTCC_BACKOFF_PERIOD==0, don't manage backoff files */
- if (dcc_backoff_period == 0)
+ if (!dcc_backoff_is_enabled())
return 0;
while ((h = *hostlist) != NULL) {
diff --git a/src/distcc.h b/src/distcc.h
index 7860a2c..a4bfe26 100644
--- a/src/distcc.h
+++ b/src/distcc.h
@@ -190,6 +190,7 @@ int dcc_support_masquerade(char *argv[], char *progname, int *);
int dcc_enjoyed_host(const struct dcc_hostdef *host);
int dcc_disliked_host(const struct dcc_hostdef *host);
int dcc_remove_disliked(struct dcc_hostdef **hostlist);
+int dcc_backoff_is_enabled(void);