- return g_strdup_printf("%s\t%s\t%s",
- k->name,
- avahi_dns_class_to_string(k->clazz),
- avahi_dns_type_to_string(k->type));
+ assert(k);
+ assert(k->ref >= 1);
+
+ /* According to RFC3597 */
+
+ if (!(c = avahi_dns_class_to_string(k->clazz))) {
+ snprintf(class, sizeof(class), "CLASS%u", k->clazz);
+ c = class;
+ }
+
+ if (!(t = avahi_dns_type_to_string(k->type))) {
+ snprintf(type, sizeof(type), "TYPE%u", k->type);
+ t = type;
+ }
+
+ return avahi_strdup_printf("%s\t%s\t%s", k->name, c, t);