+static void ar_callback(AvahiAddressResolver *r, gint iface, guchar protocol, AvahiBrowserEvent event, const AvahiAddress *a, const gchar *hostname, gpointer userdata) {
+ gchar t[64];
+
+ avahi_address_snprint(t, sizeof(t), a);
+
+ g_message("AR: (%i.%i) %s -> %s [%s]", iface, protocol, t, hostname ? hostname : "n/a", event == AVAHI_BROWSER_NEW ? "found" : "timeout");
+}
+
+static void db_callback(AvahiDomainBrowser *b, gint iface, guchar protocol, AvahiBrowserEvent event, const gchar *domain, gpointer userdata) {
+
+ g_message("DB: (%i.%i) %s [%s]", iface, protocol, domain, event == AVAHI_BROWSER_NEW ? "new" : "remove");
+}
+
+int main(int argc, char *argv[]) {
+ GMainLoop *loop = NULL;
+ AvahiRecordBrowser *r;
+ AvahiHostNameResolver *hnr;
+ AvahiAddressResolver *ar;
+ AvahiKey *k;
+ AvahiServerConfig config;
+ AvahiAddress a;
+ AvahiDomainBrowser *db;
+
+ avahi_server_config_init(&config);
+/* config.host_name = g_strdup("test"); */
+ server = avahi_server_new(NULL, &config, server_callback, NULL);
+ avahi_server_config_free(&config);
+
+ k = avahi_key_new("_http._tcp.local", AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_PTR);
+ r = avahi_record_browser_new(server, 0, AF_UNSPEC, k, record_browser_callback, NULL);
+ avahi_key_unref(k);
+
+ hnr = avahi_host_name_resolver_new(server, 0, AF_UNSPEC, "codes-CompUTER.local", AF_UNSPEC, hnr_callback, NULL);
+
+ ar = avahi_address_resolver_new(server, 0, AF_UNSPEC, avahi_address_parse("192.168.50.15", AF_INET, &a), ar_callback, NULL);
+
+ db = avahi_domain_browser_new(server, 0, AF_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, db_callback, NULL);
+