[tor-commits] [tordnsel/master] port to wheezy

arlo at torproject.org arlo at torproject.org
Sat Apr 16 06:08:43 UTC 2016


commit d3d8c70cac03f18610f74bb658ff8ff9535b8147
Author: David Kaloper <david at numm.org>
Date:   Mon Nov 4 05:56:45 2013 +0100

    port to wheezy
---
 src/TorDNSEL/ExitTest/Request.hs     |  1 -
 src/TorDNSEL/TorControl/Internals.hs |  9 +++++----
 src/TorDNSEL/Util.hsc                | 20 +++++++++++++-------
 tordnsel.cabal                       |  9 +++++----
 4 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/TorDNSEL/ExitTest/Request.hs b/src/TorDNSEL/ExitTest/Request.hs
index affa6b8..5d74ae3 100644
--- a/src/TorDNSEL/ExitTest/Request.hs
+++ b/src/TorDNSEL/ExitTest/Request.hs
@@ -30,7 +30,6 @@ import Control.Arrow ((***))
 import Control.Applicative
 import Control.Monad
 import Data.Monoid
-import Data.Maybe
 import qualified Data.ByteString.Char8 as B
 import Data.Char (isSpace, toLower)
 import qualified Data.Map as M
diff --git a/src/TorDNSEL/TorControl/Internals.hs b/src/TorDNSEL/TorControl/Internals.hs
index 43b6d19..551593a 100644
--- a/src/TorDNSEL/TorControl/Internals.hs
+++ b/src/TorDNSEL/TorControl/Internals.hs
@@ -839,14 +839,13 @@ c_replies = c_lines_any =$= line0 []
 
     line0 acc = await >>= return () `maybe` \line -> do
       let (code, (typ, text)) = B.splitAt 1 `second` B.splitAt 3 line
-      code' <- either (monadThrow . ProtocolError) return $
-                      parseReplyCode code
+      code' <- either throwProtoError return $ parseReplyCode code
       case () of
         _ | typ == B.pack "-" -> line0 (acc' [])
           | typ == B.pack "+" -> rest [] >>= line0 . acc'
           | typ == B.pack " " -> yield (reverse $ acc' []) >> line0 []
-          | otherwise         -> monadThrow $
-              ProtocolError $ cat "Malformed reply line type " (esc 1 typ) '.'
+          | otherwise         -> throwProtoError $
+               cat "Malformed reply line type " (esc 1 typ) '.'
           where
             acc' xs = Reply code' text xs : acc
 
@@ -857,6 +856,8 @@ c_replies = c_lines_any =$= line0 []
                     | line == B.pack "." -> return $ reverse acc
                     | otherwise          -> rest (line:acc)
 
+    throwProtoError = lift . E.throw . ProtocolError
+
 --------------------------------------------------------------------------------
 -- Data types
 
diff --git a/src/TorDNSEL/Util.hsc b/src/TorDNSEL/Util.hsc
index 7397208..12493fe 100644
--- a/src/TorDNSEL/Util.hsc
+++ b/src/TorDNSEL/Util.hsc
@@ -141,6 +141,7 @@ import System.Posix.Types (FileMode)
 import Text.Printf (printf)
 import Data.Binary (Binary(..))
 
+import           Data.Conduit (Pipe(..), Conduit, Sink)
 import qualified Data.Conduit as C
 import qualified Data.Conduit.List as CL
 import qualified Data.Conduit.Binary as CB
@@ -431,19 +432,25 @@ showUTCTime time = printf "%s %02d:%02d:%s" date hours mins secStr'
 --------------------------------------------------------------------------------
 -- Conduit utilities
 
+-- ## Conduit 0.4.2 shim
+-- ##
+leftover :: Monad m => i -> Conduit i m o
+leftover i = Done (Just i) ()
+-- ##
+
 -- | 'CB.take' for strict 'ByteString's.
-c_take :: Monad m => Int -> C.ConduitM ByteString o m ByteString
+c_take :: Monad m => Int -> Sink ByteString m ByteString
 c_take = fmap (mconcat . BL.toChunks) . CB.take
 
 -- | Read until the delimiter and return the parts before and after, not
 -- including delimiter.
 c_breakDelim :: Monad m
              => ByteString
-             -> C.ConduitM ByteString o m (Maybe (ByteString, ByteString))
+             -> Sink ByteString m (Maybe (ByteString, ByteString))
 c_breakDelim delim = wait_input $ B.empty
   where
     wait_input front = C.await >>=
-      (Nothing <$ C.leftover front) `maybe` \bs ->
+      (Nothing <$ leftover front) `maybe` \bs ->
 
         let (front', bs') = (<> bs) `second`
               B.splitAt (B.length front - d_len + 1) front
@@ -455,15 +462,14 @@ c_breakDelim delim = wait_input $ B.empty
 
     d_len = B.length delim
 
-
 -- | Take a CRLF-delimited line from the input.
-c_line_crlf :: Monad m => C.ConduitM ByteString o m ByteString
+c_line_crlf :: Monad m => Sink ByteString m ByteString
 c_line_crlf =
   c_breakDelim (B.pack "\r\n") >>=
-    return B.empty `maybe` \(line, rest) -> line <$ C.leftover rest
+    return B.empty `maybe` \(line, rest) -> line <$ leftover rest
 
 -- | Stream lines delimited by either LF or CRLF.
-c_lines_any :: Monad m => C.Conduit ByteString m ByteString
+c_lines_any :: Monad m => Conduit ByteString m ByteString
 c_lines_any = CB.lines C.=$= CL.map strip
   where
     strip bs = case unsnoc bs of
diff --git a/tordnsel.cabal b/tordnsel.cabal
index 827256e..0b5182c 100644
--- a/tordnsel.cabal
+++ b/tordnsel.cabal
@@ -13,10 +13,10 @@ Package-URL:     https://archive.torproject.org/tor-package-archive/tordnsel/tor
 Author:          tup
 Maintainer:      tup.tuple at googlemail.com, lunar at debian.org, andrew at torproject.org
 Build-Type:      Simple
-Build-Depends:   base>=2.0, network>=2.0, mtl>=1.0, unix>=1.0, stm>=2.0,
-                 time>=1.0, HUnit>=1.1, binary>=0.4, bytestring>=0.9, array>=0.1, directory>=1.0,
-                 containers>=0.1, conduit >= 1.0.0 && < 1.1.0, deepseq >= 1.3
-Tested-With:     GHC==6.6, GHC==6.8, GHC==6.10, GHC==6.12
+Build-Depends:   base>=4.5, network==2.3.*, mtl==2.*, unix>=2.5, stm>=2.3,
+                 time>=1.4, HUnit>=1.2, binary>=0.5, bytestring>=0.9, array>=0.4,
+                 directory>=1.1, containers>=0.4, conduit==0.4.2, deepseq>=1.3
+Tested-With:     GHC==7.4, GHC==7.6
 Data-Files:      config/tordnsel.conf.sample, contrib/cacti-input.pl,
                  contrib/tordnsel-init.d-script.sample, doc/tordnsel.8
 
@@ -72,6 +72,7 @@ Extensions:      FlexibleContexts
                  DeriveDataTypeable
                  GeneralizedNewtypeDeriving
                  Rank2Types
+                 StandaloneDeriving
 
 Executable:      runtests
 Buildable:       False





More information about the tor-commits mailing list