diff options
Diffstat (limited to 'rr.c')
-rw-r--r-- | rr.c | 246 |
1 files changed, 123 insertions, 123 deletions
@@ -8,13 +8,13 @@ #include "rr.h" #include "dns.h" -flxKey *flx_key_new(const gchar *name, guint16 class, guint16 type) { - flxKey *k; +AvahiKey *avahi_key_new(const gchar *name, guint16 class, guint16 type) { + AvahiKey *k; g_assert(name); - k = g_new(flxKey, 1); + k = g_new(AvahiKey, 1); k->ref = 1; - k->name = flx_normalize_name(name); + k->name = avahi_normalize_name(name); k->class = class; k->type = type; @@ -23,7 +23,7 @@ flxKey *flx_key_new(const gchar *name, guint16 class, guint16 type) { return k; } -flxKey *flx_key_ref(flxKey *k) { +AvahiKey *avahi_key_ref(AvahiKey *k) { g_assert(k); g_assert(k->ref >= 1); @@ -34,7 +34,7 @@ flxKey *flx_key_ref(flxKey *k) { return k; } -void flx_key_unref(flxKey *k) { +void avahi_key_unref(AvahiKey *k) { g_assert(k); g_assert(k->ref >= 1); @@ -46,36 +46,36 @@ void flx_key_unref(flxKey *k) { } } -flxRecord *flx_record_new(flxKey *k) { - flxRecord *r; +AvahiRecord *avahi_record_new(AvahiKey *k) { + AvahiRecord *r; g_assert(k); - r = g_new(flxRecord, 1); + r = g_new(AvahiRecord, 1); r->ref = 1; - r->key = flx_key_ref(k); + r->key = avahi_key_ref(k); memset(&r->data, 0, sizeof(r->data)); - r->ttl = FLX_DEFAULT_TTL; + r->ttl = AVAHI_DEFAULT_TTL; return r; } -flxRecord *flx_record_new_full(const gchar *name, guint16 class, guint16 type) { - flxRecord *r; - flxKey *k; +AvahiRecord *avahi_record_new_full(const gchar *name, guint16 class, guint16 type) { + AvahiRecord *r; + AvahiKey *k; g_assert(name); - k = flx_key_new(name, class, type); - r = flx_record_new(k); - flx_key_unref(k); + k = avahi_key_new(name, class, type); + r = avahi_record_new(k); + avahi_key_unref(k); return r; } -flxRecord *flx_record_ref(flxRecord *r) { +AvahiRecord *avahi_record_ref(AvahiRecord *r) { g_assert(r); g_assert(r->ref >= 1); @@ -83,71 +83,71 @@ flxRecord *flx_record_ref(flxRecord *r) { return r; } -void flx_record_unref(flxRecord *r) { +void avahi_record_unref(AvahiRecord *r) { g_assert(r); g_assert(r->ref >= 1); if ((--r->ref) <= 0) { switch (r->key->type) { - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: g_free(r->data.srv.name); break; - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME: + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME: g_free(r->data.ptr.name); break; - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: g_free(r->data.hinfo.cpu); g_free(r->data.hinfo.os); break; - case FLX_DNS_TYPE_TXT: - flx_string_list_free(r->data.txt.string_list); + case AVAHI_DNS_TYPE_TXT: + avahi_string_list_free(r->data.txt.string_list); break; - case FLX_DNS_TYPE_A: - case FLX_DNS_TYPE_AAAA: + case AVAHI_DNS_TYPE_A: + case AVAHI_DNS_TYPE_AAAA: break; default: g_free(r->data.generic.data); } - flx_key_unref(r->key); + avahi_key_unref(r->key); g_free(r); } } -const gchar *flx_dns_class_to_string(guint16 class) { - if (class & FLX_DNS_CACHE_FLUSH) +const gchar *avahi_dns_class_to_string(guint16 class) { + if (class & AVAHI_DNS_CACHE_FLUSH) return "FLUSH"; - if (class == FLX_DNS_CLASS_IN) + if (class == AVAHI_DNS_CLASS_IN) return "IN"; return NULL; } -const gchar *flx_dns_type_to_string(guint16 type) { +const gchar *avahi_dns_type_to_string(guint16 type) { switch (type) { - case FLX_DNS_TYPE_CNAME: + case AVAHI_DNS_TYPE_CNAME: return "CNAME"; - case FLX_DNS_TYPE_A: + case AVAHI_DNS_TYPE_A: return "A"; - case FLX_DNS_TYPE_AAAA: + case AVAHI_DNS_TYPE_AAAA: return "AAAA"; - case FLX_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_PTR: return "PTR"; - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: return "HINFO"; - case FLX_DNS_TYPE_TXT: + case AVAHI_DNS_TYPE_TXT: return "TXT"; - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: return "SRV"; - case FLX_DNS_TYPE_ANY: + case AVAHI_DNS_TYPE_ANY: return "ANY"; default: return NULL; @@ -155,42 +155,42 @@ const gchar *flx_dns_type_to_string(guint16 type) { } -gchar *flx_key_to_string(const flxKey *k) { +gchar *avahi_key_to_string(const AvahiKey *k) { return g_strdup_printf("%s\t%s\t%s", k->name, - flx_dns_class_to_string(k->class), - flx_dns_type_to_string(k->type)); + avahi_dns_class_to_string(k->class), + avahi_dns_type_to_string(k->type)); } -gchar *flx_record_to_string(const flxRecord *r) { +gchar *avahi_record_to_string(const AvahiRecord *r) { gchar *p, *s; char buf[257], *t = NULL, *d = NULL; switch (r->key->type) { - case FLX_DNS_TYPE_A: + case AVAHI_DNS_TYPE_A: inet_ntop(AF_INET, &r->data.a.address.address, t = buf, sizeof(buf)); break; - case FLX_DNS_TYPE_AAAA: + case AVAHI_DNS_TYPE_AAAA: inet_ntop(AF_INET6, &r->data.aaaa.address.address, t = buf, sizeof(buf)); break; - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME : + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME : t = r->data.ptr.name; break; - case FLX_DNS_TYPE_TXT: - t = d = flx_string_list_to_string(r->data.txt.string_list); + case AVAHI_DNS_TYPE_TXT: + t = d = avahi_string_list_to_string(r->data.txt.string_list); break; - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: snprintf(t = buf, sizeof(buf), "\"%s\" \"%s\"", r->data.hinfo.cpu, r->data.hinfo.os); break; - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: snprintf(t = buf, sizeof(buf), "%u %u %u %s", r->data.srv.priority, @@ -201,7 +201,7 @@ gchar *flx_record_to_string(const flxRecord *r) { break; } - p = flx_key_to_string(r->key); + p = avahi_key_to_string(r->key); s = g_strdup_printf("%s %s ; ttl=%u", p, t ? t : "<unparsable>", r->ttl); g_free(p); g_free(d); @@ -209,7 +209,7 @@ gchar *flx_record_to_string(const flxRecord *r) { return s; } -gboolean flx_key_equal(const flxKey *a, const flxKey *b) { +gboolean avahi_key_equal(const AvahiKey *a, const AvahiKey *b) { g_assert(a); g_assert(b); @@ -218,79 +218,79 @@ gboolean flx_key_equal(const flxKey *a, const flxKey *b) { /* g_message("equal: %p %p", a, b); */ - return flx_domain_equal(a->name, b->name) && + return avahi_domain_equal(a->name, b->name) && a->type == b->type && a->class == b->class; } -gboolean flx_key_pattern_match(const flxKey *pattern, const flxKey *k) { +gboolean avahi_key_pattern_match(const AvahiKey *pattern, const AvahiKey *k) { g_assert(pattern); g_assert(k); /* g_message("equal: %p %p", a, b); */ - g_assert(!flx_key_is_pattern(k)); + g_assert(!avahi_key_is_pattern(k)); if (pattern == k) return TRUE; - return flx_domain_equal(pattern->name, k->name) && - (pattern->type == k->type || pattern->type == FLX_DNS_TYPE_ANY) && + return avahi_domain_equal(pattern->name, k->name) && + (pattern->type == k->type || pattern->type == AVAHI_DNS_TYPE_ANY) && pattern->class == k->class; } -gboolean flx_key_is_pattern(const flxKey *k) { +gboolean avahi_key_is_pattern(const AvahiKey *k) { g_assert(k); - return k->type == FLX_DNS_TYPE_ANY; + return k->type == AVAHI_DNS_TYPE_ANY; } -guint flx_key_hash(const flxKey *k) { +guint avahi_key_hash(const AvahiKey *k) { g_assert(k); - return flx_domain_hash(k->name) + k->type + k->class; + return avahi_domain_hash(k->name) + k->type + k->class; } -static gboolean rdata_equal(const flxRecord *a, const flxRecord *b) { +static gboolean rdata_equal(const AvahiRecord *a, const AvahiRecord *b) { g_assert(a); g_assert(b); g_assert(a->key->type == b->key->type); -/* t = flx_record_to_string(a); */ +/* t = avahi_record_to_string(a); */ /* g_message("comparing %s", t); */ /* g_free(t); */ -/* t = flx_record_to_string(b); */ +/* t = avahi_record_to_string(b); */ /* g_message("and %s", t); */ /* g_free(t); */ switch (a->key->type) { - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: return a->data.srv.priority == b->data.srv.priority && a->data.srv.weight == b->data.srv.weight && a->data.srv.port == b->data.srv.port && - flx_domain_equal(a->data.srv.name, b->data.srv.name); + avahi_domain_equal(a->data.srv.name, b->data.srv.name); - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME: - return flx_domain_equal(a->data.ptr.name, b->data.ptr.name); + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME: + return avahi_domain_equal(a->data.ptr.name, b->data.ptr.name); - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: return !strcmp(a->data.hinfo.cpu, b->data.hinfo.cpu) && !strcmp(a->data.hinfo.os, b->data.hinfo.os); - case FLX_DNS_TYPE_TXT: - return flx_string_list_equal(a->data.txt.string_list, b->data.txt.string_list); + case AVAHI_DNS_TYPE_TXT: + return avahi_string_list_equal(a->data.txt.string_list, b->data.txt.string_list); - case FLX_DNS_TYPE_A: - return memcmp(&a->data.a.address, &b->data.a.address, sizeof(flxIPv4Address)) == 0; + case AVAHI_DNS_TYPE_A: + return memcmp(&a->data.a.address, &b->data.a.address, sizeof(AvahiIPv4Address)) == 0; - case FLX_DNS_TYPE_AAAA: - return memcmp(&a->data.aaaa.address, &b->data.aaaa.address, sizeof(flxIPv6Address)) == 0; + case AVAHI_DNS_TYPE_AAAA: + return memcmp(&a->data.aaaa.address, &b->data.aaaa.address, sizeof(AvahiIPv6Address)) == 0; default: return a->data.generic.size == b->data.generic.size && @@ -299,7 +299,7 @@ static gboolean rdata_equal(const flxRecord *a, const flxRecord *b) { } -gboolean flx_record_equal_no_ttl(const flxRecord *a, const flxRecord *b) { +gboolean avahi_record_equal_no_ttl(const AvahiRecord *a, const AvahiRecord *b) { g_assert(a); g_assert(b); @@ -307,46 +307,46 @@ gboolean flx_record_equal_no_ttl(const flxRecord *a, const flxRecord *b) { return TRUE; return - flx_key_equal(a->key, b->key) && + avahi_key_equal(a->key, b->key) && rdata_equal(a, b); } -flxRecord *flx_record_copy(flxRecord *r) { - flxRecord *copy; +AvahiRecord *avahi_record_copy(AvahiRecord *r) { + AvahiRecord *copy; - copy = g_new(flxRecord, 1); + copy = g_new(AvahiRecord, 1); copy->ref = 1; - copy->key = flx_key_ref(r->key); + copy->key = avahi_key_ref(r->key); copy->ttl = r->ttl; switch (r->key->type) { - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME: + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME: copy->data.ptr.name = g_strdup(r->data.ptr.name); break; - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: copy->data.srv.priority = r->data.srv.priority; copy->data.srv.weight = r->data.srv.weight; copy->data.srv.port = r->data.srv.port; copy->data.srv.name = g_strdup(r->data.srv.name); break; - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: copy->data.hinfo.os = g_strdup(r->data.hinfo.os); copy->data.hinfo.cpu = g_strdup(r->data.hinfo.cpu); break; - case FLX_DNS_TYPE_TXT: - copy->data.txt.string_list = flx_string_list_copy(r->data.txt.string_list); + case AVAHI_DNS_TYPE_TXT: + copy->data.txt.string_list = avahi_string_list_copy(r->data.txt.string_list); break; - case FLX_DNS_TYPE_A: + case AVAHI_DNS_TYPE_A: copy->data.a.address = r->data.a.address; break; - case FLX_DNS_TYPE_AAAA: + case AVAHI_DNS_TYPE_AAAA: copy->data.aaaa.address = r->data.aaaa.address; break; @@ -361,42 +361,42 @@ flxRecord *flx_record_copy(flxRecord *r) { } -guint flx_key_get_estimate_size(flxKey *k) { +guint avahi_key_get_estimate_size(AvahiKey *k) { g_assert(k); return strlen(k->name)+1+4; } -guint flx_record_get_estimate_size(flxRecord *r) { +guint avahi_record_get_estimate_size(AvahiRecord *r) { guint n; g_assert(r); - n = flx_key_get_estimate_size(r->key) + 4 + 2; + n = avahi_key_get_estimate_size(r->key) + 4 + 2; switch (r->key->type) { - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME: + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME: n += strlen(r->data.ptr.name) + 1; break; - case FLX_DNS_TYPE_SRV: + case AVAHI_DNS_TYPE_SRV: n += 6 + strlen(r->data.srv.name) + 1; break; - case FLX_DNS_TYPE_HINFO: + case AVAHI_DNS_TYPE_HINFO: n += strlen(r->data.hinfo.os) + 1 + strlen(r->data.hinfo.cpu) + 1; break; - case FLX_DNS_TYPE_TXT: - n += flx_string_list_serialize(r->data.txt.string_list, NULL, 0); + case AVAHI_DNS_TYPE_TXT: + n += avahi_string_list_serialize(r->data.txt.string_list, NULL, 0); break; - case FLX_DNS_TYPE_A: - n += sizeof(flxIPv4Address); + case AVAHI_DNS_TYPE_A: + n += sizeof(AvahiIPv4Address); break; - case FLX_DNS_TYPE_AAAA: - n += sizeof(flxIPv6Address); + case AVAHI_DNS_TYPE_AAAA: + n += sizeof(AvahiIPv6Address); break; default: @@ -447,8 +447,8 @@ static gint lexicographical_domain_cmp(const gchar *a, const gchar *b) { if (b && !a) return -1; - flx_unescape_label(t1, sizeof(t1), &a); - flx_unescape_label(t2, sizeof(t2), &b); + avahi_unescape_label(t1, sizeof(t1), &a); + avahi_unescape_label(t2, sizeof(t2), &b); al = strlen(t1); bl = strlen(t2); @@ -461,7 +461,7 @@ static gint lexicographical_domain_cmp(const gchar *a, const gchar *b) { } } -gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { +gint avahi_record_lexicographical_compare(AvahiRecord *a, AvahiRecord *b) { g_assert(a); g_assert(b); @@ -470,10 +470,10 @@ gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { /* gchar *t; */ -/* g_message("comparing [%s]", t = flx_record_to_string(a)); */ +/* g_message("comparing [%s]", t = avahi_record_to_string(a)); */ /* g_free(t); */ -/* g_message("and [%s]", t = flx_record_to_string(b)); */ +/* g_message("and [%s]", t = avahi_record_to_string(b)); */ /* g_free(t); */ if (a->key->class < b->key->class) @@ -488,11 +488,11 @@ gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { switch (a->key->type) { - case FLX_DNS_TYPE_PTR: - case FLX_DNS_TYPE_CNAME: + case AVAHI_DNS_TYPE_PTR: + case AVAHI_DNS_TYPE_CNAME: return lexicographical_domain_cmp(a->data.ptr.name, b->data.ptr.name); - case FLX_DNS_TYPE_SRV: { + case AVAHI_DNS_TYPE_SRV: { gint r; if ((r = uint16_cmp(a->data.srv.priority, b->data.srv.priority)) == 0 && (r = uint16_cmp(a->data.srv.weight, b->data.srv.weight)) == 0 && @@ -502,7 +502,7 @@ gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { return r; } - case FLX_DNS_TYPE_HINFO: { + case AVAHI_DNS_TYPE_HINFO: { size_t al = strlen(a->data.hinfo.cpu), bl = strlen(b->data.hinfo.cpu); gint r; @@ -524,16 +524,16 @@ gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { } - case FLX_DNS_TYPE_TXT: { + case AVAHI_DNS_TYPE_TXT: { guint8 *ma, *mb; guint asize, bsize; gint r; - ma = g_new(guint8, asize = flx_string_list_serialize(a->data.txt.string_list, NULL, 0)); - mb = g_new(guint8, bsize = flx_string_list_serialize(b->data.txt.string_list, NULL, 0)); - flx_string_list_serialize(a->data.txt.string_list, ma, asize); - flx_string_list_serialize(a->data.txt.string_list, mb, bsize); + ma = g_new(guint8, asize = avahi_string_list_serialize(a->data.txt.string_list, NULL, 0)); + mb = g_new(guint8, bsize = avahi_string_list_serialize(b->data.txt.string_list, NULL, 0)); + avahi_string_list_serialize(a->data.txt.string_list, ma, asize); + avahi_string_list_serialize(a->data.txt.string_list, mb, bsize); r = lexicographical_memcmp(ma, asize, mb, bsize); g_free(ma); @@ -542,11 +542,11 @@ gint flx_record_lexicographical_compare(flxRecord *a, flxRecord *b) { return r; } - case FLX_DNS_TYPE_A: - return memcmp(&a->data.a.address, &b->data.a.address, sizeof(flxIPv4Address)); + case AVAHI_DNS_TYPE_A: + return memcmp(&a->data.a.address, &b->data.a.address, sizeof(AvahiIPv4Address)); - case FLX_DNS_TYPE_AAAA: - return memcmp(&a->data.aaaa.address, &b->data.aaaa.address, sizeof(flxIPv6Address)); + case AVAHI_DNS_TYPE_AAAA: + return memcmp(&a->data.aaaa.address, &b->data.aaaa.address, sizeof(AvahiIPv6Address)); default: return lexicographical_memcmp(a->data.generic.data, a->data.generic.size, |