aboutsummaryrefslogtreecommitdiffstats
path: root/main
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
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')
-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) {