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")'
+/* $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>
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);
+/* $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
#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
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 ()
{
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);
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;
}
DBusMessage *message;
DBusMessage *reply;
DBusError error;
- char *ret;
+ char *ret, *new;
g_assert (client != NULL);
g_assert (method != NULL);
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)
{
}
}
- 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))
{
return NULL;
}
- return ret;
+ new = strdup (ret);
+
+ return new;
}
char*
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;
}
#ifndef fooclienthfoo
#define fooclienthfoo
-/* $Id: core.h 98 2005-06-04 18:56:52Z lathiat $ */
+/* $Id$ */
/***
This file is part of avahi.
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 ();
/** 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
avahi_commoninclude_HEADERS += dbus.h
endif
+noinst_HEADERS = llist.h
+
noinst_PROGRAMS = \
strlst-test \
domain-test \
--- /dev/null
+#ifndef foollistfoo
+#define foollistfoo
+
+/* $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 <glib.h>
+
+/* Some macros for maintaining doubly linked lists */
+
+/* The head of the linked list. Use this in the structure that shall
+ * contain the head of the linked list */
+#define AVAHI_LLIST_HEAD(t,name) t *name
+
+/* The pointers in the linked list's items. Use this in the item structure */
+#define AVAHI_LLIST_FIELDS(t,name) t *name##_next, *name##_prev
+
+/* Initialize the list's head */
+#define AVAHI_LLIST_HEAD_INIT(t,head) do { (head) = NULL; } while(0)
+
+/* Initialize a list item */
+#define AVAHI_LLIST_INIT(t,name,item) do { \
+ t *_item = (item); \
+ g_assert(_item); \
+ _item->name##_prev = _item->name##_next = NULL; \
+ } while(0)
+
+/* Prepend an item to the list */
+#define AVAHI_LLIST_PREPEND(t,name,head,item) do { \
+ t **_head = &(head), *_item = (item); \
+ g_assert(_item); \
+ if ((_item->name##_next = *_head)) \
+ _item->name##_next->name##_prev = _item; \
+ _item->name##_prev = NULL; \
+ *_head = _item; \
+ } while (0)
+
+/* Remove an item from the list */
+#define AVAHI_LLIST_REMOVE(t,name,head,item) do { \
+ t **_head = &(head), *_item = (item); \
+ g_assert(_item); \
+ if (_item->name##_next) \
+ _item->name##_next->name##_prev = _item->name##_prev; \
+ if (_item->name##_prev) \
+ _item->name##_prev->name##_next = _item->name##_next; \
+ else {\
+ g_assert(*_head == _item); \
+ *_head = _item->name##_next; \
+ } \
+ _item->name##_next = _item->name##_prev = NULL; \
+ } while(0)
+
+#endif
typedef struct AvahiAnnouncement AvahiAnnouncement;
-#include "llist.h"
+#include <avahi-common/llist.h>
#include "iface.h"
#include "server.h"
#include "timeeventq.h"
USA.
***/
-#include "llist.h"
+#include <avahi-common/llist.h>
#include "core.h"
#include "timeeventq.h"
#include "server.h"
typedef struct AvahiCache AvahiCache;
+#include <avahi-common/llist.h>
#include "prioq.h"
#include "server.h"
-#include "llist.h"
#include "timeeventq.h"
typedef enum {
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"
+++ /dev/null
-#ifndef foollistfoo
-#define foollistfoo
-
-/* $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 <glib.h>
-
-/* Some macros for maintaining doubly linked lists */
-
-/* The head of the linked list. Use this in the structure that shall
- * contain the head of the linked list */
-#define AVAHI_LLIST_HEAD(t,name) t *name
-
-/* The pointers in the linked list's items. Use this in the item structure */
-#define AVAHI_LLIST_FIELDS(t,name) t *name##_next, *name##_prev
-
-/* Initialize the list's head */
-#define AVAHI_LLIST_HEAD_INIT(t,head) do { (head) = NULL; } while(0)
-
-/* Initialize a list item */
-#define AVAHI_LLIST_INIT(t,name,item) do { \
- t *_item = (item); \
- g_assert(_item); \
- _item->name##_prev = _item->name##_next = NULL; \
- } while(0)
-
-/* Prepend an item to the list */
-#define AVAHI_LLIST_PREPEND(t,name,head,item) do { \
- t **_head = &(head), *_item = (item); \
- g_assert(_item); \
- if ((_item->name##_next = *_head)) \
- _item->name##_next->name##_prev = _item; \
- _item->name##_prev = NULL; \
- *_head = _item; \
- } while (0)
-
-/* Remove an item from the list */
-#define AVAHI_LLIST_REMOVE(t,name,head,item) do { \
- t **_head = &(head), *_item = (item); \
- g_assert(_item); \
- if (_item->name##_next) \
- _item->name##_next->name##_prev = _item->name##_prev; \
- if (_item->name##_prev) \
- _item->name##_prev->name##_next = _item->name##_next; \
- else {\
- g_assert(*_head == _item); \
- *_head = _item->name##_next; \
- } \
- _item->name##_next = _item->name##_prev = NULL; \
- } while(0)
-
-#endif
USA.
***/
+#include <avahi-common/llist.h>
#include "rrlist.h"
-#include "llist.h"
typedef struct AvahiRecordListItem AvahiRecordListItem;
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"
#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>
#include <glib.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <avahi-core/log.h>
#include "simple-protocol.h"
#include <glib.h>
#include <expat.h>
-#include <avahi-core/llist.h>
+#include <avahi-common/llist.h>
#include <avahi-core/log.h>
#include "main.h"
#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>