aboutsummaryrefslogtreecommitdiffstats
path: root/asterisk.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-31 21:25:21 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-31 21:25:21 +0000
commit1427e43aa1ae56e7327b8c629cac71fda13a58ac (patch)
tree0f0badcde0ec678b733ee9716f7b714dc959a31a /asterisk.c
parentdf798b149fdd966523f779822adcc3204560f442 (diff)
provide an alternate getloadavg implementation and a fallback for systems that don't have it at all (issue #5549 with minor mods)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6903 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'asterisk.c')
-rwxr-xr-xasterisk.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/asterisk.c b/asterisk.c
index 026654e86..43cc189fe 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -1874,7 +1874,12 @@ static void ast_readconfig(void) {
option_maxcalls = 0;
}
} else if (!strcasecmp(v->name, "maxload")) {
- if ((sscanf(v->value, "%lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
+ double test[1];
+
+ if (getloadavg(test, 1) == -1) {
+ ast_log(LOG_ERROR, "Cannot obtain load average on this system. 'maxload' option disabled.\n");
+ option_maxload = 0.0;
+ } else if ((sscanf(v->value, "%lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
option_maxload = 0.0;
}
}