*/
bool use_mobike;
+ /**
+ * Prevent roaming to different addresses/interfaces
+ */
+ bool no_roaming;
+
/**
* Use aggressive mode?
*/
return this->use_mobike;
}
+METHOD(peer_cfg_t, no_roaming, bool,
+ private_peer_cfg_t *this)
+{
+ return this->no_roaming;
+}
+
METHOD(peer_cfg_t, use_aggressive, bool,
private_peer_cfg_t *this)
{
this->unique == other->unique &&
this->keyingtries == other->keyingtries &&
this->use_mobike == other->use_mobike &&
+ this->no_roaming == other->no_roaming &&
this->rekey_time == other->rekey_time &&
this->reauth_time == other->reauth_time &&
this->jitter_time == other->jitter_time &&
.get_reauth_time = _get_reauth_time,
.get_over_time = _get_over_time,
.use_mobike = _use_mobike,
+ .no_roaming = _no_roaming,
.use_aggressive = _use_aggressive,
.use_pull_mode = _use_pull_mode,
.get_dpd = _get_dpd,
.reauth_time = data->reauth_time,
.jitter_time = data->jitter_time,
.over_time = data->over_time,
- .use_mobike = !data->no_mobike,
+ .use_mobike = !data->no_mobike && !data->no_roaming,
+ .no_roaming = data->no_roaming,
.aggressive = data->aggressive,
.pull_mode = !data->push_mode,
.dpd = data->dpd,
*/
uint32_t (*get_over_time)(peer_cfg_t *this);
+ /**
+ * Prevent roaming to different IP addressess and interfaces.
+ *
+ * @return TRUE to prevent roaming
+ */
+ bool (*no_roaming) (peer_cfg_t *this);
+
/**
* Use MOBIKE (RFC4555) if peer supports it?
*
uint32_t over_time;
/** Disable MOBIKE (RFC4555) */
bool no_mobike;
+ /** Prevent roaming to different IP addresses/interfaces (disables MOBIKE) */
+ bool no_roaming;
/** Use/accept aggressive mode with IKEv1 */
bool aggressive;
/** TRUE to use modeconfig push, FALSE for pull */