aboutsummaryrefslogtreecommitdiffstats
path: root/main/asterisk.c
diff options
context:
space:
mode:
authormvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-14 19:36:57 +0000
committermvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-14 19:36:57 +0000
commita42d9b0219e1990d7178173a10b18543d701061a (patch)
tree8e590a1c4426d0f4be4ef7af81a03c1a5262495c /main/asterisk.c
parentec7564e8529e95a2f6123d195c590f3d3b2f6281 (diff)
Fix compilation on FreeBSD and OSX
This started as work to fix the 'core show sysinfo' CLI command but while working on it oej pointed out that read_credentials did not compile neither. So while being there, fix that as well. Thanks for all the testing oej! (closes issue #14129) Reported by: ys Tested by: oej, mvanbaak git-svn-id: http://svn.digium.com/svn/asterisk/trunk@168609 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/asterisk.c')
-rw-r--r--main/asterisk.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index d48c15615..20d845df5 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -81,6 +81,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#elif defined(HAVE_SYSCTL)
#include <sys/param.h>
#include <sys/sysctl.h>
+#if !defined(__OpenBSD__)
+#include <sys/vmmeter.h>
+#if defined(__FreeBSD__)
+#include <vm/vm_param.h>
+#endif
+#endif
#if defined(HAVE_SWAPCTL)
#include <sys/swap.h>
#endif
@@ -552,7 +558,7 @@ static int swapmode(int *used, int *total)
static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
int64_t physmem, freeram;
- int totalswap, freeswap, nprocs;
+ int totalswap = 0, freeswap = 0, nprocs = 0;
long uptime = 0;
#if defined(HAVE_SYSINFO)
struct sysinfo sys_info;
@@ -568,7 +574,7 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
struct vmtotal vmtotal;
struct timeval boottime;
time_t now;
- int mib[2], pagesize, usedswap;
+ int mib[2], pagesize, usedswap = 0;
size_t len;
/* calculate the uptime by looking at boottime */
time(&now);
@@ -581,7 +587,11 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
uptime = uptime/3600;
/* grab total physical memory */
mib[0] = CTL_HW;
+#if defined(__OpenBSD__)
mib[1] = HW_PHYSMEM64;
+#else
+ mib[1] = HW_PHYSMEM;
+#endif
len = sizeof(physmem);
sysctl(mib, 2, &physmem, &len, NULL, 0);
@@ -605,11 +615,13 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
swapmode(&usedswap, &totalswap);
freeswap = (totalswap - usedswap);
/* grab number of processes */
+#if defined(__OpenBSD__)
mib[0] = CTL_KERN;
mib[1] = KERN_NPROCS;
len = sizeof(nprocs);
sysctl(mib, 2, &nprocs, &len, NULL, 0);
#endif
+#endif
switch (cmd) {
case CLI_INIT:
@@ -1137,7 +1149,13 @@ static int read_credentials(int fd, char *buffer, size_t size, struct console *c
struct ucred cred;
socklen_t len = sizeof(cred);
#endif
- int result, uid, gid;
+#if defined(HAVE_GETPEEREID)
+ uid_t uid;
+ gid_t gid;
+#else
+ int uid, gid;
+#endif
+ int result;
result = read(fd, buffer, size);
if (result < 0) {