diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-10-07 15:11:56 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-10-07 15:11:56 +0200 |
commit | 4351a568b74d3ed47ef67582123a70a674126add (patch) | |
tree | aac50d590fc0924badf68acdabd1fc6bed77110c /plugins/fake.c | |
parent | 866c74f98fae4227d26c651bb6adff43f5275498 (diff) | |
download | connman-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.c | 86 |
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) |