summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2014-02-08 18:05:52 -0800
committerJay Sorg <jay.sorg@gmail.com>2014-02-08 18:05:52 -0800
commit4e6d57dbe5cf231648425c686265ecc9bb8c5b7b (patch)
treec67feed9bebac93d444a75e38de37fa7134231d4 /common
parent41c3a9c6e9499b2df937f88a834774de62b04a62 (diff)
downloadxrdp-proprietary-4e6d57dbe5cf231648425c686265ecc9bb8c5b7b.tar.gz
xrdp-proprietary-4e6d57dbe5cf231648425c686265ecc9bb8c5b7b.zip
common: some notes and compile fixes
Diffstat (limited to 'common')
-rw-r--r--common/os_calls.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/common/os_calls.c b/common/os_calls.c
index bb26d246..ee9792b1 100644
--- a/common/os_calls.c
+++ b/common/os_calls.c
@@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
- * Copyright (C) Jay Sorg 2004-2013
+ * Copyright (C) Jay Sorg 2004-2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,11 @@
* put all the os / arch define in here you want
*/
+/* To test for Windows (64 bit or 32 bit) use _WIN32 and _WIN64 in addition
+ for 64 bit windows. _WIN32 is defined for both.
+ To test for Linux use __linux__.
+ To test for BSD use BSD */
+
#if defined(HAVE_CONFIG_H)
#include "config_ac.h"
#endif
@@ -60,6 +65,13 @@
#include <stdio.h>
#include <locale.h>
+/* this is so we can use #ifdef BSD later */
+/* This is the recommended way of detecting BSD in the
+ FreeBSD Porter's Handbook. */
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
+#include <sys/param.h>
+#endif
+
#include "os_calls.h"
#include "arch.h"
#include "log.h"
@@ -596,9 +608,11 @@ g_tcp_local_socket(void)
}
/*****************************************************************************/
+/* returns error */
int APP_CC
g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid)
{
+#if defined(SO_PEERCRED)
int ucred_length;
struct myucred
{
@@ -625,6 +639,9 @@ g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid)
*gid = credentials.gid;
}
return 0;
+#else
+ return 1;
+#endif
}
/*****************************************************************************/
@@ -3122,15 +3139,25 @@ g_text2bool(const char *s)
}
/*****************************************************************************/
+/* returns pointer or nil on error */
void * APP_CC
g_shmat(int shmid)
{
- return shmat(shmid, 0, 0);
+#if defined(_WIN32)
+ return 0;
+#else
+ return shmat(shmid, 0, 0);
+#endif
}
/*****************************************************************************/
+/* returns -1 on error */
int APP_CC
g_shmdt(const void *shmaddr)
{
+#if defined(_WIN32)
+ return -1;
+#else
return shmdt(shmaddr);
+#endif
}