patched DNS library to use getprop to find the DNS server (dunno if it will work)
This commit is contained in:
parent
4829eae883
commit
66b1493f78
2 changed files with 74 additions and 1 deletions
|
@ -0,0 +1,73 @@
|
||||||
|
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
|
||||||
|
|
|
@ -158,7 +158,7 @@ install_pkgs () {
|
||||||
onlycross unpatched data-endian-0.0.1
|
onlycross unpatched data-endian-0.0.1
|
||||||
unpatched hinotify-0.3.5
|
unpatched hinotify-0.3.5
|
||||||
patched iproute 1.2.11
|
patched iproute 1.2.11
|
||||||
unpatched DNS
|
unpatched dns 0.3.6
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf tmp
|
rm -rf tmp
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue