aboutsummaryrefslogtreecommitdiffstats
path: root/src/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test.c')
-rw-r--r--src/test.c125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/test.c b/src/test.c
new file mode 100644
index 0000000..0f82cc4
--- /dev/null
+++ b/src/test.c
@@ -0,0 +1,125 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "connman-glib.h"
+
+void manager_event_cb(const gchar *path,
+ connman_manager_event_t event,
+ GVariant *properties,
+ gpointer user_data)
+{
+ printf("%s - enter\n", __FUNCTION__);
+ switch(event) {
+ case CONNMAN_MANAGER_EVENT_TECHNOLOGY_ADD:
+ printf("technology %s add\n", path);
+ break;
+ case CONNMAN_MANAGER_EVENT_TECHNOLOGY_REMOVE:
+ printf("technology %s remove\n", path);
+ break;
+ case CONNMAN_MANAGER_EVENT_SERVICE_CHANGE:
+ printf("service %s change: ...\n", path);
+ break;
+ case CONNMAN_MANAGER_EVENT_SERVICE_REMOVE:
+ printf("service %s remove: ...\n", path);
+ break;
+ case CONNMAN_MANAGER_EVENT_PROPERTY_CHANGE:
+ printf("property %s change: %s\n",
+ path,
+ properties ? g_variant_print(properties, TRUE) : "(null)");
+ break;
+ default:
+ break;
+ }
+ printf("%s - exit\n\n", __FUNCTION__);
+}
+
+void technology_property_event_cb(const gchar *technology,
+ GVariant *properties,
+ gpointer user_data)
+{
+ printf("%s - enter\n", __FUNCTION__);
+ printf("technology %s properties: %s\n",
+ technology,
+ properties ? g_variant_print(properties, TRUE) : "(null)");
+ printf("%s - exit\n\n", __FUNCTION__);
+}
+
+void service_property_event_cb(const gchar *service,
+ GVariant *properties,
+ gpointer user_data)
+{
+ printf("%s - enter\n", __FUNCTION__);
+ printf("service %s properties: %s\n",
+ service,
+ properties ? g_variant_print(properties, TRUE) : "(null)");
+ printf("%s - exit\n\n", __FUNCTION__);
+}
+
+
+int main(int argc, char *argv[])
+{
+ gboolean rc;
+
+ connman_add_manager_event_callback(manager_event_cb, NULL);
+ connman_add_technology_property_event_callback(technology_property_event_cb, NULL);
+ connman_add_service_property_event_callback(service_property_event_cb, NULL);
+
+ // FIXME: should pass callback here and wait for it to report success
+ rc = connman_init(TRUE);
+ printf("connman_init rc = %d\n", rc);
+
+ GVariant *reply = NULL;
+ rc = connman_get_technologies(&reply);
+ if(rc) {
+ //printf("technologies: %s\n\n", reply ? g_variant_print(reply, TRUE) : "(null)");
+
+ GVariantIter *array = NULL;
+ g_variant_get(reply, "(a(oa{sv}))", &array);
+ const gchar *path = NULL;
+ GVariant *var = NULL;
+ printf("technologies:\n");
+ while (g_variant_iter_next(array, "(o@a{sv})", &path, &var)) {
+ printf("%s: %s\n", path, g_variant_print(var, TRUE));
+ g_variant_unref(var);
+ }
+ g_variant_iter_free(array);
+ g_variant_unref(reply);
+ }
+
+ reply = NULL;
+ rc = connman_get_services(&reply);
+ if(rc) {
+ printf("services: %s\n", reply ? g_variant_print(reply, TRUE) : "(null)");
+ g_variant_unref(reply);
+ }
+
+ gchar *state = NULL;
+ if(connman_manager_get_state(&state)) {
+ printf("\nconnman manager state = %s\n", state);
+ g_free(state);
+
+ }
+
+ rc = connman_technology_enable("wifi");
+ sleep(5);
+
+ rc = connman_technology_scan_services("wifi");
+ if(!rc) {
+ printf("wifi scan failed!\n");
+ exit(1);
+ }
+
+ sleep(20);
+
+ reply = NULL;
+ rc = connman_get_services(&reply);
+ if(rc) {
+ printf("services: %s\n", reply ? g_variant_print(reply, TRUE) : "(null)");
+ g_variant_unref(reply);
+ }
+
+ rc = connman_technology_disable("wifi");
+
+ return 0;
+}