]> granicus.if.org Git - libnl/commitdiff
bridge: Provide rtnl_link_bridge_alloc()
authorThomas Graf <tgraf@suug.ch>
Thu, 14 Feb 2013 11:34:57 +0000 (12:34 +0100)
committerThomas Graf <tgraf@suug.ch>
Thu, 14 Feb 2013 11:34:57 +0000 (12:34 +0100)
Signed-off-by: Thomas Graf <tgraf@suug.ch>
include/netlink/route/link/bridge.h
lib/route/link/bridge.c

index 5522fc0ab5ceb0a6f8444776bac2c417c478be7f..71dcc24bb2ede09563b6a0ea941ae06742b8743d 100644 (file)
@@ -30,6 +30,8 @@ enum rtnl_link_bridge_flags {
        RTNL_BRIDGE_FAST_LEAVE          = 0x0008,
 };
 
+extern struct rtnl_link *rtnl_link_bridge_alloc(void);
+
 extern int     rtnl_link_is_bridge(struct rtnl_link *);
 extern int     rtnl_link_bridge_has_ext_info(struct rtnl_link *);
 
index a306c9c07ab1f23bc61da544727ee7131182c2d5..eb02b22c5f6aed77a87b0ae342c825b1246adcc6 100644 (file)
@@ -183,6 +183,27 @@ static int bridge_compare(struct rtnl_link *_a, struct rtnl_link *_b,
 }
 /** @endcond */
 
+/**
+ * Allocate link object of type bridge
+ *
+ * @return Allocated link object or NULL.
+ */
+struct rtnl_link *rtnl_link_bridge_alloc(void)
+{
+       struct rtnl_link *link;
+       int err;
+
+       if (!(link = rtnl_link_alloc()))
+               return NULL;
+
+       if ((err = rtnl_link_set_type(link, "bridge")) < 0) {
+               rtnl_link_put(link);
+               return NULL;
+       }
+
+       return link;
+}
+
 /**
  * Check if a link is a bridge
  * @arg link           Link object