diff options
Diffstat (limited to 'src/libcharon/config')
-rw-r--r-- | src/libcharon/config/peer_cfg.c | 18 | ||||
-rw-r--r-- | src/libcharon/config/peer_cfg.h | 13 |
2 files changed, 27 insertions, 4 deletions
diff --git a/src/libcharon/config/peer_cfg.c b/src/libcharon/config/peer_cfg.c index b278dc337..d16aedc79 100644 --- a/src/libcharon/config/peer_cfg.c +++ b/src/libcharon/config/peer_cfg.c @@ -136,6 +136,11 @@ struct private_peer_cfg_t { u_int32_t dpd; /** + * DPD timeout intervall (used for IKEv1 only) + */ + u_int32_t dpd_timeout; + + /** * virtual IP to use locally */ host_t *virtual_ip; @@ -398,6 +403,12 @@ METHOD(peer_cfg_t, get_dpd, u_int32_t, return this->dpd; } +METHOD(peer_cfg_t, get_dpd_timeout, u_int32_t, + private_peer_cfg_t *this) +{ + return this->dpd_timeout; +} + METHOD(peer_cfg_t, get_virtual_ip, host_t*, private_peer_cfg_t *this) { @@ -586,8 +597,9 @@ peer_cfg_t *peer_cfg_create(char *name, ike_version_t ike_version, u_int32_t rekey_time, u_int32_t reauth_time, u_int32_t jitter_time, u_int32_t over_time, bool mobike, bool aggressive, u_int32_t dpd, - host_t *virtual_ip, char *pool, bool mediation, - peer_cfg_t *mediated_by, identification_t *peer_id) + u_int32_t dpd_timeout, host_t *virtual_ip, + char *pool, bool mediation, peer_cfg_t *mediated_by, + identification_t *peer_id) { private_peer_cfg_t *this; @@ -618,6 +630,7 @@ peer_cfg_t *peer_cfg_create(char *name, ike_version_t ike_version, .use_mobike = _use_mobike, .use_aggressive = _use_aggressive, .get_dpd = _get_dpd, + .get_dpd_timeout = _get_dpd_timeout, .get_virtual_ip = _get_virtual_ip, .get_pool = _get_pool, .add_auth_cfg = _add_auth_cfg, @@ -646,6 +659,7 @@ peer_cfg_t *peer_cfg_create(char *name, ike_version_t ike_version, .use_mobike = mobike, .aggressive = aggressive, .dpd = dpd, + .dpd_timeout = dpd_timeout, .virtual_ip = virtual_ip, .pool = strdupnull(pool), .local_auth = linked_list_create(), diff --git a/src/libcharon/config/peer_cfg.h b/src/libcharon/config/peer_cfg.h index 969ccabf2..572153505 100644 --- a/src/libcharon/config/peer_cfg.h +++ b/src/libcharon/config/peer_cfg.h @@ -271,6 +271,13 @@ struct peer_cfg_t { u_int32_t (*get_dpd) (peer_cfg_t *this); /** + * Get the DPD timeout interval (IKEv1 only) + * + * @return dpd_timeout in seconds + */ + u_int32_t (*get_dpd_timeout) (peer_cfg_t *this); + + /** * Get a virtual IP for the local peer. * * If no virtual IP should be used, NULL is returned. %any means to request @@ -366,6 +373,7 @@ struct peer_cfg_t { * @param mobike use MOBIKE (RFC4555) if peer supports it * @param aggressive use/accept aggressive mode with IKEv1 * @param dpd DPD check interval, 0 to disable + * @param dpd_timeout DPD timeout interval (IKEv1 only), if 0 default applies * @param virtual_ip virtual IP for local host, or NULL * @param pool pool name to get configuration attributes from, or NULL * @param mediation TRUE if this is a mediation connection @@ -379,7 +387,8 @@ peer_cfg_t *peer_cfg_create(char *name, ike_version_t ike_version, u_int32_t rekey_time, u_int32_t reauth_time, u_int32_t jitter_time, u_int32_t over_time, bool mobike, bool aggressive, u_int32_t dpd, - host_t *virtual_ip, char *pool, bool mediation, - peer_cfg_t *mediated_by, identification_t *peer_id); + u_int32_t dpd_timeout, host_t *virtual_ip, + char *pool, bool mediation, peer_cfg_t *mediated_by, + identification_t *peer_id); #endif /** PEER_CFG_H_ @}*/ |