From: Trent Lloyd Date: Mon, 8 Aug 2005 18:03:51 +0000 (+0000) Subject: * Move avahi-core/llist.h to avahi-common/llist.h, not installed. X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=7540df5ed6b383ec93f5a4f10ab2d08f9b9869e4;p=catta * Move avahi-core/llist.h to avahi-common/llist.h, not installed. * avahi-client/ - Add copyright notice - Remove glib, various cleanups - Remove alternative host/service functions (available in avahi-common) git-svn-id: file:///home/lennart/svn/public/avahi/trunk@275 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- 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 #include #include @@ -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 +#endif + #include #include +#include #include #include -#include #include #define DBUS_API_SUBJECT_TO_CHANGE @@ -11,9 +36,16 @@ #include -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-common/llist.h b/avahi-common/llist.h new file mode 100644 index 0000000..7c28f31 --- /dev/null +++ b/avahi-common/llist.h @@ -0,0 +1,71 @@ +#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 + +/* 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 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 #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 #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 #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 #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/llist.h b/avahi-core/llist.h deleted file mode 100644 index 7c28f31..0000000 --- a/avahi-core/llist.h +++ /dev/null @@ -1,71 +0,0 @@ -#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 - -/* 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 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 #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 #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 #include -#include +#include #include #include #include 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 -#include +#include #include #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 #include -#include +#include #include #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 #include -#include +#include #include #include