X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fipconfig.h;h=34463eb916f4c849bea2284f9d84edbdaa4e2a0b;hb=5ed7094e4994d03c7606f25881918565c81d1c24;hp=94dfe671d8d70d358b8d0cb5614f9cf82e01a039;hpb=e911899c56f2c6a7c1742ea6c72405118e7b7aaa;p=framework%2Fconnectivity%2Fconnman.git diff --git a/include/ipconfig.h b/include/ipconfig.h index 94dfe67..34463eb 100644 --- a/include/ipconfig.h +++ b/include/ipconfig.h @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2009 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2010 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,11 +29,36 @@ extern "C" { /** * SECTION:ipconfig * @title: IP configuration premitives - * @short_description: Functions for registering IP configuration modules + * @short_description: Functions for IP configuration handling */ +struct connman_ipaddress { + int family; + unsigned char prefixlen; + char *local; + char *peer; + char *broadcast; + char *gateway; +}; + +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, }; @@ -41,31 +66,40 @@ enum connman_ipconfig_type { enum connman_ipconfig_method { CONNMAN_IPCONFIG_METHOD_UNKNOWN = 0, CONNMAN_IPCONFIG_METHOD_OFF = 1, - CONNMAN_IPCONFIG_METHOD_STATIC = 2, - CONNMAN_IPCONFIG_METHOD_DHCP = 3, + CONNMAN_IPCONFIG_METHOD_FIXED = 2, + CONNMAN_IPCONFIG_METHOD_MANUAL = 3, + CONNMAN_IPCONFIG_METHOD_DHCP = 4, + CONNMAN_IPCONFIG_METHOD_AUTO = 5, }; struct connman_ipconfig; -struct connman_ipconfig *connman_ipconfig_create(void); +struct connman_ipconfig_ops { + void (*up) (struct connman_ipconfig *ipconfig); + void (*down) (struct connman_ipconfig *ipconfig); + void (*lower_up) (struct connman_ipconfig *ipconfig); + void (*lower_down) (struct connman_ipconfig *ipconfig); + void (*ip_bound) (struct connman_ipconfig *ipconfig); + void (*ip_release) (struct connman_ipconfig *ipconfig); +}; + +struct connman_ipconfig *connman_ipconfig_create(int index, + enum connman_ipconfig_type type); struct connman_ipconfig *connman_ipconfig_ref(struct connman_ipconfig *ipconfig); 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 +void *connman_ipconfig_get_data(struct connman_ipconfig *ipconfig); +void connman_ipconfig_set_data(struct connman_ipconfig *ipconfig, void *data); -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); -}; +int connman_ipconfig_get_index(struct connman_ipconfig *ipconfig); +const char *connman_ipconfig_get_ifname(struct connman_ipconfig *ipconfig); -int connman_ipconfig_driver_register(struct connman_ipconfig_driver *driver); -void connman_ipconfig_driver_unregister(struct connman_ipconfig_driver *driver); +void connman_ipconfig_set_ops(struct connman_ipconfig *ipconfig, + const struct connman_ipconfig_ops *ops); +int connman_ipconfig_set_method(struct connman_ipconfig *ipconfig, + enum connman_ipconfig_method method); +void __connman_ipconfig_disable_ipv6(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_enable_ipv6(struct connman_ipconfig *ipconfig); #ifdef __cplusplus }