aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-05-24 18:30:00 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-05-24 18:30:00 +0000
commite058fa8cf07ecdcb1c667d699ab2eb5ecf2de7db (patch)
treed91c4d14a05df010a006d127f71db15e4a081685
parent5424d7fc6d7a6731c9994dbff4023c9746a20317 (diff)
Merged revisions 265316 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r265316 | tilghman | 2010-05-24 13:19:08 -0500 (Mon, 24 May 2010) | 7 lines On systems with a LOT of RAM, a signed integer sometimes printed negative. (closes issue #16837) Reported by: jlpedrosa Patches: 20100504__issue16837.diff.txt uploaded by tilghman (license 14) ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@265318 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/asterisk.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 60737ed67..42829addd 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -560,13 +560,14 @@ static int swapmode(int *used, int *total)
/*! \brief Give an overview of system statistics */
static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
- int64_t physmem, freeram;
- int totalswap = 0, freeswap = 0, nprocs = 0;
+ uint64_t physmem, freeram;
+ uint64_t totalswap = 0, freeswap = 0;
+ int nprocs = 0;
long uptime = 0;
#if defined(HAVE_SYSINFO)
struct sysinfo sys_info;
sysinfo(&sys_info);
- uptime = sys_info.uptime/3600;
+ uptime = sys_info.uptime / 3600;
physmem = sys_info.totalram * sys_info.mem_unit;
freeram = (sys_info.freeram * sys_info.mem_unit) / 1024;
totalswap = (sys_info.totalswap * sys_info.mem_unit) / 1024;
@@ -615,7 +616,7 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
sysctl(mib, 2, &vmtotal, &len, NULL, 0);
freeram = (vmtotal.t_free << pageshift);
/* generate swap usage and totals */
- swapmode(&usedswap, &totalswap);
+ swapmode(&usedswap, &totalswap);
freeswap = (totalswap - usedswap);
/* grab number of processes */
#if defined(__OpenBSD__)
@@ -639,14 +640,14 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
ast_cli(a->fd, "\nSystem Statistics\n");
ast_cli(a->fd, "-----------------\n");
- ast_cli(a->fd, " System Uptime: %ld hours\n", uptime);
- ast_cli(a->fd, " Total RAM: %ld KiB\n", (long)physmem/1024);
- ast_cli(a->fd, " Free RAM: %ld KiB\n", (long)freeram);
+ ast_cli(a->fd, " System Uptime: %lu hours\n", uptime);
+ ast_cli(a->fd, " Total RAM: %" PRIu64 " KiB\n", physmem / 1024);
+ ast_cli(a->fd, " Free RAM: %" PRIu64 " KiB\n", freeram);
#if defined(HAVE_SYSINFO)
- ast_cli(a->fd, " Buffer RAM: %ld KiB\n", (sys_info.bufferram * sys_info.mem_unit)/1024);
+ ast_cli(a->fd, " Buffer RAM: %" PRIu64 " KiB\n", ((uint64_t) sys_info.bufferram * sys_info.mem_unit) / 1024);
#endif
- ast_cli(a->fd, " Total Swap Space: %ld KiB\n", (long)totalswap);
- ast_cli(a->fd, " Free Swap Space: %ld KiB\n\n", (long)freeswap);
+ ast_cli(a->fd, " Total Swap Space: %" PRIu64 " KiB\n", totalswap);
+ ast_cli(a->fd, " Free Swap Space: %" PRIu64 " KiB\n\n", freeswap);
ast_cli(a->fd, " Number of Processes: %d \n\n", nprocs);
return CLI_SUCCESS;
}