summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--avahi-client/Makefile.am6
-rw-r--r--avahi-client/client-test.c34
-rw-r--r--avahi-client/client.c137
-rw-r--r--avahi-client/client.h15
-rw-r--r--avahi-common/Makefile.am2
-rw-r--r--avahi-common/llist.h (renamed from avahi-core/llist.h)0
-rw-r--r--avahi-core/announce.h2
-rw-r--r--avahi-core/browse.h2
-rw-r--r--avahi-core/cache.h2
-rw-r--r--avahi-core/iface.h2
-rw-r--r--avahi-core/rrlist.c2
-rw-r--r--avahi-core/server.h2
-rw-r--r--avahi-daemon/dbus-protocol.c2
-rw-r--r--avahi-daemon/simple-protocol.c2
-rw-r--r--avahi-daemon/static-services.c2
-rw-r--r--avahi-dnsconfd/main.c2
16 files changed, 137 insertions, 77 deletions
diff --git a/avahi-client/Makefile.am b/avahi-client/Makefile.am
index 2d5a654..a01ede2 100644
--- a/avahi-client/Makefile.am
+++ b/avahi-client/Makefile.am
@@ -19,13 +19,9 @@
AM_CFLAGS=-I$(top_srcdir)
-# GLIB 2.0
-AM_CFLAGS+=$(GLIB20_CFLAGS)
-AM_LDADD=$(GLIB20_LIBS)
-
# DBUS
AM_CFLAGS+=$(DBUS_CFLAGS)
-AM_LDADD+=$(DBUS_LIBS)
+AM_LDADD=$(DBUS_LIBS)
# This cool debug trap works on i386/gcc only
AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")'
diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c
index cc41f49..530394f 100644
--- a/avahi-client/client-test.c
+++ b/avahi-client/client-test.c
@@ -1,3 +1,24 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
#include <avahi-client/client.h>
#include <stdio.h>
#include <glib.h>
@@ -17,13 +38,20 @@ main (int argc, char *argv[])
ret = avahi_client_get_version_string (avahi);
printf ("Avahi Server Version: %s\n", ret);
+ g_free (ret);
ret = avahi_client_get_host_name (avahi);
printf ("Host Name: %s\n", ret);
+ g_free (ret);
+
+ ret = avahi_client_get_domain_name (avahi);
+ printf ("Domain Name: %s\n", ret);
+ g_free (ret);
+
+ ret = avahi_client_get_host_name_fqdn (avahi);
+ printf ("FQDN: %s\n", ret);
+ g_free (ret);
- ret = avahi_client_get_alternative_host_name (avahi, "ubuntu");
- printf ("Alternative Host Name: %s\n", ret);
-
g_free (avahi);
g_main_loop_run (loop);
diff --git a/avahi-client/client.c b/avahi-client/client.c
index 290d767..f5de858 100644
--- a/avahi-client/client.c
+++ b/avahi-client/client.c
@@ -1,8 +1,33 @@
+/* $Id$ */
+
+/***
+ This file is part of avahi.
+
+ avahi is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ avahi is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+ Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with avahi; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <avahi-client/client.h>
#include <avahi-common/dbus.h>
+#include <avahi-common/llist.h>
#include <stdlib.h>
#include <stdio.h>
-#include <glib.h>
#include <string.h>
#define DBUS_API_SUBJECT_TO_CHANGE
@@ -11,9 +36,16 @@
#include <stdlib.h>
-struct _AvahiClientPriv
+struct _AvahiClient
{
DBusConnection *bus;
+ AVAHI_LLIST_HEAD(AvahiEntryGroup, groups);
+};
+
+struct _AvahiEntryGroup {
+ char *path;
+ AvahiClient *parent;
+ AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups);
};
static DBusHandlerResult
@@ -56,28 +88,6 @@ out:
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
-static gint _dbus_add_match (DBusConnection *bus, char *type, char *interface, char *sender, char *path)
-{
- DBusError error;
- char *filter;
-
- g_assert (bus != NULL);
-
- dbus_error_init (&error);
- filter = g_strdup_printf ("type='%s', interface='%s', sender='%s', path='%s'", type, interface, sender, path);
- dbus_bus_add_match (bus, filter, &error);
- g_free (filter);
-
- if (dbus_error_is_set (&error))
- {
- fprintf (stderr, "Error adding filter match: %s\n", error.message);
- dbus_error_free (&error);
- return FALSE;
- }
-
- return TRUE;
-}
-
AvahiClient *
avahi_client_new ()
{
@@ -85,16 +95,17 @@ avahi_client_new ()
DBusError error;
tmp = g_new (AvahiClient, 1);
- tmp->priv = g_new (AvahiClientPriv, 1);
- g_assert (tmp != NULL);
- g_assert (tmp->priv != NULL);
-
+ if (tmp == NULL)
+ goto fail;
+
+ AVAHI_LLIST_HEAD_INIT(AvahiEntryGroup, tmp->groups);
+
dbus_error_init (&error);
- tmp->priv->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+ tmp->bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
- dbus_connection_setup_with_g_main (tmp->priv->bus, NULL);
+ dbus_connection_setup_with_g_main (tmp->bus, NULL);
if (dbus_error_is_set (&error)) {
fprintf(stderr, "Error getting system d-bus: %s\n", error.message);
@@ -102,21 +113,47 @@ avahi_client_new ()
goto fail;
}
- dbus_connection_set_exit_on_disconnect (tmp->priv->bus, FALSE);
+ dbus_connection_set_exit_on_disconnect (tmp->bus, FALSE);
- if (!dbus_connection_add_filter (tmp->priv->bus, filter_func, tmp, NULL))
+ if (!dbus_connection_add_filter (tmp->bus, filter_func, tmp, NULL))
{
fprintf (stderr, "Failed to add d-bus filter\n");
goto fail;
}
- if (!_dbus_add_match (tmp->priv->bus, "signal", AVAHI_DBUS_INTERFACE_SERVER, AVAHI_DBUS_NAME, AVAHI_DBUS_PATH_SERVER)) goto fail;
- if (!_dbus_add_match (tmp->priv->bus, "signal", DBUS_INTERFACE_DBUS, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS)) goto fail;
+ dbus_bus_add_match (tmp->bus,
+ "type='signal', "
+ "interface='" AVAHI_DBUS_INTERFACE_SERVER "', "
+ "sender='" AVAHI_DBUS_NAME "', "
+ "path='" AVAHI_DBUS_PATH_SERVER "'",
+ &error);
+
+ if (dbus_error_is_set (&error))
+ {
+ fprintf (stderr, "Error adding filter match: %s\n", error.message);
+ dbus_error_free (&error);
+ goto fail;
+
+ }
+
+ dbus_bus_add_match (tmp->bus,
+ "type='signal', "
+ "interface='" DBUS_INTERFACE_DBUS "', "
+ "sender='" DBUS_SERVICE_DBUS "', "
+ "path='" DBUS_PATH_DBUS "'",
+ &error);
+
+ if (dbus_error_is_set (&error))
+ {
+ fprintf (stderr, "Error adding filter match: %s\n", error.message);
+ dbus_error_free (&error);
+ goto fail;
+
+ }
return tmp;
fail:
- if (tmp->priv) free (tmp->priv);
if (tmp) free (tmp);
return NULL;
}
@@ -127,7 +164,7 @@ avahi_client_get_string_reply_and_block (AvahiClient *client, char *method, char
DBusMessage *message;
DBusMessage *reply;
DBusError error;
- char *ret;
+ char *ret, *new;
g_assert (client != NULL);
g_assert (method != NULL);
@@ -135,7 +172,6 @@ avahi_client_get_string_reply_and_block (AvahiClient *client, char *method, char
dbus_error_init (&error);
message = dbus_message_new_method_call (AVAHI_DBUS_NAME, AVAHI_DBUS_PATH_SERVER, AVAHI_DBUS_INTERFACE_SERVER, method);
- fprintf (stderr, "message = dbus_message_new_method_call (%s, %s, %s, %s)\n", AVAHI_DBUS_NAME, AVAHI_DBUS_PATH_SERVER, AVAHI_DBUS_INTERFACE_SERVER, method);
if (param != NULL)
{
@@ -146,7 +182,7 @@ avahi_client_get_string_reply_and_block (AvahiClient *client, char *method, char
}
}
- reply = dbus_connection_send_with_reply_and_block (client->priv->bus, message, -1, &error);
+ reply = dbus_connection_send_with_reply_and_block (client->bus, message, -1, &error);
if (dbus_error_is_set (&error))
{
@@ -172,7 +208,9 @@ avahi_client_get_string_reply_and_block (AvahiClient *client, char *method, char
return NULL;
}
- return ret;
+ new = strdup (ret);
+
+ return new;
}
char*
@@ -199,14 +237,19 @@ avahi_client_get_host_name_fqdn (AvahiClient *client)
return avahi_client_get_string_reply_and_block (client, "GetHostNameFqdn", NULL);
}
-char*
-avahi_client_get_alternative_host_name (AvahiClient *client, char *host)
+AvahiEntryGroup*
+avahi_entry_group_new (AvahiClient *client)
{
- return avahi_client_get_string_reply_and_block (client, "GetAlternativeHostName", host);
-}
+ AvahiEntryGroup *tmp;
-char*
-avahi_client_get_alternative_service_name (AvahiClient *client, char *service)
-{
- return avahi_client_get_string_reply_and_block (client, "GetAlternativeServiceName", service);
+ tmp = malloc (sizeof (AvahiEntryGroup));
+
+ tmp->parent = client;
+
+ AVAHI_LLIST_PREPEND(AvahiEntryGroup, groups, client->groups, tmp);
+
+ return tmp;
+fail:
+ if (tmp) free (tmp);
+ return NULL;
}
diff --git a/avahi-client/client.h b/avahi-client/client.h
index 5b0e910..0fb6419 100644
--- a/avahi-client/client.h
+++ b/avahi-client/client.h
@@ -1,7 +1,7 @@
#ifndef fooclienthfoo
#define fooclienthfoo
-/* $Id: core.h 98 2005-06-04 18:56:52Z lathiat $ */
+/* $Id$ */
/***
This file is part of avahi.
@@ -28,12 +28,9 @@
AVAHI_C_DECL_BEGIN
-typedef struct _AvahiClientPriv AvahiClientPriv;
+typedef struct _AvahiClient AvahiClient;
-typedef struct _AvahiClient {
- int serverid;
- AvahiClientPriv *priv;
-} AvahiClient;
+typedef struct _AvahiEntryGroup AvahiEntryGroup;
/** Creates a new client instance */
AvahiClient* avahi_client_new ();
@@ -50,12 +47,6 @@ char* avahi_client_get_domain_name (AvahiClient*);
/** Get FQDN domain name */
char* avahi_client_get_host_name_fqdn (AvahiClient*);
-/** Get alternative host name for a host name that is taken */
-char* avahi_client_get_alternative_host_name (AvahiClient*, char*);
-
-/** Get alternative service name for a service name that is taken */
-char* avahi_client_get_alternative_service_name (AvahiClient*, char*);
-
AVAHI_C_DECL_END
#endif
diff --git a/avahi-common/Makefile.am b/avahi-common/Makefile.am
index c327bd1..b96d19e 100644
--- a/avahi-common/Makefile.am
+++ b/avahi-common/Makefile.am
@@ -40,6 +40,8 @@ if ENABLE_DBUS
avahi_commoninclude_HEADERS += dbus.h
endif
+noinst_HEADERS = llist.h
+
noinst_PROGRAMS = \
strlst-test \
domain-test \
diff --git a/avahi-core/llist.h b/avahi-common/llist.h
index 7c28f31..7c28f31 100644
--- a/avahi-core/llist.h
+++ b/avahi-common/llist.h
diff --git a/avahi-core/announce.h b/avahi-core/announce.h
index 1cab21f..9aee574 100644
--- a/avahi-core/announce.h
+++ b/avahi-core/announce.h
@@ -26,7 +26,7 @@
typedef struct AvahiAnnouncement AvahiAnnouncement;
-#include "llist.h"
+#include <avahi-common/llist.h>
#include "iface.h"
#include "server.h"
#include "timeeventq.h"
diff --git a/avahi-core/browse.h b/avahi-core/browse.h
index ac33c51..2c9a2ab 100644
--- a/avahi-core/browse.h
+++ b/avahi-core/browse.h
@@ -22,7 +22,7 @@
USA.
***/
-#include "llist.h"
+#include <avahi-common/llist.h>
#include "core.h"
#include "timeeventq.h"
#include "server.h"
diff --git a/avahi-core/cache.h b/avahi-core/cache.h
index b6e3e8a..de685f4 100644
--- a/avahi-core/cache.h
+++ b/avahi-core/cache.h
@@ -26,9 +26,9 @@
typedef struct AvahiCache AvahiCache;
+#include <avahi-common/llist.h>
#include "prioq.h"
#include "server.h"
-#include "llist.h"
#include "timeeventq.h"
typedef enum {
diff --git a/avahi-core/iface.h b/avahi-core/iface.h
index c5c3c61..cb76359 100644
--- a/avahi-core/iface.h
+++ b/avahi-core/iface.h
@@ -29,11 +29,11 @@ typedef struct AvahiInterfaceAddress AvahiInterfaceAddress;
typedef struct AvahiInterface AvahiInterface;
typedef struct AvahiHwInterface AvahiHwInterface;
+#include <avahi-common/llist.h>
#include "address.h"
#include "server.h"
#include "netlink.h"
#include "cache.h"
-#include "llist.h"
#include "response-sched.h"
#include "query-sched.h"
#include "probe-sched.h"
diff --git a/avahi-core/rrlist.c b/avahi-core/rrlist.c
index 51e700c..ce4640c 100644
--- a/avahi-core/rrlist.c
+++ b/avahi-core/rrlist.c
@@ -19,8 +19,8 @@
USA.
***/
+#include <avahi-common/llist.h>
#include "rrlist.h"
-#include "llist.h"
typedef struct AvahiRecordListItem AvahiRecordListItem;
diff --git a/avahi-core/server.h b/avahi-core/server.h
index 6572fbb..5810dfa 100644
--- a/avahi-core/server.h
+++ b/avahi-core/server.h
@@ -22,10 +22,10 @@
USA.
***/
+#include <avahi-common/llist.h>
#include "core.h"
#include "iface.h"
#include "prioq.h"
-#include "llist.h"
#include "timeeventq.h"
#include "announce.h"
#include "browse.h"
diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c
index eb7b913..7fe6bf9 100644
--- a/avahi-daemon/dbus-protocol.c
+++ b/avahi-daemon/dbus-protocol.c
@@ -34,7 +34,7 @@
#include <dbus/dbus.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <avahi-core/log.h>
#include <avahi-core/core.h>
#include <avahi-common/dbus.h>
diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c
index d41cda5..39af043 100644
--- a/avahi-daemon/simple-protocol.c
+++ b/avahi-daemon/simple-protocol.c
@@ -33,7 +33,7 @@
#include <glib.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <avahi-core/log.h>
#include "simple-protocol.h"
diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c
index 0fdff14..659d007 100644
--- a/avahi-daemon/static-services.c
+++ b/avahi-daemon/static-services.c
@@ -34,7 +34,7 @@
#include <glib.h>
#include <expat.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <avahi-core/log.h>
#include "main.h"
diff --git a/avahi-dnsconfd/main.c b/avahi-dnsconfd/main.c
index 9f854cc..957c91e 100644
--- a/avahi-dnsconfd/main.c
+++ b/avahi-dnsconfd/main.c
@@ -40,7 +40,7 @@
#include <glib.h>
#include <avahi-common/util.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <libdaemon/dfork.h>
#include <libdaemon/dsignal.h>