restored minimal functionality
authorGiuseppe Lettieri <g.lettieri@iet.unipi.it>
Wed, 16 May 2012 12:20:09 +0000 (14:20 +0200)
committerGiuseppe Lettieri <g.lettieri@iet.unipi.it>
Wed, 16 May 2012 12:20:09 +0000 (14:20 +0200)
lib/netdev-bsd.c
lib/netdev.c

index 82214cf..1b78a0b 100644 (file)
@@ -89,6 +89,7 @@ struct netdev_bsd {
 struct netdev_dev_bsd {
     struct netdev_dev netdev_dev;
     unsigned int cache_valid;
+    unsigned int change_seq;
 
     int ifindex;
     uint8_t etheraddr[ETH_ADDR_LEN];
@@ -279,11 +280,12 @@ netdev_bsd_create_system(const struct netdev_class *class, const char *name,
     int error;
 
     error = cache_notifier_ref();
-    if (!error) {
+    if (error) {
         return error;
     }
 
     netdev_dev = xzalloc(sizeof *netdev_dev);
+    netdev_dev->change_seq = 1;
     netdev_dev_init(&netdev_dev->netdev_dev, name, class);
     *netdev_devp = &netdev_dev->netdev_dev;
 
@@ -302,7 +304,7 @@ netdev_bsd_create_tap(const struct netdev_class *class, const char *name,
     struct ifreq ifr;
 
     error = cache_notifier_ref();
-    if (!error) {
+    if (error) {
         goto error;
     }
 
@@ -1218,6 +1220,12 @@ netdev_bsd_update_flags(struct netdev *netdev, enum netdev_flags off,
     return error;
 }
 
+static unsigned int
+netdev_bsd_change_seq(const struct netdev *netdev)
+{
+    return netdev_dev_bsd_cast(netdev_get_dev(netdev))->change_seq;
+}
+
 
 const struct netdev_class netdev_bsd_class = {
     "system",
@@ -1276,7 +1284,7 @@ const struct netdev_class netdev_bsd_class = {
 
     netdev_bsd_update_flags,
 
-    NULL, /* change_seq */
+    netdev_bsd_change_seq
 };
 
 const struct netdev_class netdev_tap_class = {
@@ -1336,7 +1344,7 @@ const struct netdev_class netdev_tap_class = {
 
     netdev_bsd_update_flags,
 
-    NULL, /* change_seq */
+    netdev_bsd_change_seq
 }; 
 \f
 
index 1094248..6e7fa8b 100644 (file)
@@ -81,6 +81,7 @@ netdev_initialize(void)
         netdev_vport_register();
 #endif
 #ifdef __FreeBSD__
+        netdev_register_provider(&netdev_tap_class);
         netdev_register_provider(&netdev_bsd_class);
 #endif
     }