diff --git a/standalone/android/haskell-patches/dns_0.3.6-0001-use-getprop-to-get-dns-server.patch b/standalone/android/haskell-patches/dns_0.3.6-0001-use-getprop-to-get-dns-server.patch new file mode 100644 index 0000000000..069bdd20a3 --- /dev/null +++ b/standalone/android/haskell-patches/dns_0.3.6-0001-use-getprop-to-get-dns-server.patch @@ -0,0 +1,73 @@ +From 8459f93270c7a6e8a2ebd415db2110a66bf1ec41 Mon Sep 17 00:00:00 2001 +From: Joey Hess +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 + diff --git a/standalone/android/install-haskell-packages b/standalone/android/install-haskell-packages index 80c7d88c24..ef43d87c11 100755 --- a/standalone/android/install-haskell-packages +++ b/standalone/android/install-haskell-packages @@ -158,7 +158,7 @@ install_pkgs () { onlycross unpatched data-endian-0.0.1 unpatched hinotify-0.3.5 patched iproute 1.2.11 - unpatched DNS + unpatched dns 0.3.6 cd .. rm -rf tmp