From 36c53c0c4c5764f4a5f14b2b49b9f3c7ef8d9adb Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 24 Jun 2005 19:38:29 +0000 Subject: * update default TTL generation to match RFC git-svn-id: file:///home/lennart/svn/public/avahi/trunk@145 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-common/rr.c | 8 ++++---- avahi-common/rr.h | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'avahi-common') diff --git a/avahi-common/rr.c b/avahi-common/rr.c index 13160fc..b0c03a9 100644 --- a/avahi-common/rr.c +++ b/avahi-common/rr.c @@ -70,7 +70,7 @@ void avahi_key_unref(AvahiKey *k) { } } -AvahiRecord *avahi_record_new(AvahiKey *k) { +AvahiRecord *avahi_record_new(AvahiKey *k, guint32 ttl) { AvahiRecord *r; g_assert(k); @@ -81,19 +81,19 @@ AvahiRecord *avahi_record_new(AvahiKey *k) { memset(&r->data, 0, sizeof(r->data)); - r->ttl = AVAHI_DEFAULT_TTL; + r->ttl = ttl != (guint32) -1 ? ttl : AVAHI_DEFAULT_TTL; return r; } -AvahiRecord *avahi_record_new_full(const gchar *name, guint16 class, guint16 type) { +AvahiRecord *avahi_record_new_full(const gchar *name, guint16 class, guint16 type, guint32 ttl) { AvahiRecord *r; AvahiKey *k; g_assert(name); k = avahi_key_new(name, class, type); - r = avahi_record_new(k); + r = avahi_record_new(k, ttl); avahi_key_unref(k); return r; diff --git a/avahi-common/rr.h b/avahi-common/rr.h index da0b285..13e6a4c 100644 --- a/avahi-common/rr.h +++ b/avahi-common/rr.h @@ -48,7 +48,11 @@ enum { AVAHI_DNS_UNICAST_RESPONSE = 0x8000 }; -#define AVAHI_DEFAULT_TTL (120*60) +/** The default TTL for RRs which contain a host name of some kind. */ +#define AVAHI_DEFAULT_TTL_HOST_NAME (120) + +/** The default TTL for all other records. */ +#define AVAHI_DEFAULT_TTL (75*60) typedef struct { guint ref; @@ -112,8 +116,8 @@ gboolean avahi_key_is_pattern(const AvahiKey *k); guint avahi_key_hash(const AvahiKey *k); -AvahiRecord *avahi_record_new(AvahiKey *k); -AvahiRecord *avahi_record_new_full(const gchar *name, guint16 class, guint16 type); +AvahiRecord *avahi_record_new(AvahiKey *k, guint32 ttl); +AvahiRecord *avahi_record_new_full(const gchar *name, guint16 class, guint16 type, guint32 ttl); AvahiRecord *avahi_record_ref(AvahiRecord *r); void avahi_record_unref(AvahiRecord *r); -- cgit