diff options
author | Laxmikant Rashinkar <LK.Rashinkar@gmail.com> | 2014-02-10 18:47:22 -0800 |
---|---|---|
committer | Laxmikant Rashinkar <LK.Rashinkar@gmail.com> | 2014-02-10 18:47:22 -0800 |
commit | c5c8324d91277bdbddf7402453b0b8f56e698972 (patch) | |
tree | f39fa62e78e274d0792bfdbd0b0202e5be323977 /common/os_calls.c | |
parent | e95edef44e1dd25cd40a650e61faff7c4977e689 (diff) | |
parent | 973d41bceb19fd2af275a1f262363cbe2db30792 (diff) | |
download | xrdp-proprietary-c5c8324d91277bdbddf7402453b0b8f56e698972.tar.gz xrdp-proprietary-c5c8324d91277bdbddf7402453b0b8f56e698972.zip |
Merge branch 'devel' of github.com:/neutrinolabs/xrdp into devel
Diffstat (limited to 'common/os_calls.c')
-rw-r--r-- | common/os_calls.c | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/common/os_calls.c b/common/os_calls.c index bb26d246..80b2d235 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,10 +608,16 @@ 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) +#if defined(_WIN32) int ucred_length; +#else + unsigned int ucred_length; +#endif struct myucred { pid_t pid; @@ -625,6 +643,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 +3143,33 @@ 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 0 on success */ int APP_CC g_shmdt(const void *shmaddr) { +#if defined(_WIN32) + return -1; +#else return shmdt(shmaddr); +#endif +} + +/*****************************************************************************/ +/* returns -1 on error 0 on success */ +int APP_CC +g_gethostname(char *name, int len) +{ + return gethostname(name, len); } |