[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r17788 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r17788 - gnunet/src/vpn |
Date: |
Wed, 26 Oct 2011 14:30:41 +0200 |
Author: toelke
Date: 2011-10-26 14:30:41 +0200 (Wed, 26 Oct 2011)
New Revision: 17788
Modified:
gnunet/src/vpn/gnunet-service-dns.c
Log:
*really* do A/AAAA
Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2011-10-26 12:12:46 UTC (rev 17787)
+++ gnunet/src/vpn/gnunet-service-dns.c 2011-10-26 12:30:41 UTC (rev 17788)
@@ -97,6 +97,7 @@
uint16_t local_port;
char *name;
uint8_t namelen;
+ uint16_t qtype;
} query_states[UINT16_MAX+1];
/**
@@ -529,14 +530,14 @@
(struct dns_record_line *) (dpkt->data +
(query_states[dns->s.id].namelen) +
sizeof (struct dns_query_line) + 2);
- if (16 == answer->pkt.addrsize)
+ if (ntohs(28) == query_states[dns->s.id].qtype)
{
answer->pkt.subtype = GNUNET_DNS_ANSWER_TYPE_REMOTE_AAAA;
dque->type = htons (28); /* AAAA */
drec_data->type = htons (28); /* AAAA */
drec_data->data_len = htons (16);
}
- else if (4 == answer->pkt.addrsize)
+ if (ntohs(1) == query_states[dns->s.id].qtype)
{
answer->pkt.subtype = GNUNET_DNS_ANSWER_TYPE_REMOTE_A;
dque->type = htons (1); /* A */
@@ -819,6 +820,17 @@
memcpy (query_states[dns->s.id].name, dns->data,
query_states[dns->s.id].namelen);
+ int i;
+ for (i= 0; i < pdns->s.qdcount; i++)
+ {
+ if (pdns->queries[i]->qtype == htons(28) ||
+ pdns->queries[i]->qtype == htons(28))
+ {
+ query_states[dns->s.id].qtype = pdns->queries[i]->qtype;
+ break;
+ }
+ }
+
/* The query is for a .gnunet-address */
if (pdns->queries[0]->namelen > 9 &&
0 == strncmp (pdns->queries[0]->name + (pdns->queries[0]->namelen - 9),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r17788 - gnunet/src/vpn,
gnunet <=