X-Git-Url: http://gitweb.michael.orlitzky.com/?p=hath.git;a=blobdiff_plain;f=src%2FMain.hs;h=5b75533863c11b515f7f104df7b09948065a9e59;hp=2bb586980f5a06bf2de39a54dfdab580c3cda21d;hb=006f90418a578308104b75362f0b595466900eed;hpb=bea923306878ccc5deb9e593aa6592550dcadad5 diff --git a/src/Main.hs b/src/Main.hs index 2bb5869..5b75533 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,13 +1,10 @@ module Main where -import Control.Concurrent.ParallelIO.Global ( stopGlobalPool ) import Control.Monad (when) -import qualified Data.ByteString.Char8 as BS (intercalate, pack, unpack) import Data.List ((\\), intercalate) import Data.Maybe (catMaybes, isNothing) import Data.String.Utils (splitWs) -import Network.DNS.Types ( DNSError (NameError) ) import System.Exit (ExitCode(..), exitWith) import System.IO (stderr, hPutStrLn) import Text.Read (readMaybe) @@ -25,12 +22,12 @@ import Cidr ( min_octet3, min_octet4 ) import CommandLine (Args(..), get_args) -import DNS (Domain, PTRResult, lookup_ptrs) import ExitCodes ( exit_invalid_cidr ) import Octet () -- | A regular expression that matches a non-address character. +-- non_addr_char :: String non_addr_char = "[^\\.0-9]" @@ -38,6 +35,7 @@ non_addr_char = "[^\\.0-9]" -- | Add non_addr_chars on either side of the given String. This -- prevents (for example) the regex '127.0.0.1' from matching -- '127.0.0.100'. +-- add_barriers :: String -> String add_barriers x = non_addr_char ++ x ++ non_addr_char @@ -75,6 +73,7 @@ cidr_to_regex use_barriers cidr = -- | Take a list of Strings, and return a regular expression matching -- any of them. +-- alternate :: [String] -> String alternate terms = "(" ++ (intercalate "|" terms) ++ ")" @@ -142,25 +141,3 @@ main = do let combined_cidrs = combine_all valid_cidrs let addrs = concatMap enumerate combined_cidrs mapM_ print addrs - Reversed{} -> do - let combined_cidrs = combine_all valid_cidrs - let addrs = concatMap enumerate combined_cidrs - let addr_bytestrings = map (BS.pack . show) addrs - ptrs <- lookup_ptrs addr_bytestrings - let pairs = zip addr_bytestrings ptrs - mapM_ (putStrLn . show_pair) pairs - - stopGlobalPool - - where - show_pair :: (Domain, PTRResult) -> String - show_pair (s, eds) = - (BS.unpack s) ++ ": " ++ results - where - space = BS.pack " " - results = - case eds of - -- NameError simply means "not found" so we output nothing. - Left NameError -> "" - Left err -> "ERROR (" ++ (show err) ++ ")" - Right ds -> BS.unpack $ BS.intercalate space ds