diff options
Diffstat (limited to 'standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch')
-rw-r--r-- | standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch b/standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch index 962a64207..2b23c6d24 100644 --- a/standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch +++ b/standalone/android/haskell-patches/dns_use-android-net.dns1-command-instead-of-resolv.conf.patch @@ -1,6 +1,6 @@ -From 087f1ae5e17f0e6d7c9f6b4092a5bb5bb6f5bf60 Mon Sep 17 00:00:00 2001 +From e5072d9b721cc25fa1017df97d71bf926a78d4e5 Mon Sep 17 00:00:00 2001 From: dummy <dummy@example.com> -Date: Thu, 16 Oct 2014 02:59:11 +0000 +Date: Fri, 3 Jul 2015 02:24:19 +0000 Subject: [PATCH] port --- @@ -9,48 +9,48 @@ Subject: [PATCH] port 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Network/DNS/Resolver.hs b/Network/DNS/Resolver.hs -index 5721e03..c4400d1 100644 +index 31f6373..6487c7b 100644 --- a/Network/DNS/Resolver.hs +++ b/Network/DNS/Resolver.hs -@@ -19,7 +19,7 @@ module Network.DNS.Resolver ( +@@ -18,7 +18,7 @@ module Network.DNS.Resolver ( + , fromDNSFormat ) where - import Control.Applicative ((<$>), (<*>), pure) -import Control.Exception (bracket) +import Control.Exception (bracket, catch, IOException) - import qualified Data.ByteString.Char8 as BS import Data.Char (isSpace) import Data.List (isPrefixOf) -@@ -32,6 +32,7 @@ import Network.Socket (AddrInfoFlag(..), AddrInfo(..), defaultHints, getAddrInfo + import Data.Maybe (fromMaybe) +@@ -32,6 +32,7 @@ import Network.Socket (AddrInfoFlag(..), AddrInfo(..), SockAddr(..), PortNumber( import Prelude hiding (lookup) import System.Random (getStdRandom, randomR) import System.Timeout (timeout) +import System.Process - #if mingw32_HOST_OS == 1 - import Network.Socket (send) -@@ -130,10 +131,12 @@ makeResolvSeed conf = ResolvSeed <$> addr - where + #if __GLASGOW_HASKELL__ < 709 + import Control.Applicative ((<$>), (<*>), pure) +@@ -136,10 +137,12 @@ makeResolvSeed conf = ResolvSeed <$> addr addr = case resolvInfo conf of - RCHostName numhost -> makeAddrInfo numhost -- RCFilePath file -> toAddr <$> readFile file >>= makeAddrInfo + RCHostName numhost -> makeAddrInfo numhost Nothing + RCHostPort numhost mport -> makeAddrInfo numhost $ Just mport +- RCFilePath file -> toAddr <$> readFile file >>= \i -> makeAddrInfo i Nothing - toAddr cs = let l:_ = filter ("nameserver" `isPrefixOf`) $ lines cs - in extract l - extract = reverse . dropWhile isSpace . reverse . dropWhile isSpace . drop 11 + RCFilePath file -> do + -- Android has no /etc/resolv.conf; use getprop command. + ls <- catch (lines <$> readProcess "getprop" ["net.dns1"] []) (const (return []) :: IOException -> IO [String]) -+ makeAddrInfo $ case ls of ++ flip makeAddrInfo Nothing $ case ls of + [] -> "8.8.8.8" -- google public dns as a fallback only + (l:_) -> l - makeAddrInfo :: HostName -> IO AddrInfo - makeAddrInfo addr = do + makeAddrInfo :: HostName -> Maybe PortNumber -> IO AddrInfo + makeAddrInfo addr mport = do diff --git a/dns.cabal b/dns.cabal -index ceaf5f4..cd15e61 100644 +index 0745754..8cf4b67 100644 --- a/dns.cabal +++ b/dns.cabal -@@ -37,6 +37,7 @@ Library +@@ -39,6 +39,7 @@ Library , network >= 2.3 , random , resourcet @@ -59,5 +59,5 @@ index ceaf5f4..cd15e61 100644 Build-Depends: base >= 4 && < 5 , attoparsec -- -2.1.1 +2.1.4 |