summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFederico Lucifredi <flucifredi@acm.org>2007-12-27 08:25:46 +0000
committerFederico Lucifredi <flucifredi@acm.org>2007-12-27 08:25:46 +0000
commit0c05ad822bb8fe4cd640c64819b16a2b82ae79a2 (patch)
tree0829d4d1bb8d4b8daf5e3feabfeb34467d70419b
parentfaa8f3d936014d6e860e73540d2d4523d0da104e (diff)
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
-rw-r--r--avahi-core/domain-util.c30
-rw-r--r--avahi-core/entry.c4
2 files changed, 22 insertions, 12 deletions
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;
}
diff --git a/avahi-core/entry.c b/avahi-core/entry.c
index aadc1db..1882d48 100644
--- a/avahi-core/entry.c
+++ b/avahi-core/entry.c
@@ -228,8 +228,8 @@ static AvahiEntry * server_add_internal(
if (r->key->type == 12 || r->key->type == 2 || r->key->type == 5)
{
printf("c-style: \"%s\"\n", r->data.ptr.name);
- /*printf("canonical: \"%s\"\n", c_to_canonical_string(r->data.ptr.name));*/
- printf("canonical: \"%s\"\n", avahi_normalize_name_strdup(r->data.ptr.name));
+ printf("canonical: \"%s\"\n", c_to_canonical_string(r->data.ptr.name));
+ printf("length: \"%d\"\n", (char)strlen(c_to_canonical_string(r->data.ptr.name)));
}
/*wide_area_publish();*/