]> git.pld-linux.org Git - packages/avahi.git/commitdiff
- rel 4; from ubuntu (enable ipv6; avoid 100% cpu eating - ubuntu bug 1059286) auto/th/avahi-0.6.31-4
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 13 Oct 2012 05:37:43 +0000 (07:37 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 13 Oct 2012 05:37:43 +0000 (07:37 +0200)
01_avahi-daemon.conf.patch [new file with mode: 0644]
avahi-core-reserve-space-for-record-data-when-size-estimate.patch [new file with mode: 0644]
avahi.spec

diff --git a/01_avahi-daemon.conf.patch b/01_avahi-daemon.conf.patch
new file mode 100644 (file)
index 0000000..d8cf45e
--- /dev/null
@@ -0,0 +1,16 @@
+Index: b/avahi-daemon/avahi-daemon.conf
+===================================================================
+--- a/avahi-daemon/avahi-daemon.conf   2010-06-29 02:19:57.000000000 +0200
++++ b/avahi-daemon/avahi-daemon.conf   2010-07-07 20:03:01.987655481 +0200
+@@ -21,9 +21,9 @@
+ [server]
+ #host-name=foo
+ #domain-name=local
+-browse-domains=0pointer.de, zeroconf.org
++#browse-domains=0pointer.de, zeroconf.org
+ use-ipv4=yes
+-use-ipv6=no
++use-ipv6=yes
+ #allow-interfaces=eth0
+ #deny-interfaces=eth1
+ #check-response-ttl=no
diff --git a/avahi-core-reserve-space-for-record-data-when-size-estimate.patch b/avahi-core-reserve-space-for-record-data-when-size-estimate.patch
new file mode 100644 (file)
index 0000000..5145b8c
--- /dev/null
@@ -0,0 +1,91 @@
+--- a/avahi-core/dns.c
++++ b/avahi-core/dns.c
+@@ -55,6 +55,7 @@
+     p->size = p->rindex = AVAHI_DNS_PACKET_HEADER_SIZE;
+     p->max_size = max_size;
++    p->res_size = 0;
+     p->name_table = NULL;
+     p->data = NULL;
+@@ -833,6 +834,25 @@
+     return p->max_size - p->size;
+ }
++size_t avahi_dns_packet_reserve_size(AvahiDnsPacket *p, size_t res_size) {
++    assert(p);
++
++    assert(p->size + p->res_size <= p->max_size);
++
++    if ((p->size + p->res_size + res_size) <= p->max_size)
++      p->res_size += res_size;
++
++    return p->res_size;
++}
++
++size_t avahi_dns_packet_reserved_space(AvahiDnsPacket *p) {
++    assert(p);
++
++    assert(p->size + p->res_size <= p->max_size);
++
++    return p->max_size - p->size - p->res_size;
++}
++
+ int avahi_rdata_parse(AvahiRecord *record, const void* rdata, size_t size) {
+     int ret;
+     AvahiDnsPacket p;
+--- a/avahi-core/dns.h
++++ b/avahi-core/dns.h
+@@ -30,7 +30,7 @@
+ #define AVAHI_DNS_PACKET_SIZE_MAX (AVAHI_DNS_PACKET_HEADER_SIZE + 256 + 2 + 2 + 4 + 2 + AVAHI_DNS_RDATA_MAX)
+ typedef struct AvahiDnsPacket {
+-    size_t size, rindex, max_size;
++    size_t size, rindex, max_size, res_size;
+     AvahiHashmap *name_table; /* for name compression */
+     uint8_t *data;
+ } AvahiDnsPacket;
+@@ -78,6 +78,8 @@
+ int avahi_dns_packet_is_empty(AvahiDnsPacket *p);
+ size_t avahi_dns_packet_space(AvahiDnsPacket *p);
++size_t avahi_dns_packet_reserve_size(AvahiDnsPacket *p, size_t res_size);
++size_t avahi_dns_packet_reserved_space(AvahiDnsPacket *p);
+ #define AVAHI_DNS_FIELD_ID 0
+ #define AVAHI_DNS_FIELD_FLAGS 1
+--- a/avahi-core/probe-sched.c
++++ b/avahi-core/probe-sched.c
+@@ -179,7 +179,7 @@
+         avahi_record_get_estimate_size(pj->record);
+     /* Too large */
+-    if (size > avahi_dns_packet_space(p))
++    if (size > avahi_dns_packet_reserved_space(p))
+         return 0;
+     /* Create the probe query */
+@@ -189,6 +189,9 @@
+     b = !!avahi_dns_packet_append_key(p, k, 0);
+     assert(b);
++    /* reserve size for record data */
++    avahi_dns_packet_reserve_size(p, avahi_record_get_estimate_size(pj->record));
++
+     /* Mark this job for addition to the packet */
+     pj->chosen = 1;
+@@ -202,9 +205,12 @@
+             continue;
+         /* This job wouldn't fit in */
+-        if (avahi_record_get_estimate_size(pj->record) > avahi_dns_packet_space(p))
++        if (avahi_record_get_estimate_size(pj->record) > avahi_dns_packet_reserved_space(p))
+             break;
++      /* reserve size for record data */
++      avahi_dns_packet_reserve_size(p, avahi_record_get_estimate_size(pj->record));
++
+         /* Mark this job for addition to the packet */
+         pj->chosen = 1;
+     }
index 0fa5a53839faf005fe83a11f6a914ea90fefdefc..b2bee6e8a3c6bd488a82ef532f807d42be08e4bf 100644 (file)
@@ -30,7 +30,7 @@ Summary:      Free mDNS/DNS-SD/Zeroconf implementation
 Summary(pl.UTF-8):     Wolna implementacja mDNS/DNS-SD/Zeroconf
 Name:          avahi
 Version:       0.6.31
-Release:       3
+Release:       4
 License:       LGPL v2.1+
 Group:         Applications
 Source0:       http://avahi.org/download/%{name}-%{version}.tar.gz
@@ -47,6 +47,8 @@ Patch3:               %{name}-mono-dir.patch
 Patch4:                nss-mdns-package.patch
 Patch5:                %{name}-dhclient_hooks.patch
 Patch6:                %{name}-autoipd-sbin_ip.patch
+Patch7:                01_avahi-daemon.conf.patch
+Patch8:                avahi-core-reserve-space-for-record-data-when-size-estimate.patch
 URL:           http://avahi.org/
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake >= 1:1.11
@@ -648,6 +650,8 @@ Narzędzia linii poleceń korzystające z avahi-client.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 %build
 %{__intltoolize}
This page took 0.079029 seconds and 4 git commands to generate.