Geert Uytterhoeven | 19 Apr 2012 15:48

[PATCH] c-ares: Add support for multiple DNS servers on Android

Before, c-ares always used the first DNS server on Android, causing
network problems if this DNS server was not available.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@...>
---
 ares_init.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/ares_init.c b/ares_init.c
index a0bfc83..fa9e1d7 100644
--- a/ares_init.c
+++ b/ares_init.c
 <at>  <at>  -62,6 +62,7  <at>  <at> 

 #if defined(ANDROID) || defined(__ANDROID__)
 #include <sys/system_properties.h>
+#define MAX_DNS_PROPERTIES	8	/* From the Bionic sources */
 #endif

 #include "ares.h"
 <at>  <at>  -953,11 +954,22  <at>  <at>  DhcpNameServer
   status = ARES_EOF;

 #elif defined(ANDROID) || defined(__ANDROID__)
+  unsigned int i;
+  char name[PROP_NAME_MAX];
   char value[PROP_VALUE_MAX]="";
-  __system_property_get("net.dns1", value);
-  status = config_nameserver(&servers, &nservers, value);
-  if (status == ARES_SUCCESS)
(Continue reading)

Guenter | 19 Apr 2012 19:36

Re: [PATCH] c-ares: Add support for multiple DNS servers on Android

Hi Geert,
Am 19.04.2012 15:48, schrieb Geert Uytterhoeven:
> Before, c-ares always used the first DNS server on Android, causing
> network problems if this DNS server was not available.
>
> Signed-off-by: Geert Uytterhoeven<Geert.Uytterhoeven@...>
> ---
>   ares_init.c |   18 +++++++++++++++---
>   1 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/ares_init.c b/ares_init.c
> index a0bfc83..fa9e1d7 100644
> --- a/ares_init.c
> +++ b/ares_init.c
>  <at>  <at>  -62,6 +62,7  <at>  <at> 
>
>   #if defined(ANDROID) || defined(__ANDROID__)
>   #include<sys/system_properties.h>
> +#define MAX_DNS_PROPERTIES	8	/* From the Bionic sources */
>   #endif
>
>   #include "ares.h"
>  <at>  <at>  -953,11 +954,22  <at>  <at>  DhcpNameServer
>     status = ARES_EOF;
>
>   #elif defined(ANDROID) || defined(__ANDROID__)
> +  unsigned int i;
> +  char name[PROP_NAME_MAX];
>     char value[PROP_VALUE_MAX]="";
> -  __system_property_get("net.dns1", value);
(Continue reading)


Gmane