dnsproxy: Only one copy of the relevant buffers will be made to a TCP request
[framework/connectivity/connman.git] / include / ipconfig.h
index 9e92c69..3612755 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2012  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
@@ -29,23 +29,43 @@ extern "C" {
 /**
  * SECTION:ipconfig
  * @title: IP configuration premitives
- * @short_description: Functions for registering IP configuration modules
+ * @short_description: Functions for IP configuration handling
  */
 
-#define CONNMAN_IPCONFIG_PRIORITY_LOW      -100
-#define CONNMAN_IPCONFIG_PRIORITY_DEFAULT     0
-#define CONNMAN_IPCONFIG_PRIORITY_HIGH      100
+struct connman_ipaddress;
 
-struct connman_ipconfig {
-       const char *name;
-       int priority;
-       int (*request) (const char *interface);
-       int (*release) (const char *interface);
-       int (*renew) (const char *interface);
+struct connman_ipaddress *connman_ipaddress_alloc(int family);
+void connman_ipaddress_free(struct connman_ipaddress *ipaddress);
+int connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
+                               const char *address, const char *netmask,
+                               const char *gateway);
+int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
+                               const char *address,
+                               unsigned char prefix_length,
+                               const char *gateway);
+void connman_ipaddress_set_peer(struct connman_ipaddress *ipaddress,
+                               const char *peer);
+void connman_ipaddress_clear(struct connman_ipaddress *ipaddress);
+void connman_ipaddress_copy(struct connman_ipaddress *ipaddress,
+                                       struct connman_ipaddress *source);
+
+enum connman_ipconfig_type {
+       CONNMAN_IPCONFIG_TYPE_UNKNOWN = 0,
+       CONNMAN_IPCONFIG_TYPE_ALL     = 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_FIXED   = 2,
+       CONNMAN_IPCONFIG_METHOD_MANUAL  = 3,
+       CONNMAN_IPCONFIG_METHOD_DHCP    = 4,
+       CONNMAN_IPCONFIG_METHOD_AUTO    = 5,
 };
 
-extern int connman_ipconfig_register(struct connman_ipconfig *ipconfig);
-extern void connman_ipconfig_unregister(struct connman_ipconfig *ipconfig);
+struct connman_ipconfig;
 
 #ifdef __cplusplus
 }