X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=main.c;h=48d69bd21d520d1c77972a71d6a4b5888687c85b;hb=3bbfb70938c6b08b72a8958e5a6499a9280a7d8f;hp=d7a0f2f080cf8e0ac731463c827da083bc97e947;hpb=d6e2dbabccb08970da991e6d2b0fda7a56d83e6f;p=catta diff --git a/main.c b/main.c index d7a0f2f..48d69bd 100644 --- a/main.c +++ b/main.c @@ -1,39 +1,74 @@ #include #include #include +#include #include "flx.h" -#include "server.h" -static GMainLoop *loop = NULL; - -static gboolean timeout(gpointer data) { - g_main_loop_quit(loop); +static gboolean quit_timeout(gpointer data) { + g_main_loop_quit(data); return FALSE; } +static gboolean dump_timeout(gpointer data) { + flxServer *flx = data; + flx_server_dump(flx, stdout); + 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); +} + +static void entry_group_callback(flxServer *s, flxEntryGroup *g, flxEntryGroupStatus status, gpointer userdata) { + g_message("entry group state: %i", status); +} + int main(int argc, char *argv[]) { flxServer *flx; gchar *r; - flxQuery q; + GMainLoop *loop = NULL; + flxSubscription *s; + flxKey *k; + flxEntryGroup *g; flx = flx_server_new(NULL); - flx_server_add_text(flx, 0, 0, AF_UNSPEC, NULL, "hallo"); + g = flx_entry_group_new(flx, entry_group_callback, NULL); - q.name = "campari.local."; - q.class = FLX_DNS_CLASS_IN; - q.type = FLX_DNS_TYPE_A; - flx_server_post_query_job(flx, 0, AF_UNSPEC, NULL, &q); +/* flx_server_add_text(flx, g, 0, AF_UNSPEC, FLX_ENTRY_UNIQUE, NULL, "hallo", NULL); */ + flx_server_add_service(flx, g, 0, AF_UNSPEC, "_http._tcp", "gurke", NULL, NULL, 80, "foo", NULL); - g_timeout_add(5000, timeout, NULL); + flx_entry_group_commit(g); + + flx_server_dump(flx, stdout); + +/* k = flx_key_new("ecstasy.local.", FLX_DNS_CLASS_IN, FLX_DNS_TYPE_ANY); */ +/* 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*20, dump_timeout, flx); + g_timeout_add(1000*30, quit_timeout, loop); + g_main_loop_run(loop); g_main_loop_unref(loop); - flx_server_dump(flx, stdout); - +/* flx_subscription_free(s); */ + flx_entry_group_free(g); flx_server_free(flx); + return 0; }