notifiers: Create and destroy nln_notifiers.
[sliver-openvswitch.git] / vswitchd / ovs-brcompatd.c
index 41187b1..3cb1cfc 100644 (file)
@@ -724,7 +724,7 @@ brc_recv_update(void)
      * (XenServer Tools 5.5.0 does not exhibit this behavior, and neither does
      * a VM without Tools installed at all.)
      */
-    rtnetlink_link_notifier_run();
+    rtnetlink_link_run();
 
     switch (genlmsghdr->cmd) {
     case BRC_GENL_C_DP_ADD:
@@ -790,7 +790,7 @@ netdev_changed_cb(const struct rtnetlink_link_change *change,
               port_name, br_name);
 
     run_vsctl(vsctl_program, VSCTL_OPTIONS,
-              "--", "--if-exists", "del-port", br_name, port_name,
+              "--", "--if-exists", "del-port", port_name,
               "--", "comment", "ovs-brcompatd:", port_name, "disappeared",
               (char *) NULL);
 }
@@ -799,7 +799,7 @@ int
 main(int argc, char *argv[])
 {
     extern struct vlog_module VLM_reconnect;
-    struct nln_notifier link_notifier;
+    struct nln_notifier *link_notifier;
     struct unixctl_server *unixctl;
     int retval;
 
@@ -823,26 +823,25 @@ main(int argc, char *argv[])
                    "\"brcompat\" kernel module.");
     }
 
-
-    rtnetlink_link_notifier_register(&link_notifier, netdev_changed_cb, NULL);
+    link_notifier = rtnetlink_link_notifier_create(netdev_changed_cb, NULL);
 
     daemonize_complete();
 
     for (;;) {
         unixctl_server_run(unixctl);
-        rtnetlink_link_notifier_run();
+        rtnetlink_link_run();
         brc_recv_update();
 
         netdev_run();
 
         nl_sock_wait(brc_sock, POLLIN);
         unixctl_server_wait(unixctl);
-        rtnetlink_link_notifier_wait();
+        rtnetlink_link_wait();
         netdev_wait();
         poll_block();
     }
 
-    rtnetlink_link_notifier_unregister(&link_notifier);
+    rtnetlink_link_notifier_destroy(link_notifier);
 
     return 0;
 }