Commit Graph

13187 Commits

Author SHA1 Message Date
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 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
Martin Willi 78bde29a7c kernel-wfp: Install routes for trap policies 2014-06-04 16:32:11 +02:00
Martin Willi e36d1d4124 kernel-wfp: Refactor route management to separate function 2014-06-04 16:32:11 +02:00
Martin Willi 4a8ba369b6 kernel-wfp: Install tunnel mode policies to appropriate sub-layers
While it is unclear if this has any effect at all, we prefer specific sublayers
to install policies as suggested.
2014-06-04 16:32:11 +02:00