From 66142b071a2497d7e3cf58d7bf5159bb1c970d84 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Aug 2005 14:08:18 +0000 Subject: * allow caller to specifiy additional CFLAGS arguments to bootstrap.sh * fix some warnings (and some real errors) found when compiling avahi with excessive GCC warnings git-svn-id: file:///home/lennart/svn/public/avahi/trunk@209 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/announce.h | 6 ++--- avahi-core/avahi-test.c | 8 +++--- avahi-core/browse.c | 2 +- avahi-core/cache.c | 2 +- avahi-core/conformance-test.c | 3 ++- avahi-core/dns-test.c | 3 ++- avahi-core/dns.c | 59 ++++++++++++++++++++++--------------------- avahi-core/dns.h | 6 ++--- avahi-core/iface.c | 53 +++++++++++++++++++------------------- avahi-core/iface.h | 10 ++++---- avahi-core/netlink.c | 27 ++++++++++++-------- avahi-core/resolve-service.c | 8 +++--- avahi-core/server.c | 49 +++++++++++++++++------------------ avahi-core/socket.c | 16 ++++++------ avahi-core/socket.h | 8 +++--- avahi-core/timeeventq-test.c | 2 +- 16 files changed, 136 insertions(+), 126 deletions(-) (limited to 'avahi-core') diff --git a/avahi-core/announce.h b/avahi-core/announce.h index 244a00f..1cab21f 100644 --- a/avahi-core/announce.h +++ b/avahi-core/announce.h @@ -64,10 +64,10 @@ void avahi_entry_group_check_probed(AvahiEntryGroup *g, gboolean immediately); gboolean avahi_entry_registered(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); gboolean avahi_entry_probing(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); -void avahi_goodbye_interface(AvahiServer *s, AvahiInterface *i, gboolean send); -void avahi_goodbye_entry(AvahiServer *s, AvahiEntry *e, gboolean send); +void avahi_goodbye_interface(AvahiServer *s, AvahiInterface *i, gboolean send_goodbye); +void avahi_goodbye_entry(AvahiServer *s, AvahiEntry *e, gboolean send_goodbye); -void avahi_goodbye_all(AvahiServer *s, gboolean send); +void avahi_goodbye_all(AvahiServer *s, gboolean send_goodbye); AvahiAnnouncement *avahi_get_announcement(AvahiServer *s, AvahiEntry *e, AvahiInterface *i); diff --git a/avahi-core/avahi-test.c b/avahi-core/avahi-test.c index 5953937..f966659 100644 --- a/avahi-core/avahi-test.c +++ b/avahi-core/avahi-test.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -180,18 +181,17 @@ static void sb_callback(AvahiServiceBrowser *b, gint iface, guchar protocol, Ava avahi_log_debug("SB: (%i.%i) <%s> as %s in <%s> [%s]", iface, protocol, name, service_type, domain, event == AVAHI_BROWSER_NEW ? "new" : "remove"); } - -static void sr_callback(AvahiServiceResolver *r, gint iface, guchar protocol, AvahiBrowserEvent event, const gchar *service_name, const gchar*service_type, const gchar*domain_name, const gchar*hostname, const AvahiAddress *a, guint16 port, AvahiStringList *txt, gpointer userdata) { +static void sr_callback(AvahiServiceResolver *r, gint iface, guchar protocol, AvahiBrowserEvent event, const gchar *name, const gchar*service_type, const gchar*domain_name, const gchar*hostname, const AvahiAddress *a, guint16 port, AvahiStringList *txt, gpointer userdata) { if (event == AVAHI_RESOLVER_TIMEOUT) - avahi_log_debug("SR: (%i.%i) <%s> as %s in <%s> [timeout]", iface, protocol, service_name, service_type, domain_name); + avahi_log_debug("SR: (%i.%i) <%s> as %s in <%s> [timeout]", iface, protocol, name, service_type, domain_name); else { gchar t[64], *s; avahi_address_snprint(t, sizeof(t), a); s = avahi_string_list_to_string(txt); - avahi_log_debug("SR: (%i.%i) <%s> as %s in <%s>: %s/%s:%i (%s) [found]", iface, protocol, service_name, service_type, domain_name, hostname, t, port, s); + avahi_log_debug("SR: (%i.%i) <%s> as %s in <%s>: %s/%s:%i (%s) [found]", iface, protocol, name, service_type, domain_name, hostname, t, port, s); g_free(s); } } diff --git a/avahi-core/browse.c b/avahi-core/browse.c index 2d14c90..897cb2b 100644 --- a/avahi-core/browse.c +++ b/avahi-core/browse.c @@ -105,7 +105,7 @@ static void scan_interface_callback(AvahiInterfaceMonitor *m, AvahiInterface *i, avahi_cache_walk(i->cache, s->key, scan_cache_callback, &cbdata); } -gboolean scan_idle_callback(gpointer data) { +static gboolean scan_idle_callback(gpointer data) { AvahiRecordBrowser *b = data; g_assert(b); diff --git a/avahi-core/cache.c b/avahi-core/cache.c index 7060433..174fceb 100644 --- a/avahi-core/cache.c +++ b/avahi-core/cache.c @@ -224,7 +224,7 @@ static void next_expiry(AvahiCache *c, AvahiCacheEntry *e, guint percent) { usec = ((AvahiUsec) e->record->ttl) * 10000; /* 2% jitter */ - usec = (AvahiUsec) g_random_double_range(usec*percent, usec*(percent+2)); + usec = (AvahiUsec) g_random_double_range((gdouble) (usec*percent), (gdouble) (usec*(percent+2))); /* g_message("next expiry: %lli (%s)", usec / 1000000, txt = avahi_record_to_string(e->record)); */ /* g_free(txt); */ diff --git a/avahi-core/conformance-test.c b/avahi-core/conformance-test.c index f7eba12..f8e0c93 100644 --- a/avahi-core/conformance-test.c +++ b/avahi-core/conformance-test.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "core.h" #include "util.h" @@ -50,7 +51,7 @@ static gboolean dump_timeout(gpointer data) { static void entry_group_callback(AvahiServer *s, AvahiEntryGroup *g, AvahiEntryGroupState state, gpointer userdata); -static void create_service(gchar *t) { +static void create_service(const gchar *t) { gchar *n; g_assert(t || name); diff --git a/avahi-core/dns-test.c b/avahi-core/dns-test.c index 07cd529..6b98ef3 100644 --- a/avahi-core/dns-test.c +++ b/avahi-core/dns-test.c @@ -28,7 +28,8 @@ #include "log.h" int main(int argc, char *argv[]) { - gchar t[256], *a, *b, *c, *d; + gchar t[256]; + const gchar *a, *b, *c, *d; AvahiDnsPacket *p; p = avahi_dns_packet_new(0); diff --git a/avahi-core/dns.c b/avahi-core/dns.c index f5d4075..2801386 100644 --- a/avahi-core/dns.c +++ b/avahi-core/dns.c @@ -117,24 +117,25 @@ void avahi_dns_packet_free(AvahiDnsPacket *p) { g_free(p); } -void avahi_dns_packet_set_field(AvahiDnsPacket *p, guint index, guint16 v) { +void avahi_dns_packet_set_field(AvahiDnsPacket *p, guint idx, guint16 v) { g_assert(p); - g_assert(index < AVAHI_DNS_PACKET_HEADER_SIZE); + g_assert(idx < AVAHI_DNS_PACKET_HEADER_SIZE); - ((guint16*) AVAHI_DNS_PACKET_DATA(p))[index] = g_htons(v); + ((guint16*) AVAHI_DNS_PACKET_DATA(p))[idx] = g_htons(v); } -guint16 avahi_dns_packet_get_field(AvahiDnsPacket *p, guint index) { +guint16 avahi_dns_packet_get_field(AvahiDnsPacket *p, guint idx) { g_assert(p); - g_assert(index < AVAHI_DNS_PACKET_HEADER_SIZE); + g_assert(idx < AVAHI_DNS_PACKET_HEADER_SIZE); - return g_ntohs(((guint16*) AVAHI_DNS_PACKET_DATA(p))[index]); + return g_ntohs(((guint16*) AVAHI_DNS_PACKET_DATA(p))[idx]); } -void avahi_dns_packet_inc_field(AvahiDnsPacket *p, guint index) { +void avahi_dns_packet_inc_field(AvahiDnsPacket *p, guint idx) { g_assert(p); + g_assert(idx < AVAHI_DNS_PACKET_HEADER_SIZE); - avahi_dns_packet_set_field(p, index, avahi_dns_packet_get_field(p, index) + 1); + avahi_dns_packet_set_field(p, idx, avahi_dns_packet_get_field(p, idx) + 1); } guint8* avahi_dns_packet_append_name(AvahiDnsPacket *p, const gchar *name) { @@ -155,19 +156,19 @@ guint8* avahi_dns_packet_append_name(AvahiDnsPacket *p, const gchar *name) { /* Check whether we can compress this name. */ if (p->name_table && (prev = g_hash_table_lookup(p->name_table, name))) { - guint index; + guint idx; g_assert(prev >= AVAHI_DNS_PACKET_DATA(p)); - index = (guint) (prev - AVAHI_DNS_PACKET_DATA(p)); + idx = (guint) (prev - AVAHI_DNS_PACKET_DATA(p)); - g_assert(index < p->size); + g_assert(idx < p->size); - if (index < 0x4000) { + if (idx < 0x4000) { guint16 *t; if (!(t = (guint16*) avahi_dns_packet_extend(p, sizeof(guint16)))) return NULL; - *t = g_htons((0xC000 | index)); + *t = g_htons((0xC000 | idx)); return saved_ptr; } } @@ -290,7 +291,7 @@ gint avahi_dns_packet_is_query(AvahiDnsPacket *p) { return !(avahi_dns_packet_get_field(p, AVAHI_DNS_FIELD_FLAGS) & AVAHI_DNS_FLAG_QR); } -static gint consume_labels(AvahiDnsPacket *p, guint index, gchar *ret_name, guint l) { +static gint consume_labels(AvahiDnsPacket *p, guint idx, gchar *ret_name, guint l) { gint ret = 0; int compressed = 0; int first_label = 1; @@ -299,13 +300,13 @@ static gint consume_labels(AvahiDnsPacket *p, guint index, gchar *ret_name, guin for (;;) { guint8 n; - if (index+1 > p->size) + if (idx+1 > p->size) return -1; - n = AVAHI_DNS_PACKET_DATA(p)[index]; + n = AVAHI_DNS_PACKET_DATA(p)[idx]; if (!n) { - index++; + idx++; if (!compressed) ret++; @@ -317,11 +318,11 @@ static gint consume_labels(AvahiDnsPacket *p, guint index, gchar *ret_name, guin } else if (n <= 63) { /* Uncompressed label */ - index++; + idx++; if (!compressed) ret++; - if (index + n > p->size) + if (idx + n > p->size) return -1; if ((guint) n + 1 > l) @@ -333,20 +334,20 @@ static gint consume_labels(AvahiDnsPacket *p, guint index, gchar *ret_name, guin } else first_label = 0; - if (!(avahi_escape_label(AVAHI_DNS_PACKET_DATA(p) + index, n, &ret_name, &l))) + if (!(avahi_escape_label(AVAHI_DNS_PACKET_DATA(p) + idx, n, &ret_name, &l))) return -1; - index += n; + idx += n; if (!compressed) ret += n; } else if ((n & 0xC0) == 0xC0) { /* Compressed label */ - if (index+2 > p->size) + if (idx+2 > p->size) return -1; - index = ((guint) (AVAHI_DNS_PACKET_DATA(p)[index] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[index+1]; + idx = ((guint) (AVAHI_DNS_PACKET_DATA(p)[idx] & ~0xC0)) << 8 | AVAHI_DNS_PACKET_DATA(p)[idx+1]; if (!compressed) ret += 2; @@ -574,7 +575,7 @@ AvahiRecord* avahi_dns_packet_consume_record(AvahiDnsPacket *p, gboolean *ret_ca /* avahi_log_debug("%i == %u ?", (guint8*) avahi_dns_packet_get_rptr(p) - (guint8*) start, rdlength); */ /* Check if we read enough data */ - if ((guint8*) avahi_dns_packet_get_rptr(p) - (guint8*) start != rdlength) + if ((const guint8*) avahi_dns_packet_get_rptr(p) - (const guint8*) start != rdlength) goto fail; return r; @@ -671,16 +672,16 @@ guint8* avahi_dns_packet_append_record(AvahiDnsPacket *p, AvahiRecord *r, gboole case AVAHI_DNS_TYPE_TXT: { guint8 *data; - guint size; + guint n; - size = avahi_string_list_serialize(r->data.txt.string_list, NULL, 0); + n = avahi_string_list_serialize(r->data.txt.string_list, NULL, 0); -/* avahi_log_debug("appending string: %u %p", size, r->data.txt.string_list); */ +/* avahi_log_debug("appending string: %u %p", n, r->data.txt.string_list); */ - if (!(data = avahi_dns_packet_extend(p, size))) + if (!(data = avahi_dns_packet_extend(p, n))) goto fail; - avahi_string_list_serialize(r->data.txt.string_list, data, size); + avahi_string_list_serialize(r->data.txt.string_list, data, n); break; } diff --git a/avahi-core/dns.h b/avahi-core/dns.h index 03d9798..bb132c1 100644 --- a/avahi-core/dns.h +++ b/avahi-core/dns.h @@ -44,9 +44,9 @@ AvahiDnsPacket* avahi_dns_packet_new_response(guint mtu, gboolean aa); AvahiDnsPacket* avahi_dns_packet_new_reply(AvahiDnsPacket* p, guint mtu, gboolean copy_queries, gboolean aa); void avahi_dns_packet_free(AvahiDnsPacket *p); -void avahi_dns_packet_set_field(AvahiDnsPacket *p, guint index, guint16 v); -guint16 avahi_dns_packet_get_field(AvahiDnsPacket *p, guint index); -void avahi_dns_packet_inc_field(AvahiDnsPacket *p, guint index); +void avahi_dns_packet_set_field(AvahiDnsPacket *p, guint idx, guint16 v); +guint16 avahi_dns_packet_get_field(AvahiDnsPacket *p, guint idx); +void avahi_dns_packet_inc_field(AvahiDnsPacket *p, guint idx); guint8 *avahi_dns_packet_extend(AvahiDnsPacket *p, guint l); diff --git a/avahi-core/iface.c b/avahi-core/iface.c index d068f28..ad26ab0 100644 --- a/avahi-core/iface.c +++ b/avahi-core/iface.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "iface.h" #include "netlink.h" @@ -39,12 +40,12 @@ #include "util.h" #include "log.h" -static void update_address_rr(AvahiInterfaceMonitor *m, AvahiInterfaceAddress *a, gboolean remove) { +static void update_address_rr(AvahiInterfaceMonitor *m, AvahiInterfaceAddress *a, gboolean remove_rrs) { g_assert(m); g_assert(a); if (avahi_interface_address_relevant(a) && - !remove && + !remove_rrs && m->server->config.publish_addresses && (m->server->state == AVAHI_SERVER_RUNNING || m->server->state == AVAHI_SERVER_REGISTERING)) { @@ -71,26 +72,26 @@ static void update_address_rr(AvahiInterfaceMonitor *m, AvahiInterfaceAddress *a } } -static void update_interface_rr(AvahiInterfaceMonitor *m, AvahiInterface *i, gboolean remove) { +static void update_interface_rr(AvahiInterfaceMonitor *m, AvahiInterface *i, gboolean remove_rrs) { AvahiInterfaceAddress *a; g_assert(m); g_assert(i); for (a = i->addresses; a; a = a->address_next) - update_address_rr(m, a, remove); + update_address_rr(m, a, remove_rrs); } -static void update_hw_interface_rr(AvahiInterfaceMonitor *m, AvahiHwInterface *hw, gboolean remove) { +static void update_hw_interface_rr(AvahiInterfaceMonitor *m, AvahiHwInterface *hw, gboolean remove_rrs) { AvahiInterface *i; g_assert(m); g_assert(hw); for (i = hw->interfaces; i; i = i->by_hardware_next) - update_interface_rr(m, i, remove); + update_interface_rr(m, i, remove_rrs); - if (!remove && + if (!remove_rrs && m->server->config.publish_workstation && (m->server->state == AVAHI_SERVER_RUNNING || m->server->state == AVAHI_SERVER_REGISTERING)) { @@ -247,9 +248,9 @@ static void check_interface_relevant(AvahiInterfaceMonitor *m, AvahiInterface *i avahi_log_debug("New relevant interface %s.%i (#%i)", i->hardware->name, i->protocol, i->hardware->index); if (i->protocol == AVAHI_PROTO_INET) - avahi_mdns_mcast_join_ipv4(i->hardware->index, m->server->fd_ipv4); + avahi_mdns_mcast_join_ipv4(m->server->fd_ipv4, i->hardware->index); if (i->protocol == AVAHI_PROTO_INET6) - avahi_mdns_mcast_join_ipv6(i->hardware->index, m->server->fd_ipv6); + avahi_mdns_mcast_join_ipv6(m->server->fd_ipv6, i->hardware->index); i->announcing = TRUE; avahi_announce_interface(m->server, i); @@ -258,9 +259,9 @@ static void check_interface_relevant(AvahiInterfaceMonitor *m, AvahiInterface *i avahi_log_debug("Interface %s.%i no longer relevant", i->hardware->name, i->protocol); if (i->protocol == AVAHI_PROTO_INET) - avahi_mdns_mcast_leave_ipv4(i->hardware->index, m->server->fd_ipv4); + avahi_mdns_mcast_leave_ipv4(m->server->fd_ipv4, i->hardware->index); if (i->protocol == AVAHI_PROTO_INET6) - avahi_mdns_mcast_leave_ipv6(i->hardware->index, m->server->fd_ipv6); + avahi_mdns_mcast_leave_ipv6(m->server->fd_ipv6, i->hardware->index); avahi_goodbye_interface(m->server, i, FALSE); avahi_response_scheduler_clear(i->response_scheduler); @@ -282,7 +283,7 @@ static void check_hw_interface_relevant(AvahiInterfaceMonitor *m, AvahiHwInterfa check_interface_relevant(m, i); } -static void callback(AvahiNetlink *nl, struct nlmsghdr *n, gpointer userdata) { +static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, gpointer userdata) { AvahiInterfaceMonitor *m = userdata; g_assert(m); @@ -468,7 +469,7 @@ AvahiInterfaceMonitor *avahi_interface_monitor_new(AvahiServer *s) { m = g_new0(AvahiInterfaceMonitor, 1); m->server = s; - if (!(m->netlink = avahi_netlink_new(s->context, G_PRIORITY_DEFAULT-10, RTMGRP_LINK|RTMGRP_IPV4_IFADDR|RTMGRP_IPV6_IFADDR, callback, m))) + if (!(m->netlink = avahi_netlink_new(s->context, G_PRIORITY_DEFAULT-10, RTMGRP_LINK|RTMGRP_IPV4_IFADDR|RTMGRP_IPV6_IFADDR, netlink_callback, m))) goto fail; m->hash_table = g_hash_table_new(g_int_hash, g_int_equal); @@ -516,15 +517,15 @@ void avahi_interface_monitor_free(AvahiInterfaceMonitor *m) { } -AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, AvahiIfIndex index, AvahiProtocol protocol) { +AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, AvahiIfIndex idx, AvahiProtocol protocol) { AvahiHwInterface *hw; AvahiInterface *i; g_assert(m); - g_assert(index > 0); + g_assert(idx > 0); g_assert(protocol != AVAHI_PROTO_UNSPEC); - if (!(hw = avahi_interface_monitor_get_hw_interface(m, index))) + if (!(hw = avahi_interface_monitor_get_hw_interface(m, idx))) return NULL; for (i = hw->interfaces; i; i = i->by_hardware_next) @@ -534,11 +535,11 @@ AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, return NULL; } -AvahiHwInterface* avahi_interface_monitor_get_hw_interface(AvahiInterfaceMonitor *m, AvahiIfIndex index) { +AvahiHwInterface* avahi_interface_monitor_get_hw_interface(AvahiInterfaceMonitor *m, AvahiIfIndex idx) { g_assert(m); - g_assert(index > 0); + g_assert(idx > 0); - return g_hash_table_lookup(m->hash_table, &index); + return g_hash_table_lookup(m->hash_table, &idx); } @@ -651,10 +652,10 @@ gboolean avahi_interface_address_relevant(AvahiInterfaceAddress *a) { } -gboolean avahi_interface_match(AvahiInterface *i, AvahiIfIndex index, AvahiProtocol protocol) { +gboolean avahi_interface_match(AvahiInterface *i, AvahiIfIndex idx, AvahiProtocol protocol) { g_assert(i); - if (index > 0 && index != i->hardware->index) + if (idx > 0 && idx != i->hardware->index) return FALSE; if (protocol != AVAHI_PROTO_UNSPEC && protocol != i->protocol) @@ -693,13 +694,13 @@ void avahi_interface_monitor_walk(AvahiInterfaceMonitor *m, AvahiIfIndex interfa } } -void avahi_update_host_rrs(AvahiInterfaceMonitor *m, gboolean remove) { +void avahi_update_host_rrs(AvahiInterfaceMonitor *m, gboolean remove_rrs) { AvahiHwInterface *hw; g_assert(m); for (hw = m->hw_interfaces; hw; hw = hw->hardware_next) - update_hw_interface_rr(m, hw, remove); + update_hw_interface_rr(m, hw, remove_rrs); } gboolean avahi_address_is_local(AvahiInterfaceMonitor *m, const AvahiAddress *a) { @@ -735,13 +736,13 @@ gboolean avahi_interface_address_on_link(AvahiInterface *i, const AvahiAddress * if ((g_ntohl(a->data.ipv4.address) & m) == (g_ntohl(ia->address.data.ipv4.address) & m)) return TRUE; } else { - guint i; + guint j; guchar pl; g_assert(a->family == AVAHI_PROTO_INET6); pl = ia->prefix_len; - for (i = 0; i < 16; i++) { + for (j = 0; j < 16; j++) { guint8 m; if (pl == 0) @@ -755,7 +756,7 @@ gboolean avahi_interface_address_on_link(AvahiInterface *i, const AvahiAddress * pl = 0; } - if ((a->data.ipv6.address[i] & m) != (ia->address.data.ipv6.address[i] & m)) + if ((a->data.ipv6.address[j] & m) != (ia->address.data.ipv6.address[j] & m)) break; } } diff --git a/avahi-core/iface.h b/avahi-core/iface.h index 33d20f0..c5c3c61 100644 --- a/avahi-core/iface.h +++ b/avahi-core/iface.h @@ -112,8 +112,8 @@ void avahi_interface_monitor_free(AvahiInterfaceMonitor *m); void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m); -AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, AvahiIfIndex index, AvahiProtocol protocol); -AvahiHwInterface* avahi_interface_monitor_get_hw_interface(AvahiInterfaceMonitor *m, gint index); +AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, AvahiIfIndex idx, AvahiProtocol protocol); +AvahiHwInterface* avahi_interface_monitor_get_hw_interface(AvahiInterfaceMonitor *m, gint idx); void avahi_interface_send_packet(AvahiInterface *i, AvahiDnsPacket *p); void avahi_interface_send_packet_unicast(AvahiInterface *i, AvahiDnsPacket *p, const AvahiAddress *a, guint16 port); @@ -127,13 +127,13 @@ void avahi_dump_caches(AvahiInterfaceMonitor *m, AvahiDumpCallback callback, gpo gboolean avahi_interface_relevant(AvahiInterface *i); gboolean avahi_interface_address_relevant(AvahiInterfaceAddress *a); -gboolean avahi_interface_match(AvahiInterface *i, AvahiIfIndex index, AvahiProtocol protocol); +gboolean avahi_interface_match(AvahiInterface *i, AvahiIfIndex idx, AvahiProtocol protocol); typedef void (*AvahiInterfaceMonitorWalkCallback)(AvahiInterfaceMonitor *m, AvahiInterface *i, gpointer userdata); -void avahi_interface_monitor_walk(AvahiInterfaceMonitor *m, AvahiIfIndex index, AvahiProtocol protocol, AvahiInterfaceMonitorWalkCallback callback, gpointer userdata); +void avahi_interface_monitor_walk(AvahiInterfaceMonitor *m, AvahiIfIndex idx, AvahiProtocol protocol, AvahiInterfaceMonitorWalkCallback callback, gpointer userdata); -void avahi_update_host_rrs(AvahiInterfaceMonitor *m, gboolean remove); +void avahi_update_host_rrs(AvahiInterfaceMonitor *m, gboolean remove_rrs); gboolean avahi_address_is_local(AvahiInterfaceMonitor *m, const AvahiAddress *a); diff --git a/avahi-core/netlink.c b/avahi-core/netlink.c index ff88b91..119e195 100644 --- a/avahi-core/netlink.c +++ b/avahi-core/netlink.c @@ -39,6 +39,8 @@ struct AvahiNetlink { GSource *source; void (*callback) (AvahiNetlink *nl, struct nlmsghdr *n, gpointer userdata); gpointer userdata; + guint8* buffer; + guint buffer_length; }; gboolean avahi_netlink_work(AvahiNetlink *nl, gboolean block) { @@ -47,19 +49,22 @@ gboolean avahi_netlink_work(AvahiNetlink *nl, gboolean block) { for (;;) { ssize_t bytes; struct nlmsghdr *p; - guint8 buffer[64*1024]; - p = (struct nlmsghdr *) buffer; + for (;;) { + if ((bytes = recv(nl->fd, nl->buffer, nl->buffer_length, block ? 0 : MSG_DONTWAIT)) < 0) { - if ((bytes = recv(nl->fd, buffer, sizeof(buffer), block ? 0 : MSG_DONTWAIT)) < 0) { - - if (errno == EAGAIN || errno == EINTR) - break; + if (errno == EAGAIN || errno == EINTR) + return TRUE; + + avahi_log_warn("NETLINK: recv() failed: %s", strerror(errno)); + return FALSE; + } - avahi_log_warn("NETLINK: recv() failed: %s", strerror(errno)); - return FALSE; + break; } + p = (struct nlmsghdr *) nl->buffer; + if (nl->callback) { for (; bytes > 0; p = NLMSG_NEXT(p, bytes)) { if (!NLMSG_OK(p, (size_t) bytes)) { @@ -72,10 +77,8 @@ gboolean avahi_netlink_work(AvahiNetlink *nl, gboolean block) { } if (block) - break; + return TRUE; } - - return TRUE; } static gboolean prepare_func(GSource *source, gint *timeout) { @@ -144,6 +147,7 @@ AvahiNetlink *avahi_netlink_new(GMainContext *context, gint priority, guint32 gr nl->seq = 0; nl->callback = cb; nl->userdata = userdata; + nl->buffer = g_new(guint8, nl->buffer_length = 64*1024); nl->source = g_source_new(&source_funcs, sizeof(GSource) + sizeof(AvahiNetlink*)); *((AvahiNetlink**) (((guint8*) nl->source) + sizeof(GSource))) = nl; @@ -167,6 +171,7 @@ void avahi_netlink_free(AvahiNetlink *nl) { g_source_unref(nl->source); g_main_context_unref(nl->context); close(nl->fd); + g_free(nl->buffer); g_free(nl); } diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c index 6567d37..cf07d91 100644 --- a/avahi-core/resolve-service.c +++ b/avahi-core/resolve-service.c @@ -107,8 +107,8 @@ static void finish(AvahiServiceResolver *r, AvahiResolverEvent event) { g_assert(FALSE); } - snprintf(sn, sizeof(sn), r->service_name); - snprintf(st, sizeof(st), r->service_type); + g_snprintf(sn, sizeof(sn), r->service_name); + g_snprintf(st, sizeof(st), r->service_type); if ((i = strlen(sn)) > 0 && sn[i-1] == '.') sn[i-1] = 0; @@ -220,8 +220,8 @@ AvahiServiceResolver *avahi_service_resolver_new(AvahiServer *server, gint inter n = t; l = sizeof(t); - avahi_escape_label((guint8*) name, strlen(name), &n, &l); - snprintf(n, l, ".%s.%s", r->service_type, r->domain_name); + avahi_escape_label((const guint8*) name, strlen(name), &n, &l); + g_snprintf(n, l, ".%s.%s", r->service_type, r->domain_name); avahi_elapse_time(&tv, 1000, 0); r->time_event = avahi_time_event_queue_add(server->time_event_queue, &tv, time_event_callback, r); diff --git a/avahi-core/server.c b/avahi-core/server.c index d63f5ec..bd4f536 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "server.h" #include "util.h" @@ -667,7 +668,7 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter } static AvahiLegacyUnicastReflectSlot* allocate_slot(AvahiServer *s) { - guint n, index = (guint) -1; + guint n, idx = (guint) -1; AvahiLegacyUnicastReflectSlot *slot; g_assert(s); @@ -676,66 +677,66 @@ static AvahiLegacyUnicastReflectSlot* allocate_slot(AvahiServer *s) { s->legacy_unicast_reflect_slots = g_new0(AvahiLegacyUnicastReflectSlot*, AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS); for (n = 0; n < AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; n++, s->legacy_unicast_reflect_id++) { - index = s->legacy_unicast_reflect_id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; + idx = s->legacy_unicast_reflect_id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; - if (!s->legacy_unicast_reflect_slots[index]) + if (!s->legacy_unicast_reflect_slots[idx]) break; } - if (index == (guint) -1 || s->legacy_unicast_reflect_slots[index]) + if (idx == (guint) -1 || s->legacy_unicast_reflect_slots[idx]) return NULL; - slot = s->legacy_unicast_reflect_slots[index] = g_new(AvahiLegacyUnicastReflectSlot, 1); + slot = s->legacy_unicast_reflect_slots[idx] = g_new(AvahiLegacyUnicastReflectSlot, 1); slot->id = s->legacy_unicast_reflect_id++; slot->server = s; return slot; } static void deallocate_slot(AvahiServer *s, AvahiLegacyUnicastReflectSlot *slot) { - guint index; + guint idx; g_assert(s); g_assert(slot); - index = slot->id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; + idx = slot->id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; - g_assert(s->legacy_unicast_reflect_slots[index] == slot); + g_assert(s->legacy_unicast_reflect_slots[idx] == slot); avahi_time_event_queue_remove(s->time_event_queue, slot->time_event); g_free(slot); - s->legacy_unicast_reflect_slots[index] = NULL; + s->legacy_unicast_reflect_slots[idx] = NULL; } static void free_slots(AvahiServer *s) { - guint index; + guint idx; g_assert(s); if (!s->legacy_unicast_reflect_slots) return; - for (index = 0; index < AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; index ++) - if (s->legacy_unicast_reflect_slots[index]) - deallocate_slot(s, s->legacy_unicast_reflect_slots[index]); + for (idx = 0; idx < AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; idx ++) + if (s->legacy_unicast_reflect_slots[idx]) + deallocate_slot(s, s->legacy_unicast_reflect_slots[idx]); g_free(s->legacy_unicast_reflect_slots); s->legacy_unicast_reflect_slots = NULL; } static AvahiLegacyUnicastReflectSlot* find_slot(AvahiServer *s, guint16 id) { - guint index; + guint idx; g_assert(s); if (!s->legacy_unicast_reflect_slots) return NULL; - index = id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; + idx = id % AVAHI_MAX_LEGACY_UNICAST_REFLECT_SLOTS; - if (!s->legacy_unicast_reflect_slots[index] || s->legacy_unicast_reflect_slots[index]->id != id) + if (!s->legacy_unicast_reflect_slots[idx] || s->legacy_unicast_reflect_slots[idx]->id != id) return NULL; - return s->legacy_unicast_reflect_slots[index]; + return s->legacy_unicast_reflect_slots[idx]; } static void legacy_unicast_reflect_slot_timeout(AvahiTimeEvent *e, void *userdata) { @@ -824,7 +825,7 @@ static gboolean originates_from_local_legacy_unicast_socket(AvahiServer *s, cons if (getsockname(s->fd_legacy_unicast_ipv4, &lsa, &l) != 0) avahi_log_warn("getsockname(): %s", strerror(errno)); else - return lsa.sin_port == ((struct sockaddr_in*) sa)->sin_port; + return lsa.sin_port == ((const struct sockaddr_in*) sa)->sin_port; } @@ -835,7 +836,7 @@ static gboolean originates_from_local_legacy_unicast_socket(AvahiServer *s, cons if (getsockname(s->fd_legacy_unicast_ipv6, &lsa, &l) != 0) avahi_log_warn("getsockname(): %s", strerror(errno)); else - return lsa.sin6_port == ((struct sockaddr_in6*) sa)->sin6_port; + return lsa.sin6_port == ((const struct sockaddr_in6*) sa)->sin6_port; } return FALSE; @@ -1546,7 +1547,7 @@ void avahi_server_dump(AvahiServer *s, AvahiDumpCallback callback, gpointer user continue; t = avahi_record_to_string(e->record); - snprintf(ln, sizeof(ln), "%s ; iface=%i proto=%i", t, e->interface, e->protocol); + g_snprintf(ln, sizeof(ln), "%s ; iface=%i proto=%i", t, e->interface, e->protocol); g_free(t); callback(ln, userdata); @@ -1746,8 +1747,8 @@ gint avahi_server_add_service_strlst( d = avahi_normalize_name(domain); t = avahi_normalize_name(type); - snprintf(ptr_name, sizeof(ptr_name), "%s.%s", t, d); - snprintf(svc_name, sizeof(svc_name), "%s.%s.%s", ename, t, d); + g_snprintf(ptr_name, sizeof(ptr_name), "%s.%s", t, d); + g_snprintf(svc_name, sizeof(svc_name), "%s.%s.%s", ename, t, d); ret = avahi_server_add_ptr(s, g, interface, protocol, AVAHI_ENTRY_NULL, AVAHI_DEFAULT_TTL, ptr_name, svc_name); @@ -1761,7 +1762,7 @@ gint avahi_server_add_service_strlst( ret |= avahi_server_add_txt_strlst(s, g, interface, protocol, AVAHI_ENTRY_UNIQUE, AVAHI_DEFAULT_TTL, svc_name, strlst); - snprintf(enum_ptr, sizeof(enum_ptr), "_services._dns-sd._udp.%s", d); + g_snprintf(enum_ptr, sizeof(enum_ptr), "_services._dns-sd._udp.%s", d); ret |=avahi_server_add_ptr(s, g, interface, protocol, AVAHI_ENTRY_NULL, AVAHI_DEFAULT_TTL, enum_ptr, ptr_name); g_free(d); @@ -1898,7 +1899,7 @@ gint avahi_server_add_dns_server_name( domain = s->domain_name; d = avahi_normalize_name(domain); - snprintf(t, sizeof(t), "%s.%s", type == AVAHI_DNS_SERVER_RESOLVE ? "_domain._udp" : "_dns-update._udp", d); + g_snprintf(t, sizeof(t), "%s.%s", type == AVAHI_DNS_SERVER_RESOLVE ? "_domain._udp" : "_dns-update._udp", d); g_free(d); r = avahi_record_new_full(t, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_SRV, AVAHI_DEFAULT_TTL_HOST_NAME); diff --git a/avahi-core/socket.c b/avahi-core/socket.c index 1b1f2fd..47ffbd3 100644 --- a/avahi-core/socket.c +++ b/avahi-core/socket.c @@ -84,7 +84,7 @@ static void ipv6_address_to_sockaddr(struct sockaddr_in6 *ret_sa, const AvahiIPv memcpy(&ret_sa->sin6_addr, a, sizeof(AvahiIPv6Address)); } -int avahi_mdns_mcast_join_ipv4 (int index, int fd) { +int avahi_mdns_mcast_join_ipv4(gint fd, gint idx) { struct ip_mreqn mreq; struct sockaddr_in sa; @@ -92,7 +92,7 @@ int avahi_mdns_mcast_join_ipv4 (int index, int fd) { memset(&mreq, 0, sizeof(mreq)); mreq.imr_multiaddr = sa.sin_addr; - mreq.imr_ifindex = index; + mreq.imr_ifindex = idx; if (setsockopt(fd, SOL_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) { avahi_log_warn("IP_ADD_MEMBERSHIP failed: %s\n", strerror(errno)); @@ -102,7 +102,7 @@ int avahi_mdns_mcast_join_ipv4 (int index, int fd) { return 0; } -int avahi_mdns_mcast_join_ipv6 (int index, int fd) { +int avahi_mdns_mcast_join_ipv6(gint fd, gint idx) { struct ipv6_mreq mreq6; struct sockaddr_in6 sa6; @@ -110,7 +110,7 @@ int avahi_mdns_mcast_join_ipv6 (int index, int fd) { memset(&mreq6, 0, sizeof(mreq6)); mreq6.ipv6mr_multiaddr = sa6.sin6_addr; - mreq6.ipv6mr_interface = index; + mreq6.ipv6mr_interface = idx; if (setsockopt(fd, SOL_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) { avahi_log_warn("IPV6_ADD_MEMBERSHIP failed: %s\n", strerror(errno)); @@ -120,7 +120,7 @@ int avahi_mdns_mcast_join_ipv6 (int index, int fd) { return 0; } -int avahi_mdns_mcast_leave_ipv4 (int index, int fd) { +int avahi_mdns_mcast_leave_ipv4(gint fd, gint idx) { struct ip_mreqn mreq; struct sockaddr_in sa; @@ -128,7 +128,7 @@ int avahi_mdns_mcast_leave_ipv4 (int index, int fd) { memset(&mreq, 0, sizeof(mreq)); mreq.imr_multiaddr = sa.sin_addr; - mreq.imr_ifindex = index; + mreq.imr_ifindex = idx; if (setsockopt(fd, SOL_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) { avahi_log_warn("IP_DROP_MEMBERSHIP failed: %s\n", strerror(errno)); @@ -138,7 +138,7 @@ int avahi_mdns_mcast_leave_ipv4 (int index, int fd) { return 0; } -int avahi_mdns_mcast_leave_ipv6 (int index, int fd) { +int avahi_mdns_mcast_leave_ipv6(gint fd, gint idx) { struct ipv6_mreq mreq6; struct sockaddr_in6 sa6; @@ -146,7 +146,7 @@ int avahi_mdns_mcast_leave_ipv6 (int index, int fd) { memset(&mreq6, 0, sizeof(mreq6)); mreq6.ipv6mr_multiaddr = sa6.sin6_addr; - mreq6.ipv6mr_interface = index; + mreq6.ipv6mr_interface = idx; if (setsockopt(fd, SOL_IPV6, IPV6_DROP_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) { avahi_log_warn("IPV6_DROP_MEMBERSHIP failed: %s\n", strerror(errno)); diff --git a/avahi-core/socket.h b/avahi-core/socket.h index dc0bbdd..0643d79 100644 --- a/avahi-core/socket.h +++ b/avahi-core/socket.h @@ -42,10 +42,10 @@ gint avahi_send_dns_packet_ipv6(gint fd, gint iface, AvahiDnsPacket *p, const Av AvahiDnsPacket *avahi_recv_dns_packet_ipv4(gint fd, struct sockaddr_in*ret_sa, AvahiIPv4Address *ret_dest_address, gint *ret_iface, guint8 *ret_ttl); AvahiDnsPacket *avahi_recv_dns_packet_ipv6(gint fd, struct sockaddr_in6*ret_sa, AvahiIPv6Address *ret_dest_address, gint *ret_iface, guint8 *ret_ttl); -int avahi_mdns_mcast_join_ipv4(int index, int fd); -int avahi_mdns_mcast_join_ipv6(int index, int fd); +int avahi_mdns_mcast_join_ipv4(gint fd, gint idx); +int avahi_mdns_mcast_join_ipv6(gint fd, gint idx); -int avahi_mdns_mcast_leave_ipv4(int index, int fd); -int avahi_mdns_mcast_leave_ipv6(int index, int fd); +int avahi_mdns_mcast_leave_ipv4(gint fd, gint idx); +int avahi_mdns_mcast_leave_ipv6(gint fd, gint idx); #endif diff --git a/avahi-core/timeeventq-test.c b/avahi-core/timeeventq-test.c index 213488e..33cd2b1 100644 --- a/avahi-core/timeeventq-test.c +++ b/avahi-core/timeeventq-test.c @@ -30,7 +30,7 @@ static AvahiTimeEventQueue *q = NULL; -void callback(AvahiTimeEvent*e, gpointer userdata) { +static void callback(AvahiTimeEvent*e, gpointer userdata) { GTimeVal tv = {0, 0}; g_assert(e); g_message("callback(%i)", GPOINTER_TO_INT(userdata)); -- cgit