Tobias Brunner
9e3ab0d114
ikev2: Reorder task activation for established IKE SAs
...
We now prefer MOBIKE tasks over delete tasks then the rest.
2014-09-25 10:16:45 +02:00
Tobias Brunner
b3a7ba14f1
Revert "ikev2: Insert MOBIKE tasks at the front of the queue"
...
This reverts commit 3293d14628 .
The position of tasks in the queue does not actually determine the order
in which they are activated. Instead this is determined by the
statements in task_manager_v2_t.initiate().
2014-09-25 10:16:45 +02:00
Martin Willi
a336aefa89
curl: For SSL features, depend on thread-safety provided by our crypto plugins
...
To use SSL in curl, we need to initialize the SSL library in a thread-safe
manner and provide the appropriate callbacks. As we already do that in our
crypto plugins using these libraries, we depend on these features.
This implies that we need the same plugin enabled (openssl, gcrypt) as the
curl backend is configured to use to fetch from HTTPS URIs.
2014-09-24 17:35:16 +02:00
Martin Willi
d717b42b51
curl: Dynamically query supported protocols and register appropriate features
2014-09-24 11:35:59 +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
Martin Willi
85c95db17a
curl: Try to initialize with SSL support to handle https:// URIs
...
If initialization fails, we fall back to the old behavior.
2014-09-24 11:35:59 +02:00
Martin Willi
5ea627bdfa
watcher: Add a method to query the watcher state
...
This allows a user to check if the watcher is actually running, and potentially
perform read operations directly instead of relying on watcher.
2014-09-24 11:19:59 +02:00
Martin Willi
12c0bde689
kernel-netlink: Define and use rtnetlink message types
2014-09-24 11:19:59 +02:00
Martin Willi
c94e93a7ab
kernel-netlink: Pass protocol specific enum names to socket constructor
...
This avoid the hard dependency on enum names, and makes kernel_netlink_shared
independent of kernel_netlink_ipsec.
2014-09-24 11:19:59 +02:00
Martin Willi
5957e76b38
kernel-netlink: Clean up socket initialization, handle 0 as valid socket fd
2014-09-24 11:19:59 +02:00
Martin Willi
4c3aca273f
kernel-netlink: Clean up response buffer management
2014-09-24 11:19:59 +02:00
Martin Willi
de11d34abb
kernel-netlink: Use recv() instead of recvfrom()
...
As we are not interested in the returned address, there is really no need
in passing that argument.
2014-09-24 11:19:59 +02:00
Martin Willi
4c438cf099
kernel-netlink: Avoid casting the NLMSG_DATA() return value
...
There is really no need for doing so, and it makes the code just unreadable.
2014-09-24 11:19:59 +02:00
Martin Willi
0404a29bfe
kernel-netlink: Define netlink buffer as an union having a netlink header
...
This allows us to streamline the netlink buffers, and avoid extensive
casting.
2014-09-24 11:19:58 +02:00
Martin Willi
db8ae75bf6
systemd: Discover and check systemd libraries with pkg-config during configure
2014-09-22 14:19:38 +02:00
Martin Willi
e2d9f27c19
systemd: Add a native systemd journal logger
2014-09-22 14:19:37 +02:00
Martin Willi
5421092b75
plugin-loader: Support a reload() callback for static features
2014-09-22 13:55:12 +02:00
Martin Willi
73ed38e74f
systemd: Provide a charon-systemd daemon targeting full systemd integration
2014-09-22 13:55:11 +02:00
Martin Willi
d9a2f1330a
swanctl: Complete --load-creds command summary
2014-09-22 13:55:11 +02:00
Martin Willi
71d85b33d9
swanctl: Fix description of load-pools command summary
2014-09-22 13:55:11 +02:00
Martin Willi
67402e67af
swanctl: Add a --load-all command, performing --load-{creds,pools,conns}
2014-09-22 13:55:11 +02:00
Martin Willi
214a859cd6
swanctl: Add a --reload-settings command
2014-09-22 13:55:11 +02:00
Martin Willi
455e213cb0
vici: Add a command to reload strongswan.conf
2014-09-22 13:44:27 +02:00
Martin Willi
2dee0a85a6
encoding: Accept all exchange types for non IKEv1/IKEv2 major versions
2014-09-22 13:42:11 +02:00
Martin Willi
d8ad0fc351
settings: Make loading a NULL or empty pattern a (nop-)success
2014-09-22 13:40:39 +02:00
Martin Willi
68da3bad57
settings: Use strongswan.conf used during library initialization for reload
...
Since 4b670a20 we require an explicit strongswan.conf to re-load configurations.
However, the define was missing in the build, breaking SIGHUP based config
reloading.
Fixes #651 .
2014-09-22 13:40:39 +02:00
Martin Willi
9e783f6e89
library: Store the used root strongswan.conf configuration
2014-09-22 13:40:39 +02:00
Tobias Brunner
bc9acd7b9e
swanctl: Document --stats command
2014-09-19 11:30:08 +02:00
Tobias Brunner
22949c590f
ikev2: Don't treat initial messages as MOBIKE exchanges
...
The MOBIKE task is active during the initial exchanges but we don't want
to treat them as actual MOBIKE exchanges (i.e. there is no path probing).
2014-09-16 15:05:12 +02:00
Tobias Brunner
8a6b01dd2a
ikev1: Don't cache last block of INFORMATIONAL messages as IV
...
We don't expect a response with the same MID, but apparently some
devices (e.g. FRITZ!Box) do that for DPDs, while still treating the
response as a new exchange. By storing the last message block as IV
we can't decrypt the first block of such a response.
Fixes #661 .
2014-09-12 13:56:18 +02:00
Tobias Brunner
2e62f51bcc
ikev1: Log IV when encrypting messages
2014-09-12 13:56:17 +02:00
Tobias Brunner
2f7fef569b
ikev1: Skip unusable IPComp proposals
...
Fixes #661 .
2014-09-12 13:56:06 +02:00
Tobias Brunner
84337ac8d0
ikev1: Properly handle different proposal numbering schemes
...
While the examples in RFC 2408 show proposal numbers starting at 1 and
increasing by one for each subsequent proposal this is not mandatory.
Actually, IKEv1 proposals may start at any number, the only requirement
is that the proposal numbers increase monotonically they don't have to
do so consecutively.
Most implementations follow the examples and start numbering at 1 (charon,
racoon, Shrew, Cisco, Windows XP, FRITZ!Box) but pluto was one of the
implementations that started with 0 and there might be others out there.
The previous assumption that implementations always start numbering proposals
at 0 caused problems with clients that start numbering with 1 and whose first
proposal consists of multiple protocols (e.g. ESP+IPComp).
Fixes #661 .
2014-09-12 13:55:00 +02:00
Tobias Brunner
90e6675a65
kernel-netlink: Optionally install protocol and ports on transport mode SAs
2014-09-12 10:45:50 +02:00
Tobias Brunner
acd69fc291
ikev2: Reduce timeout if path probing was enabled
2014-09-12 10:29:37 +02:00
Tobias Brunner
de6ab8e85a
ikev2: Defer MOBIKE updates if no path is available
2014-09-12 10:29:37 +02:00
Tobias Brunner
8956dcecd4
ike-mobike: Allow calling transmit() even when not currently path probing
...
Path probing is enabled if the current path is not available anymore.
2014-09-12 10:29:37 +02:00
Tobias Brunner
10bad0fc23
ikev2: Defer path probing if no path is currently available
...
We do the same before initiating the task, so we should probably do it
too when we already initiated it, not just time out and destroy the SA.
2014-09-12 10:29:37 +02:00
Tobias Brunner
7840952edc
ike-mobike: Return FALSE in transmit() if no path was available
2014-09-12 10:29:36 +02:00
Tobias Brunner
1b17f647a5
ikev2: Enable path probing for currently active MOBIKE task
...
This might not be the case if e.g. an address appeared but the old one
is still available but not actually usable. Without this the MOBIKE
task would eventually time out even though we might be able to switch
to a working address.
2014-09-12 10:29:36 +02:00
Tobias Brunner
2180ace937
ike-mobike: Add method to enable path probing
2014-09-12 10:29:36 +02:00
Tobias Brunner
c5a5bc85d9
ike-mobike: Skip peer addresses we can't send packets to when checking paths
2014-09-12 10:29:36 +02:00
Tobias Brunner
ff60134157
ikev2: Skip peer addresses we can't send packets to when looking for valid paths
2014-09-12 10:29:36 +02:00
Tobias Brunner
3293d14628
ikev2: Insert MOBIKE tasks at the front of the queue
...
In case we have no usable path to the other peer there is no point in
initiating any other tasks (like rekeying).
2014-09-12 10:29:36 +02:00
Tobias Brunner
40164bbe27
ikev2: Migrate number of pending MOBIKE updates
...
This will probably never be more than 1 since we only have one task queued
at a time and we don't migrate running tasks.
2014-09-12 10:29:36 +02:00
Tobias Brunner
03f61ba3d5
ikev2: Properly keep track of pending MOBIKE updates
...
Because we only queue one MOBIKE task at a time, but destroy superfluous
ones only after we already increased the counter for pending MOBIKE updates,
we have to reduce the counter when such tasks are destroyed. Otherwise, the
queued task would assume another task is queued when it is running and
ignore any successful response.
2014-09-12 10:29:36 +02:00
Tobias Brunner
f9ceb5b543
android: Reduce CHILD_SA lifetime
2014-09-12 10:21:50 +02:00
Tobias Brunner
1fe3b02838
android: Add DH groups to ESP proposals
2014-09-12 10:21:49 +02:00
Tobias Brunner
f92399ef18
child-cfg: Ignore duplicate proposals
...
If ESP proposals are added once with and once without DH groups
duplicates result during IKE_AUTH when DH groups are stripped.
2014-09-12 10:18:14 +02:00
Tobias Brunner
8e52dc2733
proposal: Fix equals()
2014-09-12 10:18:13 +02:00