summaryrefslogtreecommitdiff
path: root/include/ipconfig.h
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-06-29 20:32:55 +0200
committerMarcel Holtmann <marcel@holtmann.org>2009-06-29 20:32:55 +0200
commite7268afd947083942836cea24b52a4bdccbf5d19 (patch)
tree0bec66097579204fd589cf74b5f5bb5bb19cb1fd /include/ipconfig.h
parentd06989ffa0140c75f664b0ec74c6b4c74fe7eaad (diff)
downloadconnman-e7268afd947083942836cea24b52a4bdccbf5d19.tar.gz
connman-e7268afd947083942836cea24b52a4bdccbf5d19.tar.bz2
connman-e7268afd947083942836cea24b52a4bdccbf5d19.zip
First step towards a generic IP configuration infrastructure
Diffstat (limited to 'include/ipconfig.h')
-rw-r--r--include/ipconfig.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/include/ipconfig.h b/include/ipconfig.h
index 9e92c69d..e40981ff 100644
--- a/include/ipconfig.h
+++ b/include/ipconfig.h
@@ -32,20 +32,40 @@ extern "C" {
* @short_description: Functions for registering IP configuration modules
*/
+enum connman_ipconfig_type {
+ CONNMAN_IPCONFIG_TYPE_UNKNOWN = 0,
+ CONNMAN_IPCONFIG_TYPE_IPV4 = 1,
+ CONNMAN_IPCONFIG_TYPE_IPV6 = 2,
+};
+
+enum connman_ipconfig_method {
+ CONNMAN_IPCONFIG_METHOD_UNKNOWN = 0,
+ CONNMAN_IPCONFIG_METHOD_OFF = 1,
+ CONNMAN_IPCONFIG_METHOD_STATIC = 2,
+ CONNMAN_IPCONFIG_METHOD_DHCP = 3,
+};
+
+struct connman_ipconfig;
+
+extern struct connman_ipconfig *connman_ipconfig_create(void);
+extern struct connman_ipconfig *connman_ipconfig_ref(struct connman_ipconfig *ipconfig);
+extern void connman_ipconfig_unref(struct connman_ipconfig *ipconfig);
+
#define CONNMAN_IPCONFIG_PRIORITY_LOW -100
#define CONNMAN_IPCONFIG_PRIORITY_DEFAULT 0
#define CONNMAN_IPCONFIG_PRIORITY_HIGH 100
-struct connman_ipconfig {
+struct connman_ipconfig_driver {
const char *name;
+ enum connman_ipconfig_type type;
int priority;
int (*request) (const char *interface);
int (*release) (const char *interface);
int (*renew) (const char *interface);
};
-extern int connman_ipconfig_register(struct connman_ipconfig *ipconfig);
-extern void connman_ipconfig_unregister(struct connman_ipconfig *ipconfig);
+extern int connman_ipconfig_driver_register(struct connman_ipconfig_driver *driver);
+extern void connman_ipconfig_driver_unregister(struct connman_ipconfig_driver *driver);
#ifdef __cplusplus
}