diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-01-05 22:18:34 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-01-05 22:18:34 +0000 |
commit | 1c24d17c1001240306e054ea534c3aa69a45604b (patch) | |
tree | 4dba79714d25116122cd28572d2321a7eadaa3d4 /avahi-core/server.c | |
parent | 1d4f819072e901518309aff781f9f1e7272dca87 (diff) |
* optionally, register A RR via IPv6, AAAA RR via IPv4 (Closes #62)
* add new API function avahi_server_get_config()
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1365 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/server.c')
-rw-r--r-- | avahi-core/server.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c index 5bfbc50..952f09e 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -803,7 +803,7 @@ static void reflect_legacy_unicast_query_packet(AvahiServer *s, AvahiDnsPacket * avahi_dns_packet_set_field(p, AVAHI_DNS_FIELD_ID, slot->id); for (j = s->monitor->interfaces; j; j = j->interface_next) - if (avahi_interface_is_relevant(j) && + if (j->announcing && j != i && (s->config.reflect_ipv || j->protocol == i->protocol)) { @@ -884,7 +884,7 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres assert(src_address->proto == dst_address->proto); if (!(i = avahi_interface_monitor_get_interface(s->monitor, iface, src_address->proto)) || - !avahi_interface_is_relevant(i)) { + !i->announcing) { avahi_log_warn("Recieved packet from invalid interface."); return; } @@ -977,7 +977,7 @@ static void dispatch_legacy_unicast_packet(AvahiServer *s, AvahiDnsPacket *p) { } if (!(j = avahi_interface_monitor_get_interface(s->monitor, slot->interface, slot->address.proto)) || - !avahi_interface_is_relevant(j)) + !j->announcing) return; /* Patch the original ID into this response */ @@ -1560,6 +1560,8 @@ AvahiServerConfig* avahi_server_config_init(AvahiServerConfig *c) { c->browse_domains = NULL; c->disable_publishing = 0; c->allow_point_to_point = 0; + c->publish_aaaa_on_ipv4 = 1; + c->publish_a_on_ipv6 = 0; return c; } @@ -1721,3 +1723,9 @@ int avahi_server_set_wide_area_servers(AvahiServer *s, const AvahiAddress *a, un avahi_wide_area_set_servers(s->wide_area_lookup_engine, a, n); return AVAHI_OK; } + +const AvahiServerConfig* avahi_server_get_config(AvahiServer *s) { + assert(s); + + return &s->config; +} |