diff options
author | Alexey Sheplyakov <asheplyakov@altlinux.org> | 2021-08-30 14:54:50 +0400 |
---|---|---|
committer | Alexey Sheplyakov <asheplyakov@altlinux.org> | 2021-08-30 14:56:24 +0400 |
commit | fd6f688120e4f18decee6a49120837f27df53b35 (patch) | |
tree | 6b7a35d98ea0b9552e8929722cb89afd352b0aa6 | |
parent | b83d607b65d879c1bca5933dcc6ca1689b073646 (diff) | |
download | distcc-git-fd6f688120e4f18decee6a49120837f27df53b35.tar.gz |
backoff.c: added dcc_backof_is_enabled() helper function
-rw-r--r-- | src/backoff.c | 33 | ||||
-rw-r--r-- | src/distcc.h | 1 |
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); |