1
2
3
4
5
6
7 #include <gtk/gtk.h>
8
9 #include "dnssd-service-browser.h"
10
11 static void
12 service_added_cb (GServiceBrowser *sb, GServiceEvent *event, gpointer user_data)
13 {
14 g_print ("Got signal service-added\n");
15 g_print (" name: %s\n type: %s\n domain: %s\n",
16 event->name, event->type, event->domain);
17 }
18
19 static void
20 service_removed_cb (GServiceBrowser *sb, GServiceEvent *event, gpointer user_data)
21 {
22 g_print ("Got signal service-removed\n");
23 }
24
25 static gboolean
26 ten_second_timeout (gpointer user_data)
27 {
28 GServiceBrowser *sb;
29
30 sb = G_SERVICE_BROWSER (user_data);
31
32 g_print ("10 seconds!!\n");
33
34 g_service_browser_remove_type (sb, "_workstation._tcp");
35 return FALSE;
36 }
37
38 int
39 main (int argc, char **argv)
40 {
41 GServiceBrowser *sb1;
42 GServiceBrowser *sb2;
43
44 g_type_init ();
45
46 sb1 = g_service_browser_new ();
47 g_service_browser_add_type (sb1, "_http._tcp");
48 g_service_browser_add_type (sb1, "_workstation._tcp");
49
50
51 g_signal_connect (G_OBJECT (sb1), "service-added",
52 G_CALLBACK (service_added_cb), NULL);
53 g_signal_connect (G_OBJECT (sb1), "service-removed",
54 G_CALLBACK (service_removed_cb), NULL);
55
56 g_timeout_add (10000, ten_second_timeout, sb1);
57
58 gtk_main ();
59
60 return 0;
61 }