When adding a channel for INET failed at the device level (ioctl) the

code used to call rtrequest(RTM_DELETE, ...). This is a problem, because
the function that just has called us (route_output)
is not really happy with the route it just is creating beeing ripped out
from under it. Unfortunately we also cannot return an error from
ifa_rtrequest. Therefore mark the route just as RTF_REJECT.
This commit is contained in:
Hartmut Brandt 2003-08-05 14:59:06 +00:00
parent 07cf047d5a
commit 7e3d4432af

View File

@ -162,8 +162,10 @@ atm_rtrequest(int req, struct rtentry *rt, struct rt_addrinfo *info)
rt->rt_flags &= ~RTF_LLINFO;
}
#endif
rtrequest(RTM_DELETE, rt_key(rt), (struct sockaddr *)0,
rt_mask(rt), 0, (struct rtentry **)0);
/* mark as invalid. We cannot RTM_DELETE the route from
* here, because the recursive call to rtrequest1 does
* not really work. */
rt->rt_flags |= RTF_REJECT;
break;
case RTM_DELETE: