From 9962a048634c590db23a00db1d01daada779844c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 24 Jun 2005 19:02:51 +0000 Subject: * implement new source address check mechanisms * introduce new types AvahiIfIndex and AvahiProtocol to abstract underlying OS structures a bit * document string list, address and other stuff * implement qclass = ANY queries * don't make use of UTF8 collation as RFC mandates git-svn-id: file:///home/lennart/svn/public/avahi/trunk@144 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-common/util.c | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) (limited to 'avahi-common/util.c') diff --git a/avahi-common/util.c b/avahi-common/util.c index a41475a..baf5527 100644 --- a/avahi-common/util.c +++ b/avahi-common/util.c @@ -79,25 +79,18 @@ static gchar *unescape_uneeded(const gchar *src, gchar *ret_dest, size_t size) { gchar *avahi_normalize_name(const gchar *s) { gchar tmp[256]; - gchar *n, *t; guint l; g_assert(s); unescape_uneeded(s, tmp, sizeof(tmp)); - n = g_utf8_normalize(tmp, -1, G_NORMALIZE_DEFAULT); - - if ((l = strlen(n)) == 0) { - g_free(n); + if ((l = strlen(tmp)) == 0) return g_strdup("."); - } - if (n[l-1] == '.') - return n; + if (tmp[l-1] == '.') + return g_strdup(tmp); - t = g_strdup_printf("%s.", n); - g_free(n); - return t; + return g_strdup_printf("%s.", tmp); } gint avahi_timeval_compare(const GTimeVal *a, const GTimeVal *b) { @@ -280,22 +273,6 @@ gchar *avahi_escape_label(const guint8* src, guint src_length, gchar **ret_name, return r; } -static gint utf8_strcasecmp(const gchar *a, const gchar *b) { - gchar *ta, *tb; - gint r; - - g_assert(a); - g_assert(b); - - ta = g_utf8_casefold(a, -1); - tb = g_utf8_casefold(b, -1); - r = g_utf8_collate(ta, tb); - g_free(ta); - g_free(tb); - - return r; -} - gboolean avahi_domain_equal(const gchar *a, const gchar *b) { g_assert(a); g_assert(b); @@ -314,7 +291,7 @@ gboolean avahi_domain_equal(const gchar *a, const gchar *b) { else if ((pa && !pb) || (!pa && pb)) return FALSE; - if (utf8_strcasecmp(pa, pb)) + if (g_ascii_strcasecmp(pa, pb)) return FALSE; } @@ -385,7 +362,7 @@ guint avahi_domain_hash(const gchar *s) { guint hash = 0; for (;;) { - gchar c[65], *n, *m; + gchar c[65], *m; if (!avahi_unescape_label(&s, c, sizeof(c))) return hash; @@ -393,13 +370,9 @@ guint avahi_domain_hash(const gchar *s) { if (!c[0]) continue; - n = g_utf8_normalize(c, -1, G_NORMALIZE_DEFAULT); - m = g_utf8_strdown(n, -1); - + m = g_ascii_strdown(c, -1); hash += g_str_hash(m); - g_free(m); - g_free(n); } } -- cgit