summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-11-26 00:05:50 +0900
committerLorenzo Colitti <lorenzo@google.com>2015-11-26 10:45:39 +0900
commitd65b6bc260c215ca125dc024c0f8f42f0a520493 (patch)
tree62605a78ffee041907a6c9040293729238fee182
parent513aae2733f6a7fa18d564934a79875dd73bc0a0 (diff)
downloadandroid_external_dnsmasq-d65b6bc260c215ca125dc024c0f8f42f0a520493.tar.gz
android_external_dnsmasq-d65b6bc260c215ca125dc024c0f8f42f0a520493.tar.bz2
android_external_dnsmasq-d65b6bc260c215ca125dc024c0f8f42f0a520493.zip
Add TODOs for IPv6 support.
Bug: 9580643 Change-Id: I131fcd0716f0e048dbf63c01db4ce95780c41dbb
-rwxr-xr-xsrc/cache.c1
-rwxr-xr-xsrc/network.c2
-rwxr-xr-xsrc/rfc1035.c2
3 files changed, 5 insertions, 0 deletions
diff --git a/src/cache.c b/src/cache.c
index d641ae7..6c0f225 100755
--- a/src/cache.c
+++ b/src/cache.c
@@ -1245,6 +1245,7 @@ void log_query(unsigned short flags, char *name, struct all_addr *addr, char *ar
if (addr)
{
#ifdef HAVE_IPV6
+ /* TODO: support scoped addresses. struct all_addr doesn't store scope IDs. */
inet_ntop(flags & F_IPV4 ? AF_INET : AF_INET6,
addr, addrbuff, ADDRSTRLEN);
#else
diff --git a/src/network.c b/src/network.c
index 858e7b4..2df8c75 100755
--- a/src/network.c
+++ b/src/network.c
@@ -458,6 +458,8 @@ void create_bound_listener(struct listener **listeners, struct irec *iface)
/* An interface may have an IPv6 address which is still undergoing DAD.
If so, the bind will fail until the DAD completes, so we try over 20 seconds
before failing. */
+ /* TODO: What to do here? 20 seconds is way too long. We use optimistic addresses, so bind()
+ will only fail if the address has already failed DAD, in which case retrying won't help. */
if (iface->addr.sa.sa_family == AF_INET6 && (errno == ENODEV || errno == EADDRNOTAVAIL) &&
dad_count++ < DAD_WAIT)
{
diff --git a/src/rfc1035.c b/src/rfc1035.c
index ca5ceba..8ae0bfa 100755
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
@@ -241,6 +241,8 @@ static int in_arpa_name_2_addr(char *namein, struct all_addr *addrp)
that we can since there is no reason not to.
*/
+ /* TODO: does this make sense? */
+
if (*name == '\\' && *(name+1) == '[' &&
(*(name+2) == 'x' || *(name+2) == 'X'))
{