From 1f328755f5a0f91390a4c7cc0157b4e1fabcb5d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Sipma?= Date: Tue, 11 Nov 2014 10:42:29 +0100 Subject: [PATCH 1/3] Tor: mainConfig, varPath, hidden service by hostname MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Félix Sipma --- src/Propellor/Property/Tor.hs | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/Propellor/Property/Tor.hs b/src/Propellor/Property/Tor.hs index 3623e9c..57fbc71 100644 --- a/src/Propellor/Property/Tor.hs +++ b/src/Propellor/Property/Tor.hs @@ -9,35 +9,41 @@ isBridge :: Property isBridge = setup `requires` Apt.installed ["tor"] `describe` "tor bridge" where - setup = "/etc/tor/torrc" `File.hasContent` + setup = mainConfig `File.hasContent` [ "SocksPort 0" , "ORPort 443" , "BridgeRelay 1" , "Exitpolicy reject *:*" ] `onChange` restarted -hiddenServiceAvailable :: FilePath -> Int -> Property -hiddenServiceAvailable dir port = hiddenServiceHostName prop +hiddenServiceAvailable :: HostName -> Int -> Property +hiddenServiceAvailable hn port = hiddenServiceHostName prop where - prop = "/etc/tor/torrc" `File.containsLines` - [ "HiddenServiceDir " ++ dir - , "HiddenServicePort " ++ show port ++ " 127.0.0.1:" ++ show port + prop = mainConfig `File.containsLines` + [ unlines ["HiddenServiceDir", varPath hn] + , unlines ["HiddenServicePort", show port, "127.0.0.1:" ++ show port] ] `describe` "hidden service available" `onChange` Service.reloaded "tor" hiddenServiceHostName p = adjustProperty p $ \satisfy -> do r <- satisfy - h <- liftIO $ readFile (dir "hostname") + h <- liftIO $ readFile (varPath hn "hostname") warningMessage $ unlines ["hidden service hostname:", h] return r -hiddenService :: FilePath -> Int -> Property -hiddenService dir port = "/etc/tor/torrc" `File.containsLines` - [ "HiddenServiceDir " ++ dir - , "HiddenServicePort " ++ show port ++ " 127.0.0.1:" ++ show port +hiddenService :: HostName -> Int -> Property +hiddenService hn port = mainConfig `File.containsLines` + [ unlines ["HiddenServiceDir", varPath hn] + , unlines ["HiddenServicePort", show port, "127.0.0.1:" ++ show port] ] - `describe` ("hidden service (" ++ dir ++ " " ++ show port ++ ") available") - `onChange` Service.reloaded "tor" + `describe` unlines ["hidden service available:", hn, show port] + `onChange` restarted restarted :: Property restarted = Service.restarted "tor" + +mainConfig :: FilePath +mainConfig = "/etc/tor/torrc" + +varPath :: FilePath +varPath = "/var/lib/tor" From 2368b0d5af6cdf3b7a3b116c4b1d1a208a6776e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Sipma?= Date: Tue, 11 Nov 2014 11:31:17 +0100 Subject: [PATCH 2/3] Tor: rename 'varPath' to 'varLib' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Félix Sipma --- src/Propellor/Property/Tor.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Propellor/Property/Tor.hs b/src/Propellor/Property/Tor.hs index 57fbc71..6a1b1ee 100644 --- a/src/Propellor/Property/Tor.hs +++ b/src/Propellor/Property/Tor.hs @@ -20,20 +20,20 @@ hiddenServiceAvailable :: HostName -> Int -> Property hiddenServiceAvailable hn port = hiddenServiceHostName prop where prop = mainConfig `File.containsLines` - [ unlines ["HiddenServiceDir", varPath hn] + [ unlines ["HiddenServiceDir", varLib hn] , unlines ["HiddenServicePort", show port, "127.0.0.1:" ++ show port] ] `describe` "hidden service available" `onChange` Service.reloaded "tor" hiddenServiceHostName p = adjustProperty p $ \satisfy -> do r <- satisfy - h <- liftIO $ readFile (varPath hn "hostname") + h <- liftIO $ readFile (varLib hn "hostname") warningMessage $ unlines ["hidden service hostname:", h] return r hiddenService :: HostName -> Int -> Property hiddenService hn port = mainConfig `File.containsLines` - [ unlines ["HiddenServiceDir", varPath hn] + [ unlines ["HiddenServiceDir", varLib hn] , unlines ["HiddenServicePort", show port, "127.0.0.1:" ++ show port] ] `describe` unlines ["hidden service available:", hn, show port] @@ -45,5 +45,5 @@ restarted = Service.restarted "tor" mainConfig :: FilePath mainConfig = "/etc/tor/torrc" -varPath :: FilePath -varPath = "/var/lib/tor" +varLib :: FilePath +varLib = "/var/lib/tor" From bd856f7a04859f99c1074b1d2def889b632940d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Sipma?= Date: Tue, 11 Nov 2014 11:31:46 +0100 Subject: [PATCH 3/3] Tor: varRun MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Félix Sipma --- src/Propellor/Property/Tor.hs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Propellor/Property/Tor.hs b/src/Propellor/Property/Tor.hs index 6a1b1ee..2384a7d 100644 --- a/src/Propellor/Property/Tor.hs +++ b/src/Propellor/Property/Tor.hs @@ -47,3 +47,6 @@ mainConfig = "/etc/tor/torrc" varLib :: FilePath varLib = "/var/lib/tor" + +varRun :: FilePath +varRun = "/var/run/tor"