ike-cfg: Add helper function to determine if a given IP address was configured
This commit is contained in:
committed by
Martin Willi
parent
2bb314c17b
commit
5a7a17b777
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2016 Tobias Brunner
|
* Copyright (C) 2012-2017 Tobias Brunner
|
||||||
* Copyright (C) 2005-2007 Martin Willi
|
* Copyright (C) 2005-2007 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
@@ -556,6 +556,39 @@ int ike_cfg_get_family(ike_cfg_t *cfg, bool local)
|
|||||||
return family;
|
return family;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Described in header.
|
||||||
|
*/
|
||||||
|
bool ike_cfg_has_address(ike_cfg_t *cfg, host_t *addr, bool local)
|
||||||
|
{
|
||||||
|
private_ike_cfg_t *this = (private_ike_cfg_t*)cfg;
|
||||||
|
enumerator_t *enumerator;
|
||||||
|
host_t *host;
|
||||||
|
char *str;
|
||||||
|
bool found = FALSE;
|
||||||
|
|
||||||
|
if (local)
|
||||||
|
{
|
||||||
|
enumerator = this->my_hosts->create_enumerator(this->my_hosts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enumerator = this->other_hosts->create_enumerator(this->other_hosts);
|
||||||
|
}
|
||||||
|
while (enumerator->enumerate(enumerator, &str))
|
||||||
|
{
|
||||||
|
host = host_create_from_string(str, 0);
|
||||||
|
if (host && addr->ip_equals(addr, host))
|
||||||
|
{
|
||||||
|
found = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
DESTROY_IF(host);
|
||||||
|
}
|
||||||
|
enumerator->destroy(enumerator);
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Described in header.
|
* Described in header.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2016 Tobias Brunner
|
* Copyright (C) 2012-2017 Tobias Brunner
|
||||||
* Copyright (C) 2005-2007 Martin Willi
|
* Copyright (C) 2005-2007 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
@@ -266,4 +266,15 @@ ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap,
|
|||||||
*/
|
*/
|
||||||
int ike_cfg_get_family(ike_cfg_t *this, bool local);
|
int ike_cfg_get_family(ike_cfg_t *this, bool local);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the given address was explicitly configured as local or remote
|
||||||
|
* address.
|
||||||
|
*
|
||||||
|
* @param this ike config to check
|
||||||
|
* @param addr address to check
|
||||||
|
* @param local TRUE to check local addresses, FALSE for remote
|
||||||
|
* @return TRUE if address was configured
|
||||||
|
*/
|
||||||
|
bool ike_cfg_has_address(ike_cfg_t *this, host_t *addr, bool local);
|
||||||
|
|
||||||
#endif /** IKE_CFG_H_ @}*/
|
#endif /** IKE_CFG_H_ @}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user