5 * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 #include <connman/plugin.h>
27 #include <connman/driver.h>
28 #include <connman/log.h>
30 static int ipv4_probe(struct connman_element *element)
32 struct connman_element *resolver;
33 const char *address = NULL, *netmask = NULL, *gateway = NULL;
35 DBG("element %p name %s", element, element->name);
37 connman_element_get_value(element,
38 CONNMAN_PROPERTY_TYPE_IPV4_ADDRESS, &address);
39 connman_element_get_value(element,
40 CONNMAN_PROPERTY_TYPE_IPV4_NETMASK, &netmask);
41 connman_element_get_value(element,
42 CONNMAN_PROPERTY_TYPE_IPV4_GATEWAY, &gateway);
44 DBG("address %s", address);
45 DBG("netmask %s", netmask);
46 DBG("gateway %s", gateway);
48 resolver = connman_element_create();
50 resolver->type = CONNMAN_ELEMENT_TYPE_RESOLVER;
51 resolver->netdev.name = g_strdup(element->netdev.name);
53 connman_element_set_data(element, resolver);
55 connman_element_register(resolver, element);
60 static void ipv4_remove(struct connman_element *element)
62 struct connman_element *resolver = connman_element_get_data(element);
64 DBG("element %p name %s", element, element->name);
66 connman_element_set_data(element, NULL);
68 connman_element_unregister(resolver);
70 connman_element_unref(resolver);
73 static struct connman_driver ipv4_driver = {
75 .type = CONNMAN_ELEMENT_TYPE_IPV4,
77 .remove = ipv4_remove,
80 static int ipv4_init(void)
82 return connman_driver_register(&ipv4_driver);
85 static void ipv4_exit(void)
87 connman_driver_unregister(&ipv4_driver);
90 CONNMAN_PLUGIN_DEFINE("ipv4", "IPv4 configuration plugin", VERSION,