]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
core: Not the configured but granted number of possible file descriptors. 71/2971/3
authorAlexander Traud <pabstraud@compuserve.com>
Wed, 8 Jun 2016 12:20:26 +0000 (14:20 +0200)
committerAlexander Traud <pabstraud@compuserve.com>
Fri, 10 Jun 2016 19:06:35 +0000 (21:06 +0200)
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

main/asterisk.c

index 16c0c342d0e3433fc02ddc60e8fd298f0cf089be..0e33d0ca9da102dd748e5e8d1fc8ce93c4e8c276 100644 (file)
@@ -459,6 +459,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:
@@ -480,10 +481,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", option_maxcalls, ast_active_channels());
        else
                ast_cli(a->fd, "  Maximum calls:               Not set\n");
-       if (option_maxfiles)
-               ast_cli(a->fd, "  Maximum open file handles:   %d\n", 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 < option_maxfiles) {
+               ast_cli(a->fd, "  Maximum open file handles:   %d (is) %d (requested)\n", (int) limits.rlim_cur, 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);