summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2011-02-15 15:51:51 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-15 18:05:33 +0100
commit98d4c63e644a35ff6bcb8baec288fdc46a3cbef3 (patch)
tree37c356f77d605866ac5feb3627b3821c9f3c17c7
parentcbf458e59413a3016206d958b1be63a24ca6cc57 (diff)
downloadconnman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.tar.gz
connman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.tar.bz2
connman-98d4c63e644a35ff6bcb8baec288fdc46a3cbef3.zip
ipconfig: Add ipaddress setters/getters
-rw-r--r--src/connman.h13
-rw-r--r--src/ipconfig.c86
-rw-r--r--src/network.c4
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);