X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=main.c;fp=main.c;h=367dcd3dcb2700f975e981ec444d93587adca0ec;hb=8e7f83aa5b6d910e80c56b31f4eb79b02e7ca67b;hp=47f3cd76226df63b233a510a85e67d9b685e4f2a;hpb=ad1f9d3725a300f10eca071c6fe2f2c583f51436;p=catta diff --git a/main.c b/main.c index 47f3cd7..367dcd3 100644 --- a/main.c +++ b/main.c @@ -4,6 +4,7 @@ #include "flx.h" #include "server.h" +#include "subscribe.h" static gboolean quit_timeout(gpointer data) { g_main_loop_quit(data); @@ -31,15 +32,36 @@ static gboolean dump_timeout(gpointer data) { return TRUE; } +static void subscription(flxSubscription *s, flxRecord *r, gint interface, guchar protocol, flxSubscriptionEvent event, gpointer userdata) { + gchar *t; + + g_assert(s); + g_assert(r); + g_assert(interface > 0); + g_assert(protocol != AF_UNSPEC); + + g_message("SUBSCRIPTION: record [%s] on %i.%i is %s", t = flx_record_to_string(r), interface, protocol, + event == FLX_SUBSCRIPTION_NEW ? "new" : (event == FLX_SUBSCRIPTION_CHANGE ? "changed" : "removed")); + + g_free(t); +} + + int main(int argc, char *argv[]) { flxServer *flx; gchar *r; GMainLoop *loop = NULL; + flxSubscription *s; + flxKey *k; flx = flx_server_new(NULL); flx_server_add_text(flx, 0, 0, AF_UNSPEC, FALSE, NULL, "hallo"); + k = flx_key_new("_http._tcp.local.", FLX_DNS_CLASS_IN, FLX_DNS_TYPE_PTR); + s = flx_subscription_new(flx, k, 0, AF_UNSPEC, subscription, NULL); + flx_key_unref(k); + loop = g_main_loop_new(NULL, FALSE); g_timeout_add(1000*60, quit_timeout, loop); @@ -50,7 +72,7 @@ int main(int argc, char *argv[]) { g_main_loop_unref(loop); - + flx_subscription_free(s); flx_server_free(flx); return 0;