From: Daniel Wagner <daniel.wag...@bmw-carit.de>

---
 src/connman.h  |   13 ++++++++-
 src/ipconfig.c |   86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/network.c  |    4 +-
 3 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index c6c6b9b..0bcf63e 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 8bbe184..49eda33 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 1d74a0d..53fb40a 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;
 
@@ -1081,7 +1081,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);
-- 
1.7.4

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to