13190 Commits

Author SHA1 Message Date
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
bc1139480f watcher: Prevent race condition spawning multiple watcher threads
If file descriptors get added and removed in rapid succession, the active
watcher thread might not take notice of it and continues running. However, add()
spawns a watcher thread whenever a file descriptor is added to an empty set.
This could result in multiple watcher threads, which is fixed by a proper
check for running watchers.
2014-06-17 15:19:47 +02:00
Martin Willi
23750961d5 thread-value: Defer cleanup handling to thread termination on Windows
Instead of cleaning up all thread-values during destruction, cleanup handler
is invoked when a thread detaches. Thread detaching is cough using the Windows
DllMain() entry point, and allows us to basically revert 204098a7.

Using this mechanism, we make sure that the cleanup handler is invoked by the
the correct thread. Further, this mechanism works for externally-spawned
threads which run outside of our thread_cb() routine, and works more efficiently
with short-running threads.
2014-06-17 15:19:40 +02:00
Martin Willi
2d846c2035 socket-win: Use non-overlapped I/O and socket event selection
The use of overlapped I/O was incorrect, as we passed stack based buffers, but
did not cancel/wait for pending completion on all sockets. Our receive-from-all
socket interface is actually tricky to implement using overlapped I/O. Switch
to WSAEventSelect() event management, which can be canceled properly while
working in a select()-like way.
2014-06-17 15:19:25 +02:00
Martin Willi
31f2696076 Merge branch 'attr-enum'
Introduces a handle_vips() hook very similar to assign_vips(), but for clients
handling virtual IPs and other configuration attributes. Non-handled attributes
are stored on the IKE_SA as well and can be enumerated.
2014-06-17 15:15:02 +02:00
Martin Willi
eef7427b0f bus: Add a handle_vips() hook invoked after handling configuration attributes
Similar to assign_vips() used by a peer assigning virtual IPs to the other peer,
the handle_vips() hook gets invoked on a peers after receiving attributes. On
release of the same attributes the hook gets invoked again.

This is useful to inspect handled attributes, as the ike_updown() hook is
invoked after authentication, when attributes have not been handled yet.
2014-06-17 15:14:51 +02:00
Martin Willi
7fc98a840b ikev1: Invoke the assign_vips() bus hook for IKEv1 as well 2014-06-16 15:59:17 +02:00
Martin Willi
9d257034d8 ike: Create an enumerator for (un-)handled configuration attributes on IKE_SA 2014-06-16 15:59:17 +02:00
Martin Willi
5ae3221075 ike: Store unhandled attributes on IKE_SA as well 2014-06-16 15:59:16 +02:00
Andreas Steffen
b16e177e06 Version bump to 5.2.0rc1 2014-06-15 11:40:15 +02:00
Andreas Steffen
733037009f Mentioned first six swanctl scenarios in NEWS 5.2.0dr6 2014-06-14 15:43:44 +02:00
Andreas Steffen
39d6469d76 Added swanctl/rw-psk-fqdn and swanctl/rw-psk-ipv4 scenarios 2014-06-14 15:40:23 +02:00
Andreas Steffen
3eb22f1f00 Single-line --raw mode simplifies evaltest of swanctl scenarios 2014-06-14 15:40:23 +02:00
Andreas Steffen
dacb75f5c0 Split swanctl --raw mode into single-line and --pretty mode 2014-06-14 15:40:22 +02:00
Andreas Steffen
12d618e280 Added swanctl/ip-pool-db scenario 2014-06-11 18:12:35 +02:00
Andreas Steffen
cda2a1e4dc Updated strongTNC configuration 2014-06-11 18:12:34 +02:00
Andreas Steffen
d643f2cf91 Added swanctl/ip-pool scenario 2014-06-10 16:48:16 +02:00
Andreas Steffen
3a9602d58b Allow multiple hash values in the file reference database 2014-06-10 16:48:15 +02:00
Andreas Steffen
c621847395 Added swanctl/rw-cert scenario 2014-06-10 16:48:15 +02:00
Andreas Steffen
8fc0eae37b Added Android 4.3 and 4.4.3 to imv database 2014-06-10 16:19:00 +02:00
Andreas Steffen
b09016377a Define default swanctl credentials in hosts directory 2014-06-10 16:19:00 +02:00
Andreas Steffen
6d092615e3 Added missing units (s = seconds) 2014-06-10 16:18:23 +02:00
Andreas Steffen
352fd7a94b Fixes in SWID entity support 2014-06-08 11:13:51 +02:00
Martin Willi
4f31b3f724 Merge branch 'win-32bit'
Fixes some issues when building 32-bit Windows binaries. Mostly related
to the call API. Introduces a Travis 32-bit Windows build variant.
2014-06-06 16:33:50 +02:00
Martin Willi
fd372e13a2 travis: Add a Windows 32-bit variant build test 2014-06-06 16:28:28 +02:00
Martin Willi
9c62511c08 windows: Link against psapi32
On some version GetModuleFileNameEx/GetModuleInformation is in psapi32 instead
of kernel32. We link to both libraries to make sure we have it.
2014-06-06 16:28:28 +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
bd19e27ae3 windows: Do not check if having clock_gettime()
Windows does not have it, but libwinpthread has. If this library is available
during build, it will be linked, which we prefer to avoid.
2014-06-06 15:34:12 +02:00
Andreas Steffen
9d228ddb04 Version bump to 5.2.0dr6 2014-06-06 11:18:17 +02:00
Andreas Steffen
e247acb8a9 Ubuntu 14.04 updated to 3.13.0-29 kernel 2014-06-06 11:18:17 +02:00
Andreas Steffen
438df3d696 Extended pt-tls-client PLUGINS list 2014-06-06 11:18:17 +02:00
Andreas Steffen
b23c7d6a38 Updated REST API 2014-06-06 10:56:12 +02:00
Tobias Brunner
35e08cde3c android: Add all Android.mk files to the tarball 2014-06-06 10:12:26 +02:00
Andreas Steffen
18ba2a3035 Fixed typo in strongswan.conf 2014-06-05 11:26:54 +02:00
Martin Willi
4c5e52f52c NEWS: Introduce Windows support 2014-06-04 16:41:50 +02:00
Martin Willi
c81a03e300 Merge branch 'win-fetcher'
Implements a HTTP/HTTPS fetcher for the Windows platform using the native
WinHTTP API.
2014-06-04 16:35:33 +02:00
Martin Willi
c572401b34 travis: Build "all" tests without Windows HTTP fetcher
We don't include it in the Windows build test either, as MinGW does not come
with -lwinhttp.
2014-06-04 16:34:16 +02:00
Martin Willi
f48c26bce3 pki: Support complex trustchain and revocation checking in --verify 2014-06-04 16:34:16 +02:00
Martin Willi
74eedc8061 unit-tests: Zero-initialize chunk to avoid free on non-successful fetch
If the fetch fails, the fetcher is not required to return an empty chunk. Avoid
the resulting invalid free() by initializing data.ptr to NULL.
2014-06-04 16:34:16 +02:00
Martin Willi
8a072fc50a winhttp: Support basic authentication for URLs having credentials 2014-06-04 16:34:16 +02:00
Martin Willi
2e0816e1df winhttp: Support new response code fetcher option 2014-06-04 16:34:15 +02:00
Martin Willi
6f90fc8061 winhttp: Implement a http(s) fetcher based on Microsofts WinHTTP API 2014-06-04 16:34:15 +02:00
Martin Willi
d2859f5251 Merge branch 'win-kernel'
Adds the kernel-iph and kernel-wfp kernel backends for the Windows platform.
kernel-iph provides a networking backend using the IP Helper native Windows
API, while the kernel-wfp backend implements an interface to the Windows Kernel
IPsec layer using the Windows Filtering Platform API.
2014-06-04 16:32:23 +02:00
Martin Willi
4732e29a1d travis: Build "all" tests without Windows kernel backends 2014-06-04 16:32:12 +02:00
Martin Willi
4b9848a2cc kernel-wfp: Include Windows header patch for MinGW 4.8.1 2014-06-04 16:32:12 +02:00
Martin Willi
75afbeee21 kernel-wfp: Clone acquire traffic selectors only if they exist 2014-06-04 16:32:11 +02:00