return GNUNET_SYSERR;
return GNUNET_OK;
case GNUNET_DNSPARSER_TYPE_SRV:
- if ('_' != *r->data.hostname)
+ if ('_' != *r->name)
return GNUNET_SYSERR; /* all valid srv names must start with "_" */
- if (NULL == strstr (r->data.hostname, "._"))
+ if (NULL == strstr (r->name, "._"))
return GNUNET_SYSERR; /* necessary string from "._$PROTO" not present */
old_off = *off;
if (*off + sizeof (struct srv_data) > udp_payload_length)
r->data.srv->port = ntohs (srv.port);
/* parse 'data.hostname' into components, which are
"_$SERVICE._$PROTO.$DOMAIN_NAME" */
- ndup = GNUNET_strdup (r->data.hostname);
+ ndup = GNUNET_strdup (r->name);
tok = strtok (ndup, ".");
GNUNET_assert ('_' == *tok);
r->data.srv->service = GNUNET_strdup (&tok[1]);
case GNUNET_DNSPARSER_TYPE_MX: return "MX";
case GNUNET_DNSPARSER_TYPE_TXT: return "TXT";
case GNUNET_DNSPARSER_TYPE_AAAA: return "AAAA";
+ case GNUNET_DNSPARSER_TYPE_SRV: return "SRV";
}
GNUNET_snprintf (buf, sizeof (buf), "%u", (unsigned int) type);
return buf;
format = record->data.hostname;
break;
case GNUNET_DNSPARSER_TYPE_SOA:
- if (record->data.soa == NULL)
+ if (NULL == record->data.soa)
format = "<invalid>";
else
{
format = tmp;
}
break;
+ case GNUNET_DNSPARSER_TYPE_SRV:
+ if (NULL == record->data.srv)
+ format = "<invalid>";
+ else
+ {
+ GNUNET_asprintf (&tmp,
+ "service: %s, protocol: %s, domain_name = %s, priority %u, weight = %s, port = %u, target = %s",
+ record->data.srv->service,
+ record->data.srv->proto,
+ record->data.srv->domain_name,
+ (unsigned int) record->data.srv->priority,
+ (unsigned int) record->data.srv->weight,
+ (unsigned int) record->data.srv->port,
+ record->data.srv->target);
+ format = tmp;
+ }
+ break;
case GNUNET_DNSPARSER_TYPE_TXT:
GNUNET_asprintf (&tmp,
"%.*s",