diff options
author | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2011-02-15 15:51:51 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-02-15 18:05:33 +0100 |
commit | 98d4c63e644a35ff6bcb8baec288fdc46a3cbef3 (patch) | |
tree | 37c356f77d605866ac5feb3627b3821c9f3c17c7 /src | |
parent | cbf458e59413a3016206d958b1be63a24ca6cc57 (diff) | |
download | connman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.tar.gz connman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.tar.bz2 connman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.zip |
ipconfig: Add ipaddress setters/getters
Diffstat (limited to 'src')
-rw-r--r-- | src/connman.h | 13 | ||||
-rw-r--r-- | src/ipconfig.c | 86 | ||||
-rw-r--r-- | src/network.c | 4 |
3 files changed, 99 insertions, 4 deletions
diff --git a/src/connman.h b/src/connman.h index c6c6b9b0..0bcf63ec 100644 --- a/src/connman.h +++ b/src/connman.h @@ -225,6 +225,17 @@ unsigned int __connman_ipconfig_get_flags_from_index(int index); const char *__connman_ipconfig_get_gateway_from_index(int index); void __connman_ipconfig_set_index(struct connman_ipconfig *ipconfig, int index); +const char *__connman_ipconfig_get_local(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_set_local(struct connman_ipconfig *ipconfig, const char *address); +const char *__connman_ipconfig_get_peer(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_set_peer(struct connman_ipconfig *ipconfig, const char *address); +const char *__connman_ipconfig_get_broadcast(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_set_broadcast(struct connman_ipconfig *ipconfig, const char *broadcast); +const char *__connman_ipconfig_get_gateway(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig, const char *gateway); +unsigned char __connman_ipconfig_get_prefixlen(struct connman_ipconfig *ipconfig); +void __connman_ipconfig_set_prefixlen(struct connman_ipconfig *ipconfig, unsigned char prefixlen); + int __connman_ipconfig_enable(struct connman_ipconfig *ipconfig); int __connman_ipconfig_disable(struct connman_ipconfig *ipconfig); @@ -250,7 +261,7 @@ void __connman_ipconfig_set_element_ipv6_gateway( struct connman_ipconfig *ipconfig, struct connman_element *element); -int __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig, +int __connman_ipconfig_set_gateway_to_element(struct connman_ipconfig *ipconfig, struct connman_element *parent); int __connman_ipconfig_set_address(struct connman_ipconfig *ipconfig); int __connman_ipconfig_clear_address(struct connman_ipconfig *ipconfig); diff --git a/src/ipconfig.c b/src/ipconfig.c index 8bbe1841..49eda334 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -911,6 +911,90 @@ void __connman_ipconfig_set_index(struct connman_ipconfig *ipconfig, int index) ipconfig->index = index; } +const char *__connman_ipconfig_get_local(struct connman_ipconfig *ipconfig) +{ + if (ipconfig->address == NULL) + return NULL; + + return ipconfig->address->local; +} + +void __connman_ipconfig_set_local(struct connman_ipconfig *ipconfig, const char *address) +{ + if (ipconfig->address == NULL) + return; + + g_free(ipconfig->address->local); + ipconfig->address->local = g_strdup(address); +} + +const char *__connman_ipconfig_get_peer(struct connman_ipconfig *ipconfig) +{ + if (ipconfig->address == NULL) + return NULL; + + return ipconfig->address->peer; +} + +void __connman_ipconfig_set_peer(struct connman_ipconfig *ipconfig, const char *address) +{ + if (ipconfig->address == NULL) + return; + + g_free(ipconfig->address->peer); + ipconfig->address->peer = g_strdup(address); +} + +const char *__connman_ipconfig_get_broadcast(struct connman_ipconfig *ipconfig) +{ + if (ipconfig->address == NULL) + return NULL; + + return ipconfig->address->broadcast; +} + +void __connman_ipconfig_set_broadcast(struct connman_ipconfig *ipconfig, const char *broadcast) +{ + if (ipconfig->address == NULL) + return; + + g_free(ipconfig->address->broadcast); + ipconfig->address->broadcast = g_strdup(broadcast); +} + +const char *__connman_ipconfig_get_gateway(struct connman_ipconfig *ipconfig) +{ + if (ipconfig->address == NULL) + return NULL; + + return ipconfig->address->gateway; +} + +void __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig, const char *gateway) +{ + if (ipconfig->address == NULL) + return; + + g_free(ipconfig->address->gateway); + ipconfig->address->gateway = g_strdup(gateway); +} + +unsigned char __connman_ipconfig_get_prefixlen(struct connman_ipconfig *ipconfig) +{ + if (ipconfig->address == NULL) + return 0; + + return ipconfig->address->prefixlen; +} + +void __connman_ipconfig_set_prefixlen(struct connman_ipconfig *ipconfig, unsigned char prefixlen) +{ + if (ipconfig->address == NULL) + return; + + ipconfig->address->prefixlen = prefixlen; +} + static struct connman_ipconfig *create_ipv6config(int index) { struct connman_ipconfig *ipv6config; @@ -1160,7 +1244,7 @@ void __connman_ipconfig_set_element_ipv6_gateway( * FIXME: The element soulution should be removed in the future * Set IPv4 and IPv6 gateway */ -int __connman_ipconfig_set_gateway(struct connman_ipconfig *ipconfig, +int __connman_ipconfig_set_gateway_to_element(struct connman_ipconfig *ipconfig, struct connman_element *parent) { struct connman_element *connection; diff --git a/src/network.c b/src/network.c index e0947438..64d81dbe 100644 --- a/src/network.c +++ b/src/network.c @@ -708,7 +708,7 @@ static void set_connected_manual(struct connman_network *network) if (nameserver != NULL) __connman_service_nameserver_append(service, nameserver); - __connman_ipconfig_set_gateway(ipconfig, &network->element); + __connman_ipconfig_set_gateway_to_element(ipconfig, &network->element); network->connecting = FALSE; @@ -1088,7 +1088,7 @@ static int manual_ipv4_set(struct connman_network *network, return err; } - __connman_ipconfig_set_gateway(ipconfig, &network->element); + __connman_ipconfig_set_gateway_to_element(ipconfig, &network->element); __connman_service_indicate_state(service, CONNMAN_SERVICE_STATE_READY, CONNMAN_IPCONFIG_TYPE_IPV4); |