From c58379bde376cb2298fca14f83a86626f1b76f2f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 7 May 2005 13:37:03 +0000 Subject: rename libavahi-core to avahi-core git-svn-id: file:///home/lennart/svn/public/avahi/trunk@57 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/server.h | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 avahi-core/server.h (limited to 'avahi-core/server.h') diff --git a/avahi-core/server.h b/avahi-core/server.h new file mode 100644 index 0000000..efe8ed9 --- /dev/null +++ b/avahi-core/server.h @@ -0,0 +1,100 @@ +#ifndef fooserverhfoo +#define fooserverhfoo + +/* $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.h" +#include "iface.h" +#include "prioq.h" +#include "llist.h" +#include "timeeventq.h" +#include "announce.h" +#include "subscribe.h" + +struct _AvahiEntry { + AvahiServer *server; + AvahiEntryGroup *group; + + gboolean dead; + + AvahiEntryFlags flags; + AvahiRecord *record; + gint interface; + guchar protocol; + + AVAHI_LLIST_FIELDS(AvahiEntry, entries); + AVAHI_LLIST_FIELDS(AvahiEntry, by_key); + AVAHI_LLIST_FIELDS(AvahiEntry, by_group); + + AVAHI_LLIST_HEAD(AvahiAnnouncement, announcements); +}; + +struct _AvahiEntryGroup { + AvahiServer *server; + gboolean dead; + + AvahiEntryGroupState state; + gpointer userdata; + AvahiEntryGroupCallback callback; + + guint n_probing; + + AVAHI_LLIST_FIELDS(AvahiEntryGroup, groups); + AVAHI_LLIST_HEAD(AvahiEntry, entries); +}; + +struct _AvahiServer { + GMainContext *context; + AvahiInterfaceMonitor *monitor; + + AVAHI_LLIST_HEAD(AvahiEntry, entries); + GHashTable *entries_by_key; + + AVAHI_LLIST_HEAD(AvahiEntryGroup, groups); + + AVAHI_LLIST_HEAD(AvahiSubscription, subscriptions); + GHashTable *subscription_hashtable; + + gboolean need_entry_cleanup, need_group_cleanup; + + AvahiTimeEventQueue *time_event_queue; + + gchar *hostname; + + gint fd_ipv4, fd_ipv6; + + GPollFD pollfd_ipv4, pollfd_ipv6; + GSource *source; + + gboolean ignore_bad_ttl; +}; + +gboolean avahi_server_entry_match_interface(AvahiEntry *e, AvahiInterface *i); + +void avahi_server_post_query(AvahiServer *s, gint interface, guchar protocol, AvahiKey *key); +void avahi_server_post_response(AvahiServer *s, gint interface, guchar protocol, AvahiRecord *record, gboolean flush_cache); + +void avahi_entry_group_change_state(AvahiEntryGroup *g, AvahiEntryGroupState state); + +gboolean avahi_entry_commited(AvahiEntry *e); + +#endif -- cgit