Add support for RTNL newlink watches
[connman] / include / rtnl.h
index 57e8e07..c78556b 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2008  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -32,6 +32,13 @@ extern "C" {
  * @short_description: Functions for registering RTNL modules
  */
 
+typedef void (* connman_rtnl_link_cb_t) (unsigned flags, unsigned change,
+                                                       void *user_data);
+
+extern unsigned int connman_rtnl_add_newlink_watch(int index,
+                       connman_rtnl_link_cb_t callback, void *user_data);
+extern void connman_rtnl_remove_watch(unsigned int id);
+
 #define CONNMAN_RTNL_PRIORITY_LOW      -100
 #define CONNMAN_RTNL_PRIORITY_DEFAULT     0
 #define CONNMAN_RTNL_PRIORITY_HIGH      100
@@ -39,12 +46,20 @@ extern "C" {
 struct connman_rtnl {
        const char *name;
        int priority;
-       void (*link_flags) (int index, int flags);
+       void (*newlink) (unsigned short type, int index,
+                                       unsigned flags, unsigned change);
+       void (*dellink) (unsigned short type, int index,
+                                       unsigned flags, unsigned change);
+       void (*newgateway) (int index, const char *gateway);
+       void (*delgateway) (int index, const char *gateway);
 };
 
 extern int connman_rtnl_register(struct connman_rtnl *rtnl);
 extern void connman_rtnl_unregister(struct connman_rtnl *rtnl);
 
+extern int connman_rtnl_send_getlink(void);
+extern int connman_rtnl_send_getroute(void);
+
 #ifdef __cplusplus
 }
 #endif