Fixes missing unregister of kernel table handling code.
And some minor fixes. Thanks to Sergey Popovich for the patch.
This commit is contained in:
parent
f515e22924
commit
f83ce94d5e
2 changed files with 7 additions and 7 deletions
|
@ -231,7 +231,7 @@ neigh_up(neighbor *n, struct iface *i, int scope)
|
|||
static void
|
||||
neigh_down(neighbor *n)
|
||||
{
|
||||
DBG("Flushing neighbor %I on %s\n", n->addr, i->name);
|
||||
DBG("Flushing neighbor %I on %s\n", n->addr, n->iface->name);
|
||||
rem_node(&n->if_n);
|
||||
if (! (n->flags & NEF_BIND))
|
||||
n->iface = NULL;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/uio.h>
|
||||
|
@ -1040,11 +1041,9 @@ nl_open_async(void)
|
|||
sock *sk;
|
||||
struct sockaddr_nl sa;
|
||||
int fd;
|
||||
static int nl_open_tried = 0;
|
||||
|
||||
if (nl_open_tried)
|
||||
if (nl_async_sk)
|
||||
return;
|
||||
nl_open_tried = 1;
|
||||
|
||||
DBG("KRT: Opening async netlink socket\n");
|
||||
|
||||
|
@ -1065,18 +1064,18 @@ nl_open_async(void)
|
|||
if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
|
||||
{
|
||||
log(L_ERR "Unable to bind asynchronous rtnetlink socket: %m");
|
||||
close(fd);
|
||||
return;
|
||||
}
|
||||
|
||||
nl_async_rx_buffer = xmalloc(NL_RX_SIZE);
|
||||
|
||||
sk = nl_async_sk = sk_new(krt_pool);
|
||||
sk->type = SK_MAGIC;
|
||||
sk->rx_hook = nl_async_hook;
|
||||
sk->fd = fd;
|
||||
if (sk_open(sk))
|
||||
bug("Netlink: sk_open failed");
|
||||
|
||||
if (!nl_async_rx_buffer)
|
||||
nl_async_rx_buffer = xmalloc(NL_RX_SIZE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1097,6 +1096,7 @@ krt_sys_start(struct krt_proto *p)
|
|||
void
|
||||
krt_sys_shutdown(struct krt_proto *p UNUSED)
|
||||
{
|
||||
nl_table_map[KRT_CF->sys.table_id] = NULL;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in a new issue