--- a/traversity-test/traversity-test.c Sat Oct 22 16:48:51 2022 -0500
+++ b/traversity-test/traversity-test.c Sat Oct 22 16:49:40 2022 -0500
@@ -16,15 +16,37 @@
-traversity_test_ready_cb(GObject *obj, GAsyncResult *result, gpointer data) {
+traversity_test_notify_status_cb(GObject *obj, + G_GNUC_UNUSED GParamSpec *pspec, TraversityDiscoverer *discoverer = TRAVERSITY_DISCOVERER(obj);
- gboolean success = FALSE;
+ const char *status = "unknown"; - success = traversity_discoverer_discover_finish(discoverer, result, &error);
+ switch(traversity_discoverer_get_status(discoverer)) { + case TRAVERSITY_DISCOVERER_STATUS_UNDISCOVERED: + status = "undiscovered"; + case TRAVERSITY_DISCOVERER_STATUS_UNABLE_TO_DISCOVER: + status = "unable to discover"; + case TRAVERSITY_DISCOVERER_STATUS_DISCOVERING: + status = "discovering"; + case TRAVERSITY_DISCOVERER_STATUS_DISCOVERED: - g_message("success: %d", success);
+ g_message("status: %s", status); g_message("error: %s", error ? error->message : "none");
traversity_test_output_address("local ipv4",
@@ -36,7 +58,9 @@
traversity_test_output_address("public ipv4",
traversity_discoverer_get_public_ipv6(discoverer));
- g_main_loop_quit(loop);
+ g_main_loop_quit(loop); @@ -47,7 +71,9 @@
loop = g_main_loop_new(NULL, FALSE);
discoverer = g_object_new(TRAVERSITY_TYPE_UPNP_DISCOVERER, NULL);
- traversity_discoverer_discover_async(discoverer, NULL, traversity_test_ready_cb, loop);
+ g_signal_connect(discoverer, "notify::status", + G_CALLBACK(traversity_test_notify_status_cb), loop); + traversity_discoverer_discover(discoverer);