add a callback for dumping device status information
authorFelix Fietkau <nbd@openwrt.org>
Sun, 27 Mar 2011 17:08:24 +0000 (19:08 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 27 Mar 2011 17:08:24 +0000 (19:08 +0200)
device.h
ubus.c

index bf93ebc..9ceeff5 100644 (file)
--- a/device.h
+++ b/device.h
@@ -11,6 +11,7 @@ typedef int (*device_state_cb)(struct device *, bool up);
 struct device_type {
        const char *name;
 
 struct device_type {
        const char *name;
 
+       void (*dump_status)(struct device *, struct blob_buf *buf);
        int (*check_state)(struct device *);
        void (*free)(struct device *);
 };
        int (*check_state)(struct device *);
        void (*free)(struct device *);
 };
diff --git a/ubus.c b/ubus.c
index 0723300..2bb42f1 100644 (file)
--- a/ubus.c
+++ b/ubus.c
@@ -151,6 +151,9 @@ static int netifd_handle_status(struct ubus_context *ctx, struct ubus_object *ob
                else
                        /* use a different field for virtual devices */
                        blobmsg_add_string(&b, "link", dev->ifname);
                else
                        /* use a different field for virtual devices */
                        blobmsg_add_string(&b, "link", dev->ifname);
+
+               if (dev->type->dump_status)
+                       dev->type->dump_status(dev, &b);
        }
 
        ubus_send_reply(ctx, req, b.head);
        }
 
        ubus_send_reply(ctx, req, b.head);