Martin Willi
04337fed02
apple: Redefine some additional clashing Mach types
...
While they usually are not included in a normal strongSwan build, the XPC
header indirectly defines these Mach types. To build charon-xpc, which uses
both XPC and strongSwan includes, we have to redefine these types.
2014-12-16 17:22:28 +01:00
Martin Willi
6e4620adfb
apple: Use precancelable poll() to wrap accept/recvmsg calls
...
To make accept/recvmsg cancelable, we wrap them with poll. As poll itself
does not honor pending cancellations when entering the function, we use our
variant that checks for pending cancellation requests before entering poll().
2014-12-12 12:08:34 +01:00
Martin Willi
02fd29acc1
windows: Properly set errno for read/write functions using Winsock
2014-11-28 12:45:58 +01:00
Martin Willi
89f19ef876
windows: Move the compatibility header to the compat subfolder
2014-11-21 12:02:08 +01:00
Martin Willi
aec3d5fb7f
apple: Wrap accept() and recvfrom() with poll(2) instead of select
2014-11-21 12:02:08 +01:00
Martin Willi
f65779dd0f
apple: Introduce a central compatibility header with all __APPLE__ quirks
2014-11-21 12:02:08 +01:00
Martin Willi
a301a9c939
windows: Provide a write(2) wrapper that uses send(2) on sockets
2014-11-21 12:02:08 +01:00
Martin Willi
09624c6cec
windows: Provide a read(2) wrapper that uses recv(2) on sockets
2014-11-21 12:02:08 +01:00
Martin Willi
fc829ec9fb
windows: Provide a poll(2) wrapper calling WSAPoll()
2014-11-21 11:16:48 +01:00
Martin Willi
6528338753
identification: Support custom types in string constructor prefixes
2014-10-30 11:07:08 +01:00
Martin Willi
c0da835a9f
identification: Support prefixes in string constructors for an explicit type
2014-10-30 11:05:44 +01:00
Tobias Brunner
eb218ff80b
chunk: Fix internet checksum calculation on big-endian systems
...
ntohs() might be defined as noop (#define ntohs(x) (x)) so we have
to manually shorten the negated value (gets promoted to an int).
Fixes #747 .
2014-10-23 11:13:28 +02:00
Tobias Brunner
c71e6820ab
backtrace: Fix symbol lookup in dynamic symtab via libbfd
2014-10-14 17:26:48 +02:00
Martin Willi
5b2d89b3c3
process: Include missing <signal.h> for raise(3)
...
Fixes OS X build.
2014-10-14 16:33:10 +02:00
Martin Willi
7dd06d274d
process: Add a wrapper to invoke a command under the system default shell
2014-10-06 18:24:39 +02:00
Martin Willi
02e4dedce5
process: Port child process spawning to the Windows platform
2014-10-06 18:24:39 +02:00
Martin Willi
1fea589c1f
process: Provide an abstraction to spawn child processes with redirected I/O
2014-10-06 18:24:39 +02:00
Martin Willi
6eaec1e349
leak-detective: Whitelist libssl SSL_COMP_get_compression_methods()
...
This function is called by libcurl initialization with SSL, and uses
a static allocation of compression algorithms not freed.
2014-09-24 11:35:59 +02:00
Tobias Brunner
c6e8b5dc2c
chunk: Fix Doxygen comments for chunk_internet_checksum[_inc]
2014-09-11 17:56:12 +02:00
Martin Willi
11bf11c1f5
utils: Check if the parameter passed to countof() is actually an array type
...
This should avoid errors such as the one fixed with 118b2879 .
2014-08-25 09:48:53 +02:00
Martin Willi
bb6be26197
utils: Add some initial build time assertion macros
...
These are useful to assert constants during build time. We evaluate the
expression to 0 when valid, so we can safely use the evaluated value.
2014-08-25 09:48:53 +02:00
Tobias Brunner
b557f4a7cd
chunk: Add function to calculate Internet Checksums according to RFC 1071
2014-07-22 11:10:35 +02:00
Martin Willi
920d466f05
utils: Undefine mem{cpy,move,set} if set before defining them
...
Some platforms, such as OS X, use macros for these functions. Undefine them
to avoid compiler warnings.
2014-07-07 16:14:26 +02:00
Tobias Brunner
831045ef45
optionsfrom: Properly handle errors when determining file size
2014-07-02 12:38:45 +02:00
Tobias Brunner
e44223dbcc
windows: Fix off-by-one error in strerror_s_extended()
2014-07-02 12:38:45 +02:00
Tobias Brunner
0026600bfe
windows: accept() socket handle could theoretically be 0
2014-07-02 12:38:45 +02:00
Tobias Brunner
babe9e4f45
windows: Close correct socket when opening second socket fails in socketpair()
2014-07-02 12:38:44 +02:00
Tobias Brunner
0a26f39a71
windows: Make sure the string returned from ReadConsole() is null terminated
2014-07-02 12:38:44 +02:00
Tobias Brunner
0e48f67562
backtrace: Remove name checks after SymFromAddr() calls
...
The Name member is an array whose address is always defined.
2014-07-02 12:11:59 +02:00
Tobias Brunner
1be2b84124
parser-helper: Ensure file_next() does not remove the sentinel item
2014-07-01 17:58:36 +02:00
Tobias Brunner
e79dbda390
utils: Helper macros to define overloaded macros based on number of arguments
2014-06-30 13:29:26 +02:00
Tobias Brunner
aad072d517
enum: Replace þ with p in Doxygen comments
2014-06-30 13:16:17 +02:00
Tobias Brunner
ed01c1afff
Fixed some typos
2014-06-30 13:16:16 +02:00
Martin Willi
07b57e203b
windows: Include <sys/stat.h> explicitly before overloading memset()/memcpy()
...
fstat() in newer MinGWs is defined as non-static inline. With our new static
inline memset()/memcpy() overloads, this raises a warning. To avoid it,
explicitly include <sys/stat.h> once before defining these overloads.
2014-06-25 16:09:42 +02:00
Tobias Brunner
6d4654b9f9
utils: Add wrappers for memcpy(3), memmove(3) and memset(3)
...
These wrappers guarantee that calls to these functions are noops if the
number of bytes is 0, as calling them with NULL pointers is undefined
according to the C standard, even if the number of bytes is 0 (most
implementations probably ignore the pointers anyway in this case, but
lets make sure).
2014-06-24 15:11:27 +02:00
Tobias Brunner
aba55fdffe
identification: Only use either , or / to separate RDNs
...
If a DN starts with a slash (or whitespace and a slash) slashes will
be used, otherwise commas.
2014-06-18 09:24:03 +02:00
Martin Willi
dff39a4c5b
windows: Declare strerror_s()
...
Older MinGW versions seem to miss this function declaration. Fixes build on
Travis using Ubuntu 12.04.
2014-06-17 15:23:33 +02:00
Martin Willi
1bcf850738
windows: Extend strerror_r/s by extended POSIX errno strings
2014-06-17 15:23:33 +02:00
Martin Willi
c2119cded4
windows: Implement strerror_r using strerror_s
2014-06-17 15:23:33 +02:00
Martin Willi
8b5d41a274
windows: Wrap most Winsock2 Posix functions to set errno
...
While Winsock provides many Posix compatibility functions, they do not set
errno, but use WSAGetLastError() for error reporting. The wrapped functions
derive an errno from WSAGetLastError() on failure.
2014-06-17 15:23:32 +02:00
Martin Willi
8c2c63e09d
backtrace: Use GetModuleInformation/GetModuleFileNameEx directly on Win32
...
The K32 variants are actually needed on 64-bit only.
2014-06-06 16:28:28 +02:00
Martin Willi
cab59c73fc
windows: Use WINAPI call convention for Windows API callbacks
...
For x86_64 it does not actually matter, but for i686 builds the call convention
is different with WINAPI.
2014-06-06 16:28:28 +02:00
Martin Willi
7659f67af3
windows: Provide POSIX supplement errno values missing in MinGW
...
MinGW headers do not define these values, but Windows system headers do.
Windows defines them for POSIX compatibility, we do the same locally.
2014-06-04 15:53:12 +02:00
Martin Willi
2162e50004
windows: Provide shutdown(2) operation aliases mapping to those on Windows
2014-06-04 15:53:12 +02:00
Martin Willi
0c34c1b3af
unit-tests: Support testable functions on Windows, avoid weak GCC symbols
...
Instead of using weak symbols, we use dlsym() on Windows to find an arbitrary
symbol in libtest to detect its linkage. Instead of creating the associated
hashtable in the test runner, we maintain it in libstrongswan, making it
significantly simpler.
2014-06-04 15:53:12 +02:00
Martin Willi
460adb5d09
unit-tests: Seed chunk_hash() only once, but before creating any hashtables
...
Due to the removal of pthread_once, we manually create the seed for
chunk_hash(). With the new testable functions interface, this won't work for
the hashtable initiated using __attribute__((constructor)). Enforce seeding
before creating that hashtable.
2014-06-04 15:53:11 +02:00
Martin Willi
66c0801dc7
utils: Add a wait_sigint() function to wait for SIGINT or equivalent
2014-06-04 15:53:11 +02:00
Martin Willi
1309cb7b1a
chunk: On Windows, use binary mode in chunk_write()
2014-06-04 15:53:10 +02:00
Martin Willi
bc9fd3735d
parser-helper: Detect absolute pathnames and concatenate paths on Windows
2014-06-04 15:53:09 +02:00
Martin Willi
67b3bcd13d
utils: Provide a path_absolute() function to check path for non-relativeness
...
The usually used trivial '/' check won't work on Windows platforms.
2014-06-04 15:53:09 +02:00