summaryrefslogtreecommitdiff
path: root/src/nm-dispatcher.h
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-06-05 11:20:11 -0500
committerDan Williams <dcbw@redhat.com>2012-09-11 17:06:16 -0500
commit15ca7cd56cedf03d43b9dc2efb10dc669abb3146 (patch)
tree05fb271f837f8b0db871342823f1d1d25b86848d /src/nm-dispatcher.h
parent0201d6da877d9f19c124298bac8b8cc3d81585e7 (diff)
downloadNetworkManager-15ca7cd56cedf03d43b9dc2efb10dc669abb3146.tar.gz
core: add dispatcher callbacks and simplify dispatcher function prototypes
Remove unused args for the non-VPN cases to cut down on the NULL NULL NULL stuff since we're also adding two more arguments. Add the ability for callers to give a callback that should be called when the dispatcher is done.
Diffstat (limited to 'src/nm-dispatcher.h')
-rw-r--r--src/nm-dispatcher.h34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/nm-dispatcher.h b/src/nm-dispatcher.h
index b223cc5042..8514ba2c77 100644
--- a/src/nm-dispatcher.h
+++ b/src/nm-dispatcher.h
@@ -30,11 +30,33 @@
#include "nm-ip6-config.h"
#include "nm-connection.h"
-void nm_utils_call_dispatcher (const char *action,
- NMConnection *connection,
- NMDevice *device,
- const char *vpn_iface,
- NMIP4Config *vpn_ip4_config,
- NMIP6Config *vpn_ip6_config);
+typedef enum {
+ DISPATCHER_ACTION_HOSTNAME,
+ DISPATCHER_ACTION_UP,
+ DISPATCHER_ACTION_PRE_DOWN,
+ DISPATCHER_ACTION_DOWN,
+ DISPATCHER_ACTION_VPN_UP,
+ DISPATCHER_ACTION_VPN_PRE_DOWN,
+ DISPATCHER_ACTION_VPN_DOWN,
+ DISPATCHER_ACTION_DHCP4_CHANGE,
+ DISPATCHER_ACTION_DHCP6_CHANGE
+} DispatcherAction;
+
+typedef void (*DispatcherFunc) (gpointer call, gpointer user_data);
+
+gpointer nm_dispatcher_call (DispatcherAction action,
+ NMConnection *connection,
+ NMDevice *device,
+ DispatcherFunc callback,
+ gpointer user_data);
+
+gpointer nm_dispatcher_call_vpn (DispatcherAction action,
+ NMConnection *connection,
+ NMDevice *device,
+ const char *vpn_iface,
+ NMIP4Config *vpn_ip4_config,
+ NMIP6Config *vpn_ip6_config,
+ DispatcherFunc callback,
+ gpointer user_data);
#endif /* NM_DISPATCHER_H */