From 0c05ad822bb8fe4cd640c64819b16a2b82ae79a2 Mon Sep 17 00:00:00 2001 From: Federico Lucifredi Date: Thu, 27 Dec 2007 08:25:46 +0000 Subject: added c_to_canonical_string() to be used in generating DNS-label-formatted strin gs outside of an AvahiDNSPacket. git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico@1656 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/domain-util.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'avahi-core/domain-util.c') diff --git a/avahi-core/domain-util.c b/avahi-core/domain-util.c index 078ab5c..d58e22b 100644 --- a/avahi-core/domain-util.c +++ b/avahi-core/domain-util.c @@ -191,25 +191,35 @@ int avahi_domain_ends_with(const char *domain, const char *suffix) { char * c_to_canonical_string(char* input) { char *label = avahi_malloc(AVAHI_LABEL_MAX); - char *result = avahi_malloc(AVAHI_DOMAIN_NAME_MAX); + char *retval = avahi_malloc(AVAHI_DOMAIN_NAME_MAX); + char *result = retval; - while(avahi_unescape_label(&input, label, AVAHI_LABEL_MAX)) + /* printf("invoked with: -%s-\n", input); */ + + for(;;) { + avahi_unescape_label(&input, label, AVAHI_LABEL_MAX); + + if(!(*label)) + break; + *result = (char)strlen(label); + /* printf("label length: -%d-\n", *result); */ + result++; - do { - *result = *label; - result++; - label++; - } while(*label); + /*printf("label: -%s-\n", label); */ + + strcpy(result, label); + result += (char)strlen(label); - printf("intermediate result: -%s-\n", result); + /* printf("intermediate result: -%s-\n", retval); */ } - printf("result: -%s-\n", result); + /* printf("result: -%s-\n", retval); + printf("result length: -%d-\n", (char)strlen(retval)); */ avahi_free(label); - return result; + return retval; } -- cgit