summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMichiel van Baak <michiel@vanbaak.info>2009-01-14 19:36:57 +0000
committerMichiel van Baak <michiel@vanbaak.info>2009-01-14 19:36:57 +0000
commitd7eaa9c6aac85693672adb2b2c40dbd3e6e84dbc (patch)
tree8e590a1c4426d0f4be4ef7af81a03c1a5262495c /main
parent72fc03b6c64b180f51b3d85b92b384e4ce4b4b04 (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: https://origsvn.digium.com/svn/asterisk/trunk@168609 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-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) {