summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Traud <pabstraud@compuserve.com>2016-06-08 13:15:15 +0200
committerAlexander Traud <pabstraud@compuserve.com>2016-06-10 21:04:44 +0200
commitac683f13c9d377b41aee36c665057d64d28420e5 (patch)
treee1c6ce18e71ba8798d8d0fc343b2ebcc7f578ebf
parent5164e1fd859fcd884a4b9edef7cde3b6e1efc87a (diff)
core: Not the configured but granted number of possible file descriptors.
With CLI "core show settings", simply the parameter maxfiles of the file asterisk.conf was shown. If that parameter was not set, nothing was displayed although the environment might have set a default number itself. Or if maxfiles were not granted (completely), still maxfiles was shown. Now, the maximum number of possible file descriptors in the environment is shown. ASTERISK-26097 Change-Id: I2df5c58863b5007b34b77adbe28b885dfcdf7e0b
-rw-r--r--main/asterisk.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 25c6c9569..95f1b3ed0 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -596,6 +596,7 @@ static char *handle_show_settings(struct ast_cli_entry *e, int cmd, struct ast_c
char buf[BUFSIZ];
struct ast_tm tm;
char eid_str[128];
+ struct rlimit limits;
switch (cmd) {
case CLI_INIT:
@@ -617,10 +618,17 @@ static char *handle_show_settings(struct ast_cli_entry *e, int cmd, struct ast_c
ast_cli(a->fd, " Maximum calls: %d (Current %d)\n", ast_option_maxcalls, ast_active_channels());
else
ast_cli(a->fd, " Maximum calls: Not set\n");
- if (ast_option_maxfiles)
- ast_cli(a->fd, " Maximum open file handles: %d\n", ast_option_maxfiles);
- else
- ast_cli(a->fd, " Maximum open file handles: Not set\n");
+
+ if (getrlimit(RLIMIT_NOFILE, &limits)) {
+ ast_cli(a->fd, " Maximum open file handles: Error because of %s\n", strerror(errno));
+ } else if (limits.rlim_cur == RLIM_INFINITY) {
+ ast_cli(a->fd, " Maximum open file handles: Unlimited\n");
+ } else if (limits.rlim_cur < ast_option_maxfiles) {
+ ast_cli(a->fd, " Maximum open file handles: %d (is) %d (requested)\n", (int) limits.rlim_cur, ast_option_maxfiles);
+ } else {
+ ast_cli(a->fd, " Maximum open file handles: %d\n", (int) limits.rlim_cur);
+ }
+
ast_cli(a->fd, " Root console verbosity: %d\n", option_verbose);
ast_cli(a->fd, " Current console verbosity: %d\n", ast_verb_console_get());
ast_cli(a->fd, " Debug level: %d\n", option_debug);