kernel-pfroute: Let get_nexthop() default to destination address
This commit is contained in:
@@ -1576,16 +1576,20 @@ retry:
|
|||||||
}
|
}
|
||||||
DBG1(DBG_KNL, "PF_ROUTE lookup failed: %s", strerror(errno));
|
DBG1(DBG_KNL, "PF_ROUTE lookup failed: %s", strerror(errno));
|
||||||
}
|
}
|
||||||
if (!host)
|
if (nexthop)
|
||||||
{
|
{
|
||||||
return NULL;
|
host = host ?: dest->clone(dest);
|
||||||
}
|
}
|
||||||
if (!nexthop)
|
else
|
||||||
{ /* make sure the source address is not virtual and usable */
|
{ /* make sure the source address is not virtual and usable */
|
||||||
addr_entry_t *entry, lookup = {
|
addr_entry_t *entry, lookup = {
|
||||||
.ip = host,
|
.ip = host,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!host)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
this->lock->read_lock(this->lock);
|
this->lock->read_lock(this->lock);
|
||||||
entry = this->addrs->get_match(this->addrs, &lookup,
|
entry = this->addrs->get_match(this->addrs, &lookup,
|
||||||
(void*)addr_map_entry_match_up_and_usable);
|
(void*)addr_map_entry_match_up_and_usable);
|
||||||
|
|||||||
Reference in New Issue
Block a user