[Pkg-utopia-commits] r1333 - in packages/experimental/avahi/debian:
. patches
Sjoerd Simons
sjoerd at alioth.debian.org
Wed Apr 4 13:33:11 UTC 2007
Author: sjoerd
Date: 2007-04-04 13:33:10 +0000 (Wed, 04 Apr 2007)
New Revision: 1333
Added:
packages/experimental/avahi/debian/patches/12_avahi-generic-records.patch
packages/experimental/avahi/debian/patches/13_avahi_big_dns_records.patch
Modified:
packages/experimental/avahi/debian/changelog
Log:
* debian/patches/12_avahi-generic-records.patch
+ Added. Fixes the resolving of generic dns records.
Patch from http://avahi.org/ticket/130
* debian/patches/13_avahi_big_dns_records.patch
+ Added. Fixes publishing of big dns records.
Patch from http://avahi.org/ticket/131
Modified: packages/experimental/avahi/debian/changelog
===================================================================
--- packages/experimental/avahi/debian/changelog 2007-04-03 15:51:56 UTC (rev 1332)
+++ packages/experimental/avahi/debian/changelog 2007-04-04 13:33:10 UTC (rev 1333)
@@ -1,3 +1,14 @@
+avahi (0.6.17-2) experimental; urgency=low
+
+ * debian/patches/12_avahi-generic-records.patch
+ + Added. Fixes the resolving of generic dns records.
+ Patch from http://avahi.org/ticket/130
+ * debian/patches/13_avahi_big_dns_records.patch
+ + Added. Fixes publishing of big dns records.
+ Patch from http://avahi.org/ticket/131
+
+ -- Sjoerd Simons <sjoerd at debian.org> Wed, 04 Apr 2007 14:40:35 +0200
+
avahi (0.6.17-1) experimental; urgency=low
* New upstream release:
Added: packages/experimental/avahi/debian/patches/12_avahi-generic-records.patch
===================================================================
--- packages/experimental/avahi/debian/patches/12_avahi-generic-records.patch 2007-04-03 15:51:56 UTC (rev 1332)
+++ packages/experimental/avahi/debian/patches/12_avahi-generic-records.patch 2007-04-04 13:33:10 UTC (rev 1333)
@@ -0,0 +1,21 @@
+Index: avahi-core/dns.c
+===================================================================
+--- avahi-core/dns.c (revision 1400)
++++ avahi-core/dns.c (working copy)
+@@ -589,6 +589,7 @@
+ if (rdlength > 0) {
+
+ r->data.generic.data = avahi_memdup(avahi_dns_packet_get_rptr(p), rdlength);
++ r->data.generic.size = rdlength;
+
+ if (avahi_dns_packet_skip(p, rdlength) < 0)
+ return -1;
+@@ -754,7 +755,7 @@
+ default:
+
+ if (r->data.generic.size)
+- if (avahi_dns_packet_append_bytes(p, r->data.generic.data, r->data.generic.size))
++ if (!avahi_dns_packet_append_bytes(p, r->data.generic.data, r->data.generic.size))
+ return -1;
+
+ break;
Added: packages/experimental/avahi/debian/patches/13_avahi_big_dns_records.patch
===================================================================
--- packages/experimental/avahi/debian/patches/13_avahi_big_dns_records.patch 2007-04-03 15:51:56 UTC (rev 1332)
+++ packages/experimental/avahi/debian/patches/13_avahi_big_dns_records.patch 2007-04-04 13:33:10 UTC (rev 1333)
@@ -0,0 +1,104 @@
+Index: avahi-core/dns.c
+===================================================================
+--- avahi-core/dns.c (revision 1400)
++++ avahi-core/dns.c (working copy)
+@@ -786,7 +787,7 @@
+ goto fail;
+
+ size = avahi_dns_packet_extend(p, 0) - start;
+- assert(size <= 0xFFFF);
++ assert(size <= AVAHI_DNS_MAX_RDATA);
+
+ /* avahi_log_debug("appended %u", size); */
+
+Index: avahi-core/dns.h
+===================================================================
+--- avahi-core/dns.h (revision 1400)
++++ avahi-core/dns.h (working copy)
+@@ -25,10 +25,12 @@
+ #include "rr.h"
+ #include "hashmap.h"
+
+-#define AVAHI_DNS_PACKET_SIZE_MAX 9000
+ #define AVAHI_DNS_PACKET_HEADER_SIZE 12
+ #define AVAHI_DNS_PACKET_EXTRA_SIZE 48
+ #define AVAHI_DNS_LABELS_MAX 127
++#define AVAHI_DNS_MAX_RDATA 0xFFFF
++#define AVAHI_DNS_PACKET_SIZE_MAX \
++ AVAHI_DNS_MAX_RDATA + AVAHI_DNS_PACKET_HEADER_SIZE + AVAHI_DNS_LABELS_MAX
+
+ typedef struct AvahiDnsPacket {
+ size_t size, rindex, max_size;
+Index: avahi-core/response-sched.c
+===================================================================
+--- avahi-core/response-sched.c (revision 1400)
++++ avahi-core/response-sched.c (working copy)
+@@ -245,11 +245,9 @@
+ avahi_dns_packet_free(p);
+
+ /* OK, the packet was too small, so create one that fits */
+- size = avahi_record_get_estimate_size(rj->record) + AVAHI_DNS_PACKET_HEADER_SIZE;
++ size = avahi_record_get_estimate_size(rj->record)
++ + AVAHI_DNS_PACKET_HEADER_SIZE + AVAHI_DNS_PACKET_EXTRA_SIZE;
+
+- if (size > AVAHI_DNS_PACKET_SIZE_MAX)
+- size = AVAHI_DNS_PACKET_SIZE_MAX;
+-
+ if (!(p = avahi_dns_packet_new_response(size, 1)))
+ return; /* OOM */
+
+Index: avahi-core/probe-sched.c
+===================================================================
+--- avahi-core/probe-sched.c (revision 1400)
++++ avahi-core/probe-sched.c (working copy)
+@@ -248,10 +248,7 @@
+ size =
+ avahi_key_get_estimate_size(pj->record->key) +
+ avahi_record_get_estimate_size(pj->record) +
+- AVAHI_DNS_PACKET_HEADER_SIZE;
+-
+- if (size > AVAHI_DNS_PACKET_SIZE_MAX)
+- size = AVAHI_DNS_PACKET_SIZE_MAX;
++ AVAHI_DNS_PACKET_HEADER_SIZE + AVAHI_DNS_PACKET_EXTRA_SIZE;
+
+ if (!(p = avahi_dns_packet_new_query(size)))
+ return; /* OOM */
+Index: avahi-core/server.c
+===================================================================
+--- avahi-core/server.c (revision 1400)
++++ avahi-core/server.c (working copy)
+@@ -448,9 +448,9 @@
+ /* The record is too large for one packet, so create a larger packet */
+
+ avahi_dns_packet_free(reply);
+- size = avahi_record_get_estimate_size(r) + AVAHI_DNS_PACKET_HEADER_SIZE;
+- if (size > AVAHI_DNS_PACKET_SIZE_MAX)
+- size = AVAHI_DNS_PACKET_SIZE_MAX;
++ size = avahi_record_get_estimate_size(r)
++ + AVAHI_DNS_PACKET_HEADER_SIZE
++ + AVAHI_DNS_PACKET_EXTRA_SIZE;
+
+ if (!(reply = avahi_dns_packet_new_reply(p, size, 0, 1)))
+ break; /* OOM */
+@@ -458,12 +458,19 @@
+ if (!avahi_dns_packet_append_record(reply, r, flush_cache, 0)) {
+ char *t;
+ avahi_dns_packet_free(reply);
++ reply = NULL;
+ t = avahi_record_to_string(r);
+ avahi_log_warn("Record [%s] too large, doesn't fit in any packet!", t);
+ avahi_free(t);
+ break;
+- } else
+- avahi_dns_packet_inc_field(reply, AVAHI_DNS_FIELD_ANCOUNT);
++ }
++ /* Packet specifically made so this record fits.. no
++ * more records can be added so sent it out */
++ avahi_dns_packet_inc_field(reply, AVAHI_DNS_FIELD_ANCOUNT);
++ avahi_interface_send_packet_unicast(i, reply, a, port);
++ avahi_dns_packet_free(reply);
++ reply = NULL;
++ break;
+ }
+
+ /* Appending the record didn't succeeed, so let's send this packet, and create a new one */
More information about the Pkg-utopia-commits
mailing list