git-annex/standalone/android/haskell-patches/dns_0.3.6-0001-use-getprop-to-get-dns-server.patch

73 lines
2.4 KiB
Diff

From 8459f93270c7a6e8a2ebd415db2110a66bf1ec41 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kitenet.net>
Date: Wed, 15 May 2013 20:31:14 -0400
Subject: [PATCH] use getprop to get dns server
---
Network/DNS/Resolver.hs | 13 +++++++++++--
dns.cabal | 4 ++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/Network/DNS/Resolver.hs b/Network/DNS/Resolver.hs
index 70ab9ed..9b27336 100644
--- a/Network/DNS/Resolver.hs
+++ b/Network/DNS/Resolver.hs
@@ -41,6 +41,8 @@ import Network.Socket.ByteString.Lazy
import Prelude hiding (lookup)
import System.Random
import System.Timeout
+import System.Process (readProcess)
+import System.Directory
#if mingw32_HOST_OS == 1
import Network.Socket (send)
@@ -73,7 +75,7 @@ data ResolvConf = ResolvConf {
-}
defaultResolvConf :: ResolvConf
defaultResolvConf = ResolvConf {
- resolvInfo = RCFilePath "/etc/resolv.conf"
+ resolvInfo = RCFilePath "/system/etc/resolv.conf"
, resolvTimeout = 3 * 1000 * 1000
, resolvBufsize = 512
}
@@ -111,7 +113,14 @@ makeResolvSeed conf = ResolvSeed <$> addr
where
addr = case resolvInfo conf of
RCHostName numhost -> makeAddrInfo numhost
- RCFilePath file -> toAddr <$> readFile file >>= makeAddrInfo
+ RCFilePath file -> do
+ exists <- doesFileExist file
+ if exists
+ then toAddr <$> readFile file >>= makeAddrInfo
+ else do
+ s <- readProcess "getprop" ["net.dns1"] ""
+ makeAddrInfo $ takeWhile (/= '\n') s
+
toAddr cs = let l:_ = filter ("nameserver" `isPrefixOf`) $ lines cs
in extract l
extract = reverse . dropWhile isSpace . reverse . dropWhile isSpace . drop 11
diff --git a/dns.cabal b/dns.cabal
index 40671f6..2c19734 100644
--- a/dns.cabal
+++ b/dns.cabal
@@ -34,6 +34,8 @@ library
, network >= 2.3
, network-conduit
, random
+ , process
+ , directory
else
Build-Depends: base >= 4 && < 5
, attoparsec
@@ -49,6 +51,8 @@ library
, network-bytestring
, network-conduit
, random
+ , process
+ , directory
Source-Repository head
Type: git
Location: git://github.com/kazu-yamamoto/dns.git
--
1.7.10.4