merging kernel_pfkey plugin back from kernel-interface branch
This commit is contained in:
@@ -632,7 +632,8 @@ static status_t find_first(private_linked_list_t *this, linked_list_match_t matc
|
||||
|
||||
while (current)
|
||||
{
|
||||
if (match(current->value, d1, d2, d3, d4, d5))
|
||||
if ((match && match(current->value, d1, d2, d3, d4, d5)) ||
|
||||
(!match && item && current->value == *item))
|
||||
{
|
||||
if (item != NULL)
|
||||
{
|
||||
@@ -655,7 +656,8 @@ static status_t find_last(private_linked_list_t *this, linked_list_match_t match
|
||||
|
||||
while (current)
|
||||
{
|
||||
if (match(current->value, d1, d2, d3, d4, d5))
|
||||
if ((match && match(current->value, d1, d2, d3, d4, d5)) ||
|
||||
(!match && item && current->value == *item))
|
||||
{
|
||||
if (item != NULL)
|
||||
{
|
||||
|
||||
@@ -130,7 +130,7 @@ struct linked_list_t {
|
||||
* If a compare function is given, it is called for each item, where
|
||||
* the first parameter is the current list item and the second parameter
|
||||
* is the supplied item parameter.
|
||||
* If compare is NULL, compare is is done by pointer.
|
||||
* If compare is NULL, compare is done by pointer.
|
||||
*
|
||||
* @param item item to remove/pass to comparator
|
||||
* @param compare compare function, or NULL
|
||||
@@ -179,10 +179,12 @@ struct linked_list_t {
|
||||
* If the supplied function returns TRUE this function returns SUCCESS, and
|
||||
* the current object is returned in the third parameter, otherwise,
|
||||
* the next item is checked.
|
||||
*
|
||||
* If match is NULL, *item and the current object are compared.
|
||||
*
|
||||
* @warning Only use pointers as user supplied data.
|
||||
*
|
||||
* @param match comparison function to call on each object
|
||||
* @param match comparison function to call on each object, or NULL
|
||||
* @param item the list item, if found
|
||||
* @param ... user data to supply to match function (limited to 5 arguments)
|
||||
* @return SUCCESS if found, NOT_FOUND otherwise
|
||||
@@ -198,9 +200,11 @@ struct linked_list_t {
|
||||
* the current object is returned in the third parameter, otherwise,
|
||||
* the next item is checked.
|
||||
*
|
||||
* If match is NULL, *item and the current object are compared.
|
||||
*
|
||||
* @warning Only use pointers as user supplied data.
|
||||
*
|
||||
* @param match comparison function to call on each object
|
||||
* @param match comparison function to call on each object, or NULL
|
||||
* @param item the list item, if found
|
||||
* @param ... user data to supply to match function (limited to 5 arguments)
|
||||
* @return SUCCESS if found, NOT_FOUND otherwise
|
||||
|
||||
Reference in New Issue
Block a user