traffic-selector: Add a hash() method
This commit is contained in:
@@ -685,6 +685,17 @@ METHOD(traffic_selector_t, clone_, traffic_selector_t*,
|
||||
}
|
||||
}
|
||||
|
||||
METHOD(traffic_selector_t, hash, u_int,
|
||||
private_traffic_selector_t *this, u_int hash)
|
||||
{
|
||||
return chunk_hash_inc(get_from_address(this),
|
||||
chunk_hash_inc(get_to_address(this),
|
||||
chunk_hash_inc(chunk_from_thing(this->from_port),
|
||||
chunk_hash_inc(chunk_from_thing(this->to_port),
|
||||
chunk_hash_inc(chunk_from_thing(this->protocol),
|
||||
hash)))));
|
||||
}
|
||||
|
||||
METHOD(traffic_selector_t, destroy, void,
|
||||
private_traffic_selector_t *this)
|
||||
{
|
||||
@@ -974,6 +985,7 @@ static private_traffic_selector_t *traffic_selector_create(u_int8_t protocol,
|
||||
.set_address = _set_address,
|
||||
.to_subnet = _to_subnet,
|
||||
.clone = _clone_,
|
||||
.hash = _hash,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
.from_port = from_port,
|
||||
|
||||
@@ -220,6 +220,14 @@ struct traffic_selector_t {
|
||||
*/
|
||||
bool (*to_subnet) (traffic_selector_t *this, host_t **net, u_int8_t *mask);
|
||||
|
||||
/**
|
||||
* Create a hash value for the traffic selector.
|
||||
*
|
||||
* @param inc optional value for incremental hashing
|
||||
* @return calculated hash value for the traffic selector
|
||||
*/
|
||||
u_int (*hash)(traffic_selector_t *this, u_int inc);
|
||||
|
||||
/**
|
||||
* Destroys the ts object
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user