Commit Graph

25 Commits

Author SHA1 Message Date
Brian Carlstrom
c13fa640ee Tracking change to dns proxy protocol
The gethostbyaddr code in system/netd now expects a string address
from inet_ntop, not raw bytes, in order to properly pass addresses
containing null and probably spaces and newlines characeters as well.

Bug: 4344448
Change-Id: I935abbbe522d96b64a5f975c7937e3aed3f7b335
2011-04-27 11:55:43 -07:00
Carl Shapiro
2cc2b2be69 Add some missing includes.
Change-Id: Ieec623c06bc32ec78334f628af25b00c2bccd2e7
2011-03-21 20:01:03 -07:00
Mattias Falk
149f7dfe04 Proxy getnameinfo through netd
Proxy the parts of getnameinfo that utilize
the dns cache through netd.

Change-Id: I1d57c451ea6b179c34828cf57a4182b262674003
2011-02-22 08:22:16 +01:00
Mattias Falk
066ecc8f4a Convert cname lenght before use
The length of the cname is sent in big-endian
order. Thus, it has to be converted before used
in android_getaddrinfo_proxy

Change-Id: I1a0cc12780c47f7493fcf06f690515829f88c01e
2011-02-15 08:44:20 +01:00
David Turner
f03e2d3f31 am 5d45fa40: am 2081fda6: Merge "Only look up A records if the system has IPv4." into gingerbread
* commit '5d45fa4049d9ba03c0d922ece18d1d2dda119dc7':
  Only look up A records if the system has IPv4.
2011-01-21 15:50:23 -08:00
David Turner
2081fda69a Merge "Only look up A records if the system has IPv4." into gingerbread 2011-01-18 17:32:02 -08:00
Steinar H. Gunderson
76b6f084ab am 2be18508: am 2e23e292: Backport (simple cherry-pick) d33019030c to gingerbread.
* commit '2be18508f349b74b60b09e1b1118d879afb5928c':
  Backport (simple cherry-pick) d33019030c to gingerbread.
2011-01-17 12:19:01 -08:00
Lorenzo Colitti
ba96e30fa0 Only look up A records if the system has IPv4.
getaddrinfo only asks DNS for IPv6 addresses if the system
has IPv6 connectivity, but always asks for IPv4 addresses.
Don't ask for IPv4 addresses if there is no IPv4
connectivity.

Change-Id: Iefe9fcb006fabe60b4b11dd4653a7c4a406506f4
2011-01-15 19:02:58 -08:00
Steinar H. Gunderson
2e23e29245 Backport (simple cherry-pick) d33019030c
to gingerbread.

Implement RFC3484 policy table changes from draft-ietf-6man-rfc3484-revise-01.

The changes in a nutshell:

 - Handle v4-mapped as different from v4-compat (this was probably
   an existing bug in our code).
 - Add policy entries for ULA, above most everything else.
 - Put v4-compat, old-style IPv6 site-local and 6bone addresses
   way down in the preference table.

The rest is just shuffling numbers around (no actual changes to
priority).
2011-01-14 21:41:18 +01:00
Steinar H. Gunderson
a798b9f0e1 Backport (simple cherry-pick) d1624add2b
to gingerbread.

Don't treat private IPv4 addresses as being in a non-global scope. The effect of this change is essentially to prefer NATed IPv4 over 6to4.
2011-01-14 21:40:34 +01:00
Steinar H. Gunderson
d1624add2b Don't treat private IPv4 addresses as being in a non-global scope. The effect of this change is essentially to prefer NATed IPv4 over 6to4.
Change-Id: I53a8613ca9eb61cac0bf18f0b5f98a2d35ab9c50
2010-12-20 11:15:33 +01:00
Brad Fitzpatrick
7858564582 Don't proxy getaddrinfo when net.dns1.[MYPID] is set.
Part of on-going DNS proxy/cache work.

Bug: 1146676
Change-Id: I5e6028169c81c2223efc34c3b57e348c44f26d26
2010-10-28 13:22:20 -07:00
Brad Fitzpatrick
a1dbf0b453 DNS proxy: the start. proxies getaddrinfo calls.
Will also need to do gethostinfo, but that's probably about it.

It was cleaner to do it at this level, rather than speaking in terms
of DNS packets.

Change-Id: I047cc459979ffb0170a3eb0d432a7e827fb71c26
2010-10-28 11:31:22 -07:00
David 'Digit' Turner
50ace4fec5 Remove compiler warnings when building Bionic.
Also add missing declarations to misc. functions.
Fix clearerr() implementation (previous was broken).
Handle feature test macros like _POSIX_C_SOURCE properly.

Change-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4
2010-06-22 17:51:41 -07:00
Kenny Root
7e0bfb511e Fix comparison of IPv6 prefixes
Typo assigned prefixlen1 twice instead of to the two different variables
for comparison and difference computation.

Change-Id: I6631b8269ca6aae264c8d7d414127b756838df96
2010-03-24 18:07:26 -07:00
Steinar H. Gunderson
9ab75d4cc8 Implement support for RFC 3484 (address selection/sorting) in bionic. (The
Java changes required not to mess up the ordering from bionic will arrive in a
later commit.) In particular, this will give us more correct behavior when on a
6to4 network, in that IPv4 will usually be preferred over 6to4.

Most of RFC 3484 is implemented -- what's not is rule 3 (avoid deprecated
addresses), 4 (prefer home addresses) and 7 (prefer native transport) as they
require low-level access to the kernel routing table via netlink. (glibc also
started out this way, and these rules are primarily useful in pretty obscure
circumstances, so we should be fine for the time being.)

Also, rule 9 (use longest matching prefix) has been modified so it does not try
to sort IPv4 addresses; given current IPv4 addressing practice these rules are
pretty much meaningless. Finally, I've added support for Teredo as a separate
label, with slightly lower preference than 6to4. (Vista puts the preference
below IPv4 by default. glibc puts the preference together with non-tunneled
IPv6.)

Note that this patch removes support for the "sortlist" directive in
resolv.conf; I've never seen it in actual use, it's irrelevant for Android
(since we don't use resolv.conf anyway), and it's not clear how it would be
implemented alongside RFC 3484.
2010-02-24 11:49:17 +01:00
Jean-Baptiste Queru
cdeb4c8afa merge from open-source master 2009-09-15 07:51:39 -07:00
Chih-Wei Huang
a90528ad34 Include <endian.h> instead of <sys/endian.h>,
since the later doesn't define byte order.
2009-08-31 15:42:09 +08:00
Lorenzo Colitti
3d8f4ada56 Don't request IPv6 addresses if AI_ADDRCONFIG is specified and the system has no IPv6 connectivity. 2009-08-04 13:17:03 -07:00
David 'Digit' Turner
2735b33519 Fix getservent() so that it returns s_port in network byte order.
Also add a new document detailing known issues in the C library.
2009-05-27 00:01:11 +02:00
David 'Digit' Turner
5e56370038 change getaddrinfo() implementation to match GLibc.
the issue is that the BSD implementation doesn't accept a call like:

  getaddrinfo(SERVER_NAME, "9999", NULL, &res);

because if will reject a numerical string in the second parameter if no hints are explicitely
provided. This technically doesn't violate POSIX but might make porting Linux software a bit
difficult. For more details see:

http://groups.google.com/group/android-ndk/browse_thread/thread/818ab9c53f24c87

also comment debugging printf() calls which shouldn't be there.
2009-05-05 15:50:24 +02:00
The Android Open Source Project
1dc9e472e1 auto import from //depot/cupcake/@135843 2009-03-03 19:28:35 -08:00
The Android Open Source Project
1767f908af auto import from //depot/cupcake/@135843 2009-03-03 18:28:13 -08:00
The Android Open Source Project
4e468ed2eb Code drop from //branches/cupcake/...@124589 2008-12-17 18:03:48 -08:00
The Android Open Source Project
a27d2baa0c Initial Contribution 2008-10-21 07:00:00 -07:00