/*
- * Copyright (c) 2011 Nicira Networks.
+ * Copyright (c) 2011, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "route-table.h"
-#include <assert.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <linux/rtnetlink.h>
route_table_register(void)
{
if (!register_count) {
- assert(!nln);
- assert(!route_notifier);
+ ovs_assert(!nln);
+ ovs_assert(!route_notifier);
nln = nln_create(NETLINK_ROUTE, RTNLGRP_IPV4_ROUTE,
(nln_parse_func *) route_table_parse, &rtmsg);
register_count--;
if (!register_count) {
+ nln_notifier_destroy(route_notifier);
+ route_notifier = NULL;
nln_destroy(nln);
nln = NULL;
struct nl_dump dump;
struct rtgenmsg *rtmsg;
struct ofpbuf request, reply;
- static struct nl_sock *rtnl_sock;
+ struct nl_sock *rtnl_sock;
route_map_clear();
route_table_valid = true;
rtmsg->rtgen_family = AF_INET;
nl_dump_start(&dump, rtnl_sock, &request);
+ ofpbuf_uninit(&request);
while (nl_dump_next(&dump, &reply)) {
struct route_table_msg msg;
[RTA_OIF] = { .type = NL_A_U32, .optional = false },
};
- static struct nlattr *attrs[ARRAY_SIZE(policy)];
+ struct nlattr *attrs[ARRAY_SIZE(policy)];
parsed = nl_policy_parse(buf, NLMSG_HDRLEN + sizeof(struct rtmsg),
policy, attrs, ARRAY_SIZE(policy));
struct nl_dump dump;
struct rtgenmsg *rtmsg;
struct ofpbuf request, reply;
- static struct nl_sock *rtnl_sock;
+ struct nl_sock *rtnl_sock;
name_table_valid = true;
name_map_clear();
rtmsg->rtgen_family = AF_INET;
nl_dump_start(&dump, rtnl_sock, &request);
+ ofpbuf_uninit(&request);
+
while (nl_dump_next(&dump, &reply)) {
struct rtnetlink_link_change change;