From 730f9eb9d43de11bbb7b74280ac2ed3d92bab645 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 17 Oct 2005 22:28:01 +0000 Subject: rename server.h to internal.h git-svn-id: file:///home/lennart/svn/public/avahi/trunk@804 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/Makefile.am | 2 +- avahi-core/announce.h | 2 +- avahi-core/browse.h | 2 +- avahi-core/cache.h | 2 +- avahi-core/entry.c | 2 +- avahi-core/iface.h | 2 +- avahi-core/internal.h | 208 ++++++++++++++++++++++++++++++++++++++++++ avahi-core/multicast-lookup.c | 2 +- avahi-core/server.c | 2 +- avahi-core/server.h | 208 ------------------------------------------ avahi-core/wide-area.c | 2 +- tests/c-plus-plus-test.cc | 5 +- 12 files changed, 221 insertions(+), 218 deletions(-) create mode 100644 avahi-core/internal.h delete mode 100644 avahi-core/server.h diff --git a/avahi-core/Makefile.am b/avahi-core/Makefile.am index 95505b8..3ecce11 100644 --- a/avahi-core/Makefile.am +++ b/avahi-core/Makefile.am @@ -48,7 +48,7 @@ noinst_PROGRAMS = \ libavahi_core_la_SOURCES = \ timeeventq.c timeeventq.h\ iface.c iface.h \ - server.c server.h entry.c \ + server.c internal.h entry.c \ prioq.c prioq.h \ cache.c cache.h \ socket.c socket.h \ diff --git a/avahi-core/announce.h b/avahi-core/announce.h index 1994312..3a8bcf3 100644 --- a/avahi-core/announce.h +++ b/avahi-core/announce.h @@ -26,7 +26,7 @@ typedef struct AvahiAnnouncer AvahiAnnouncer; #include #include "iface.h" -#include "server.h" +#include "internal.h" #include "timeeventq.h" #include "publish.h" diff --git a/avahi-core/browse.h b/avahi-core/browse.h index 61ceca7..36d4e2e 100644 --- a/avahi-core/browse.h +++ b/avahi-core/browse.h @@ -26,7 +26,7 @@ #include "core.h" #include "timeeventq.h" -#include "server.h" +#include "internal.h" #include "dns.h" #include "lookup.h" diff --git a/avahi-core/cache.h b/avahi-core/cache.h index 3d71e50..4fbc1b9 100644 --- a/avahi-core/cache.h +++ b/avahi-core/cache.h @@ -26,7 +26,7 @@ typedef struct AvahiCache AvahiCache; #include #include "prioq.h" -#include "server.h" +#include "internal.h" #include "timeeventq.h" #include "hashmap.h" diff --git a/avahi-core/entry.c b/avahi-core/entry.c index 74f44f1..fe7702e 100644 --- a/avahi-core/entry.c +++ b/avahi-core/entry.c @@ -38,7 +38,7 @@ #include #include -#include "server.h" +#include "internal.h" #include "iface.h" #include "socket.h" #include "browse.h" diff --git a/avahi-core/iface.h b/avahi-core/iface.h index 14d0195..e45ab10 100644 --- a/avahi-core/iface.h +++ b/avahi-core/iface.h @@ -30,7 +30,7 @@ typedef struct AvahiHwInterface AvahiHwInterface; #include #include -#include "server.h" +#include "internal.h" #include "cache.h" #include "response-sched.h" #include "query-sched.h" diff --git a/avahi-core/internal.h b/avahi-core/internal.h new file mode 100644 index 0000000..47a9c84 --- /dev/null +++ b/avahi-core/internal.h @@ -0,0 +1,208 @@ +#ifndef foointernalhfoo +#define foointernalhfoo + +/* $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. +***/ + +/** A locally registered DNS resource record */ +typedef struct AvahiEntry AvahiEntry; + +#include +#include + +#include "core.h" +#include "iface.h" +#include "prioq.h" +#include "timeeventq.h" +#include "announce.h" +#include "browse.h" +#include "dns.h" +#include "rrlist.h" +#include "hashmap.h" +#include "wide-area.h" +#include "multicast-lookup.h" +#include "dns-srv-rr.h" + +#define AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS 100 + +#define AVAHI_FLAGS_VALID(flags, max) (!((flags) & ~(max))) + +#define AVAHI_RR_HOLDOFF_MSEC 1000 +#define AVAHI_RR_HOLDOFF_MSEC_RATE_LIMIT 60000 +#define AVAHI_RR_RATE_LIMIT_COUNT 15 + +typedef struct AvahiLegacyUnicastReflectSlot AvahiLegacyUnicastReflectSlot; + +struct AvahiLegacyUnicastReflectSlot { + AvahiServer *server; + + uint16_t id, original_id; + AvahiAddress address; + uint16_t port; + int interface; + struct timeval elapse_time; + AvahiTimeEvent *time_event; +}; + +struct AvahiEntry { + AvahiServer *server; + AvahiSEntryGroup *group; + + int dead; + + AvahiPublishFlags flags; + AvahiRecord *record; + AvahiIfIndex interface; + AvahiProtocol protocol; + + AVAHI_LLIST_FIELDS(AvahiEntry, entries); + AVAHI_LLIST_FIELDS(AvahiEntry, by_key); + AVAHI_LLIST_FIELDS(AvahiEntry, by_group); + + AVAHI_LLIST_HEAD(AvahiAnnouncer, announcers); +}; + +struct AvahiSEntryGroup { + AvahiServer *server; + int dead; + + AvahiEntryGroupState state; + void* userdata; + AvahiSEntryGroupCallback callback; + + unsigned n_probing; + + unsigned n_register_try; + struct timeval register_time; + AvahiTimeEvent *register_time_event; + + struct timeval established_at; + + AVAHI_LLIST_FIELDS(AvahiSEntryGroup, groups); + AVAHI_LLIST_HEAD(AvahiEntry, entries); +}; + +struct AvahiServer { + const AvahiPoll *poll_api; + + AvahiInterfaceMonitor *monitor; + AvahiServerConfig config; + + AVAHI_LLIST_HEAD(AvahiEntry, entries); + AvahiHashmap *entries_by_key; + + AVAHI_LLIST_HEAD(AvahiSEntryGroup, groups); + + AVAHI_LLIST_HEAD(AvahiSRecordBrowser, record_browsers); + AvahiHashmap *record_browser_hashmap; + AVAHI_LLIST_HEAD(AvahiSHostNameResolver, host_name_resolvers); + AVAHI_LLIST_HEAD(AvahiSAddressResolver, address_resolvers); + AVAHI_LLIST_HEAD(AvahiSDomainBrowser, domain_browsers); + AVAHI_LLIST_HEAD(AvahiSServiceTypeBrowser, service_type_browsers); + AVAHI_LLIST_HEAD(AvahiSServiceBrowser, service_browsers); + AVAHI_LLIST_HEAD(AvahiSServiceResolver, service_resolvers); + AVAHI_LLIST_HEAD(AvahiSDNSServerBrowser, dns_server_browsers); + + int need_entry_cleanup, need_group_cleanup, need_browser_cleanup; + + AvahiTimeEventQueue *time_event_queue; + + char *host_name, *host_name_fqdn, *domain_name; + + int fd_ipv4, fd_ipv6, + /* The following two sockets two are used for reflection only */ + fd_legacy_unicast_ipv4, fd_legacy_unicast_ipv6; + + AvahiWatch *watch_ipv4, *watch_ipv6, + *watch_legacy_unicast_ipv4, *watch_legacy_unicast_ipv6; + + AvahiServerState state; + AvahiServerCallback callback; + void* userdata; + + AvahiSEntryGroup *hinfo_entry_group; + AvahiSEntryGroup *browse_domain_entry_group; + unsigned n_host_rr_pending; + + /* Used for assembling responses */ + AvahiRecordList *record_list; + + /* Used for reflection of legacy unicast packets */ + AvahiLegacyUnicastReflectSlot **legacy_unicast_reflect_slots; + uint16_t legacy_unicast_reflect_id; + + /* The last error code */ + int error; + + /* The local service cookie */ + uint32_t local_service_cookie; + + AvahiMulticastLookupEngine *multicast_lookup_engine; + AvahiWideAreaLookupEngine *wide_area_lookup_engine; +}; + +void avahi_entry_free(AvahiServer*s, AvahiEntry *e); +void avahi_entry_group_free(AvahiServer *s, AvahiSEntryGroup *g); + +void avahi_cleanup_dead_entries(AvahiServer *s); + +void avahi_server_prepare_response(AvahiServer *s, AvahiInterface *i, AvahiEntry *e, int unicast_response, int auxiliary); +void avahi_server_prepare_matching_responses(AvahiServer *s, AvahiInterface *i, AvahiKey *k, int unicast_response); +void avahi_server_generate_response(AvahiServer *s, AvahiInterface *i, AvahiDnsPacket *p, const AvahiAddress *a, uint16_t port, int legacy_unicast, int is_probe); + +void avahi_s_entry_group_change_state(AvahiSEntryGroup *g, AvahiEntryGroupState state); + +int avahi_entry_is_commited(AvahiEntry *e); + +void avahi_server_enumerate_aux_records(AvahiServer *s, AvahiInterface *i, AvahiRecord *r, void (*callback)(AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata), void* userdata); + +void avahi_host_rr_entry_group_callback(AvahiServer *s, AvahiSEntryGroup *g, AvahiEntryGroupState state, void *userdata); + +void avahi_server_decrease_host_rr_pending(AvahiServer *s); + +int avahi_server_set_errno(AvahiServer *s, int error); + +int avahi_server_add_ptr( + AvahiServer *s, + AvahiSEntryGroup *g, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiPublishFlags flags, + uint32_t ttl, + const char *name, + const char *dest); + + +#define AVAHI_CHECK_VALIDITY_RETURN_NULL(server, expression, error) { \ + if (!(expression)) { \ + avahi_server_set_errno((server), (error)); \ + return NULL; \ + } \ +} + +#define AVAHI_CHECK_VALIDITY_SET_RET_GOTO_FAIL(server, expression, error) {\ + if (!(expression)) { \ + ret = avahi_server_set_errno((server), (error)); \ + goto fail; \ + } \ +} + +#endif diff --git a/avahi-core/multicast-lookup.c b/avahi-core/multicast-lookup.c index 339215d..7ae45ea 100644 --- a/avahi-core/multicast-lookup.c +++ b/avahi-core/multicast-lookup.c @@ -26,7 +26,7 @@ #include #include -#include "server.h" +#include "internal.h" #include "browse.h" #include "socket.h" #include "log.h" diff --git a/avahi-core/server.c b/avahi-core/server.c index 2252fde..5651bc1 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -38,7 +38,7 @@ #include #include -#include "server.h" +#include "internal.h" #include "iface.h" #include "socket.h" #include "browse.h" diff --git a/avahi-core/server.h b/avahi-core/server.h deleted file mode 100644 index 7181b3c..0000000 --- a/avahi-core/server.h +++ /dev/null @@ -1,208 +0,0 @@ -#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. -***/ - -/** A locally registered DNS resource record */ -typedef struct AvahiEntry AvahiEntry; - -#include -#include - -#include "core.h" -#include "iface.h" -#include "prioq.h" -#include "timeeventq.h" -#include "announce.h" -#include "browse.h" -#include "dns.h" -#include "rrlist.h" -#include "hashmap.h" -#include "wide-area.h" -#include "multicast-lookup.h" -#include "dns-srv-rr.h" - -#define AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS 100 - -#define AVAHI_FLAGS_VALID(flags, max) (!((flags) & ~(max))) - -#define AVAHI_RR_HOLDOFF_MSEC 1000 -#define AVAHI_RR_HOLDOFF_MSEC_RATE_LIMIT 60000 -#define AVAHI_RR_RATE_LIMIT_COUNT 15 - -typedef struct AvahiLegacyUnicastReflectSlot AvahiLegacyUnicastReflectSlot; - -struct AvahiLegacyUnicastReflectSlot { - AvahiServer *server; - - uint16_t id, original_id; - AvahiAddress address; - uint16_t port; - int interface; - struct timeval elapse_time; - AvahiTimeEvent *time_event; -}; - -struct AvahiEntry { - AvahiServer *server; - AvahiSEntryGroup *group; - - int dead; - - AvahiPublishFlags flags; - AvahiRecord *record; - AvahiIfIndex interface; - AvahiProtocol protocol; - - AVAHI_LLIST_FIELDS(AvahiEntry, entries); - AVAHI_LLIST_FIELDS(AvahiEntry, by_key); - AVAHI_LLIST_FIELDS(AvahiEntry, by_group); - - AVAHI_LLIST_HEAD(AvahiAnnouncer, announcers); -}; - -struct AvahiSEntryGroup { - AvahiServer *server; - int dead; - - AvahiEntryGroupState state; - void* userdata; - AvahiSEntryGroupCallback callback; - - unsigned n_probing; - - unsigned n_register_try; - struct timeval register_time; - AvahiTimeEvent *register_time_event; - - struct timeval established_at; - - AVAHI_LLIST_FIELDS(AvahiSEntryGroup, groups); - AVAHI_LLIST_HEAD(AvahiEntry, entries); -}; - -struct AvahiServer { - const AvahiPoll *poll_api; - - AvahiInterfaceMonitor *monitor; - AvahiServerConfig config; - - AVAHI_LLIST_HEAD(AvahiEntry, entries); - AvahiHashmap *entries_by_key; - - AVAHI_LLIST_HEAD(AvahiSEntryGroup, groups); - - AVAHI_LLIST_HEAD(AvahiSRecordBrowser, record_browsers); - AvahiHashmap *record_browser_hashmap; - AVAHI_LLIST_HEAD(AvahiSHostNameResolver, host_name_resolvers); - AVAHI_LLIST_HEAD(AvahiSAddressResolver, address_resolvers); - AVAHI_LLIST_HEAD(AvahiSDomainBrowser, domain_browsers); - AVAHI_LLIST_HEAD(AvahiSServiceTypeBrowser, service_type_browsers); - AVAHI_LLIST_HEAD(AvahiSServiceBrowser, service_browsers); - AVAHI_LLIST_HEAD(AvahiSServiceResolver, service_resolvers); - AVAHI_LLIST_HEAD(AvahiSDNSServerBrowser, dns_server_browsers); - - int need_entry_cleanup, need_group_cleanup, need_browser_cleanup; - - AvahiTimeEventQueue *time_event_queue; - - char *host_name, *host_name_fqdn, *domain_name; - - int fd_ipv4, fd_ipv6, - /* The following two sockets two are used for reflection only */ - fd_legacy_unicast_ipv4, fd_legacy_unicast_ipv6; - - AvahiWatch *watch_ipv4, *watch_ipv6, - *watch_legacy_unicast_ipv4, *watch_legacy_unicast_ipv6; - - AvahiServerState state; - AvahiServerCallback callback; - void* userdata; - - AvahiSEntryGroup *hinfo_entry_group; - AvahiSEntryGroup *browse_domain_entry_group; - unsigned n_host_rr_pending; - - /* Used for assembling responses */ - AvahiRecordList *record_list; - - /* Used for reflection of legacy unicast packets */ - AvahiLegacyUnicastReflectSlot **legacy_unicast_reflect_slots; - uint16_t legacy_unicast_reflect_id; - - /* The last error code */ - int error; - - /* The local service cookie */ - uint32_t local_service_cookie; - - AvahiMulticastLookupEngine *multicast_lookup_engine; - AvahiWideAreaLookupEngine *wide_area_lookup_engine; -}; - -void avahi_entry_free(AvahiServer*s, AvahiEntry *e); -void avahi_entry_group_free(AvahiServer *s, AvahiSEntryGroup *g); - -void avahi_cleanup_dead_entries(AvahiServer *s); - -void avahi_server_prepare_response(AvahiServer *s, AvahiInterface *i, AvahiEntry *e, int unicast_response, int auxiliary); -void avahi_server_prepare_matching_responses(AvahiServer *s, AvahiInterface *i, AvahiKey *k, int unicast_response); -void avahi_server_generate_response(AvahiServer *s, AvahiInterface *i, AvahiDnsPacket *p, const AvahiAddress *a, uint16_t port, int legacy_unicast, int is_probe); - -void avahi_s_entry_group_change_state(AvahiSEntryGroup *g, AvahiEntryGroupState state); - -int avahi_entry_is_commited(AvahiEntry *e); - -void avahi_server_enumerate_aux_records(AvahiServer *s, AvahiInterface *i, AvahiRecord *r, void (*callback)(AvahiServer *s, AvahiRecord *r, int flush_cache, void* userdata), void* userdata); - -void avahi_host_rr_entry_group_callback(AvahiServer *s, AvahiSEntryGroup *g, AvahiEntryGroupState state, void *userdata); - -void avahi_server_decrease_host_rr_pending(AvahiServer *s); - -int avahi_server_set_errno(AvahiServer *s, int error); - -int avahi_server_add_ptr( - AvahiServer *s, - AvahiSEntryGroup *g, - AvahiIfIndex interface, - AvahiProtocol protocol, - AvahiPublishFlags flags, - uint32_t ttl, - const char *name, - const char *dest); - - -#define AVAHI_CHECK_VALIDITY_RETURN_NULL(server, expression, error) { \ - if (!(expression)) { \ - avahi_server_set_errno((server), (error)); \ - return NULL; \ - } \ -} - -#define AVAHI_CHECK_VALIDITY_SET_RET_GOTO_FAIL(server, expression, error) {\ - if (!(expression)) { \ - ret = avahi_server_set_errno((server), (error)); \ - goto fail; \ - } \ -} - -#endif diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c index f32c403..c5508b0 100644 --- a/avahi-core/wide-area.c +++ b/avahi-core/wide-area.c @@ -32,7 +32,7 @@ #include #include -#include "server.h" +#include "internal.h" #include "browse.h" #include "socket.h" #include "log.h" diff --git a/tests/c-plus-plus-test.cc b/tests/c-plus-plus-test.cc index b1b324c..fcdc7a4 100644 --- a/tests/c-plus-plus-test.cc +++ b/tests/c-plus-plus-test.cc @@ -44,11 +44,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -61,13 +63,14 @@ #include #include #include -#include #include #include #include #include #include #include +#include +#include #include #include -- cgit