-static void rtnetlink_report_change(const struct nlmsghdr *,
- const struct ifinfomsg *,
- struct nlattr *attrs[]);
-static void rtnetlink_report_notify_error(void);
+ /* Passed in by rtnetlink_create(). */
+ int multicast_group; /* Multicast group we listen on. */
+ rtnetlink_parse_func *parse; /* Message parsing function. */
+ void *change; /* Change passed to parse. */
+};
+
+/* Creates an rtnetlink handle which may be used to manage change
+ * notifications. The created handle will listen for rtnetlink messages on
+ * 'multicast_group'. Incoming messages will be parsed with 'parse' which will
+ * be passed 'change' as an argument. */
+struct rtnetlink *
+rtnetlink_create(int multicast_group, rtnetlink_parse_func *parse,
+ void *change)
+{
+ struct rtnetlink *rtn;