diff options
author | Martin Willi <martin@revosec.ch> | 2013-03-01 11:16:58 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-03-01 11:16:58 +0100 |
commit | d634109f1df9586fe7fd206050c4f64c6c1fadaa (patch) | |
tree | ece6ee596b393c690b9fbac3e55692a16c2f219b /src/libhydra/kernel/kernel_interface.c | |
parent | 9a70fe84126c9b1ebb42640faaf33f5e8bf47f7c (diff) | |
parent | 5c55be49153a5f960769f66a67ecdafc77649115 (diff) | |
download | strongswan-d634109f1df9586fe7fd206050c4f64c6c1fadaa.tar.bz2 strongswan-d634109f1df9586fe7fd206050c4f64c6c1fadaa.tar.xz |
Merge branch 'tfc-notify'
Introduces kernel backend features, sends ESP_TFC_PADDING_NOT_SUPPORTED if
kernel does not support it.
Diffstat (limited to 'src/libhydra/kernel/kernel_interface.c')
-rw-r--r-- | src/libhydra/kernel/kernel_interface.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libhydra/kernel/kernel_interface.c b/src/libhydra/kernel/kernel_interface.c index 8948e0561..b82fd6d3d 100644 --- a/src/libhydra/kernel/kernel_interface.c +++ b/src/libhydra/kernel/kernel_interface.c @@ -137,6 +137,22 @@ struct private_kernel_interface_t { bool ifaces_exclude; }; +METHOD(kernel_interface_t, get_features, kernel_feature_t, + private_kernel_interface_t *this) +{ + kernel_feature_t features = 0; + + if (this->ipsec && this->ipsec->get_features) + { + features |= this->ipsec->get_features(this->ipsec); + } + if (this->net && this->net->get_features) + { + features |= this->net->get_features(this->net); + } + return features; +} + METHOD(kernel_interface_t, get_spi, status_t, private_kernel_interface_t *this, host_t *src, host_t *dst, u_int8_t protocol, u_int32_t reqid, u_int32_t *spi) @@ -682,6 +698,7 @@ kernel_interface_t *kernel_interface_create() INIT(this, .public = { + .get_features = _get_features, .get_spi = _get_spi, .get_cpi = _get_cpi, .add_sa = _add_sa, @@ -757,4 +774,3 @@ kernel_interface_t *kernel_interface_create() return &this->public; } - |