Replaces in_segment() by a more generic get_segment() function
This commit is contained in:
parent
ad2488fcdf
commit
2cbc48ecab
|
@ -51,8 +51,8 @@ struct private_ha_kernel_t {
|
|||
u_int count;
|
||||
};
|
||||
|
||||
METHOD(ha_kernel_t, in_segment, bool,
|
||||
private_ha_kernel_t *this, host_t *host, u_int segment)
|
||||
METHOD(ha_kernel_t, get_segment, u_int,
|
||||
private_ha_kernel_t *this, host_t *host)
|
||||
{
|
||||
if (host->get_family(host) == AF_INET)
|
||||
{
|
||||
|
@ -62,12 +62,9 @@ METHOD(ha_kernel_t, in_segment, bool,
|
|||
addr = *(u_int32_t*)host->get_address(host).ptr;
|
||||
hash = jhash_1word(ntohl(addr), this->initval);
|
||||
|
||||
if ((((u_int64_t)hash * this->count) >> 32) + 1 == segment)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
return (((u_int64_t)hash * this->count) >> 32) + 1;
|
||||
}
|
||||
return FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -208,7 +205,7 @@ ha_kernel_t *ha_kernel_create(u_int count)
|
|||
|
||||
INIT(this,
|
||||
.public = {
|
||||
.in_segment = _in_segment,
|
||||
.get_segment = _get_segment,
|
||||
.activate = _activate,
|
||||
.deactivate = _deactivate,
|
||||
.destroy = _destroy,
|
||||
|
|
|
@ -31,13 +31,12 @@ typedef struct ha_kernel_t ha_kernel_t;
|
|||
struct ha_kernel_t {
|
||||
|
||||
/**
|
||||
* Check if a host is in a segment.
|
||||
* Get the segment a host is in.
|
||||
*
|
||||
* @param host host to check
|
||||
* @param segment segment
|
||||
* @return TRUE if host belongs to segment
|
||||
* @param host host to get segment for
|
||||
* @return segment number
|
||||
*/
|
||||
bool (*in_segment)(ha_kernel_t *this, host_t *host, u_int segment);
|
||||
u_int (*get_segment)(ha_kernel_t *this, host_t *host);
|
||||
|
||||
/**
|
||||
* Activate a segment at kernel level for all cluster addresses.
|
||||
|
|
|
@ -168,8 +168,8 @@ static void enable_disable(private_ha_segments_t *this, u_int segment,
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if (this->kernel->in_segment(this->kernel,
|
||||
ike_sa->get_other_host(ike_sa), segment))
|
||||
if (this->kernel->get_segment(this->kernel,
|
||||
ike_sa->get_other_host(ike_sa)) == segment)
|
||||
{
|
||||
ike_sa->set_state(ike_sa, new);
|
||||
}
|
||||
|
@ -267,8 +267,8 @@ METHOD(ha_segments_t, resync, void,
|
|||
while (enumerator->enumerate(enumerator, &ike_sa))
|
||||
{
|
||||
if (ike_sa->get_state(ike_sa) == IKE_ESTABLISHED &&
|
||||
this->kernel->in_segment(this->kernel,
|
||||
ike_sa->get_other_host(ike_sa), segment))
|
||||
this->kernel->get_segment(this->kernel,
|
||||
ike_sa->get_other_host(ike_sa)) == segment)
|
||||
{
|
||||
id = ike_sa->get_id(ike_sa);
|
||||
list->insert_last(list, id->clone(id));
|
||||
|
|
Loading…
Reference in New Issue