summaryrefslogtreecommitdiff
path: root/plugins/fake.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-10-07 15:11:56 +0200
committerMarcel Holtmann <marcel@holtmann.org>2008-10-07 15:11:56 +0200
commit4351a568b74d3ed47ef67582123a70a674126add (patch)
treeaac50d590fc0924badf68acdabd1fc6bed77110c /plugins/fake.c
parent866c74f98fae4227d26c651bb6adff43f5275498 (diff)
downloadconnman-4351a568b74d3ed47ef67582123a70a674126add.tar.gz
connman-4351a568b74d3ed47ef67582123a70a674126add.tar.bz2
connman-4351a568b74d3ed47ef67582123a70a674126add.zip
Add basic functionality to fake plugin
Diffstat (limited to 'plugins/fake.c')
-rw-r--r--plugins/fake.c86
1 files changed, 85 insertions, 1 deletions
diff --git a/plugins/fake.c b/plugins/fake.c
index 235751c0..7bd48dfa 100644
--- a/plugins/fake.c
+++ b/plugins/fake.c
@@ -24,14 +24,98 @@
#endif
#include <connman/plugin.h>
+#include <connman/driver.h>
+#include <connman/element.h>
+#include <connman/log.h>
-static int fake_init(void)
+static void create_network(struct connman_element *parent, const char *name)
+{
+ struct connman_element *element;
+
+ element = connman_element_create(name);
+ element->type = CONNMAN_ELEMENT_TYPE_NETWORK;
+
+ connman_element_register(element, parent);
+ connman_element_unref(element);
+}
+
+static int fake_device_probe(struct connman_element *element)
+{
+ DBG("");
+
+ return 0;
+}
+
+static void fake_device_remove(struct connman_element *element)
+{
+ DBG("");
+}
+
+static int fake_device_update(struct connman_element *element)
+{
+ DBG("");
+
+ create_network(element, "network_new");
+
+ return 0;
+}
+
+static int fake_device_enable(struct connman_element *element)
{
+ DBG("");
+
+ create_network(element, "network_one");
+ create_network(element, "network_two");
+
+ return 0;
+}
+
+static int fake_device_disable(struct connman_element *element)
+{
+ DBG("");
+
+ connman_element_unregister_children(element);
+
return 0;
}
+static struct connman_driver fake_device_driver = {
+ .name = "fake-device",
+ .type = CONNMAN_ELEMENT_TYPE_DEVICE,
+ .priority = CONNMAN_DRIVER_PRIORITY_HIGH,
+ .probe = fake_device_probe,
+ .remove = fake_device_remove,
+ .update = fake_device_update,
+ .enable = fake_device_enable,
+ .disable = fake_device_disable,
+};
+
+static void create_device(const char *name)
+{
+ struct connman_element *element;
+
+ element = connman_element_create(name);
+ element->type = CONNMAN_ELEMENT_TYPE_DEVICE;
+
+ //connman_element_define_properties(element,
+ // CONNMAN_PROPERTY_ID_IPV4_METHOD,
+ // CONNMAN_PROPERTY_ID_INVALID);
+
+ connman_element_register(element, NULL);
+ connman_element_unref(element);
+}
+
+static int fake_init(void)
+{
+ create_device("fakeone");
+ create_device("faketwo");
+
+ return connman_driver_register(&fake_device_driver);
+}
+
static void fake_exit(void)
{
+ connman_driver_unregister(&fake_device_driver);
}
CONNMAN_PLUGIN_DEFINE("fake", "Tesing plugin", VERSION, fake_init, fake_exit)