diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-09-09 15:59:41 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-09-09 15:59:41 -0400 |
commit | 49f9c4924e54b55c34050a2ce1053f7cd78eeaf5 (patch) | |
tree | 5c9fe9fc3c7eb80f4ac066af3a0190a4d4e5b649 /src/common/sandbox.h | |
parent | e9ec0cb5506b81f7f7c54e06a95dafac4acb38e3 (diff) | |
download | tor-49f9c4924e54b55c34050a2ce1053f7cd78eeaf5.tar.gz tor-49f9c4924e54b55c34050a2ce1053f7cd78eeaf5.zip |
Fix compilation on OSX
Diffstat (limited to 'src/common/sandbox.h')
-rw-r--r-- | src/common/sandbox.h | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/common/sandbox.h b/src/common/sandbox.h index a1434cea92..07c34a4fd8 100644 --- a/src/common/sandbox.h +++ b/src/common/sandbox.h @@ -12,6 +12,9 @@ #ifndef SANDBOX_H_ #define SANDBOX_H_ +#include "orconfig.h" +#include "torint.h" + #ifndef SYS_SECCOMP /** @@ -22,12 +25,15 @@ #endif -#include "torint.h" +#if defined(HAVE_SECCOMP_H) && defined(__linux__) +#define USE_LIBSECCOMP +#endif + /** * Linux definitions */ -#ifdef __linux__ +#ifdef USE_LIBSECCOMP #ifndef __USE_GNU #define __USE_GNU @@ -80,8 +86,6 @@ struct sandbox_cfg_elem { /** Next element of the configuration*/ struct sandbox_cfg_elem *next; }; -/** Typedef to structure used to manage a sandbox configuration. */ -typedef struct sandbox_cfg_elem sandbox_cfg_t; /** * Structure used for keeping a linked list of getaddrinfo pre-recorded @@ -127,22 +131,38 @@ typedef struct { #endif -#endif // __linux__ +#endif // USE_LIBSECCOMP + +/** Typedef to structure used to manage a sandbox configuration. */ +typedef struct sandbox_cfg_elem sandbox_cfg_t; +#ifdef USE_LIBSECCOMP /** Pre-calls getaddrinfo in order to pre-record result. */ int sandbox_add_addrinfo(const char *addr); +struct addrinfo; /** Replacement for getaddrinfo(), using pre-recorded results. */ -int sandbox_getaddrinfo(const char *name, const struct addrinfo *hints, - struct addrinfo **res); +int sandbox_getaddrinfo(const char *name, const char *servname, + const struct addrinfo *hints, + struct addrinfo **res); +#else +#define sandbox_getaddrinfo(name, servname, hints, res) \ + getaddrinfo((name),(servname), (hints),(res)) +#define sandbox_add_addrinfo(name) \ + ((void)(name)) +#endif /** Use <b>fd</b> to log non-survivable sandbox violations. */ void sandbox_set_debugging_fd(int fd); +#ifdef USE_LIBSECCOMP /** Returns a registered protected string used with the sandbox, given that * it matches the parameter. */ const char* sandbox_intern_string(const char *param); +#else +#define sandbox_intern_string(s) (s) +#endif /** Creates an empty sandbox configuration file.*/ sandbox_cfg_t * sandbox_cfg_new(void); |