2.1.71 cant delete ipv4 routes

Nicholas J. Leon (nicholas@binary9.net)
Fri, 5 Dec 1997 22:46:47 -0500 (EST)


When I try to delete a route via 'route del hostname', I get:

SIOCDELRT: No such process

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCDELRT, 0xbffffa28) = -1 ESRCH (No such process)
write(2, "SIOCDELRT: No such process\n", 27SIOCDELRT: No such process
) = 27
close(3) = 0
_exit(7) = ?

I tried all the normal variations of the command (such as specifying
netmask, device, etc.) but nothing works. It doesn't seem to matter if the
device was a loopback, ppp or ethernet.

I looked into the ipv4 routing handler but got dismayed to find that
things have _really_ changed since 2.0.x (ie, 'fibs'). But it's croaking
around line 266 of ~linux/net/ipv4/fib_frontend.c:

if (cmd == SIOCDELRT) {
struct fib_table *tb = fib_get_table(req.rtm.rtm_table);
err = -ESRCH;
if (tb)
err = tb->tb_delete(tb, &req.rtm, &rta, &req.nlh, NULL);

Apparently, fib_get_table is returning a NULL value so the 'if (tb)' isn't
getting executed, and the -ESRCH error is maintained.

That's about all I can do unfortunately. If I can be of any other help,
please let me know, this has some impact on my system.

___________________________________________________________________________

simple is elegant nicholas@binary9.net
___________________________________________________________________________