diff options
| author | Félix Sipma <felix.sipma@no-log.org> | 2014-11-10 20:39:15 +0100 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-11-10 16:16:43 -0400 |
| commit | 053183d44bea516861fccefeb07a4ea4d90e5fcb (patch) | |
| tree | 2497826dd5809a5235bde254ba5cb828b2492510 /src/Propellor/Property/Tor.hs | |
| parent | 9608a390d2ded501a2b3fcbbb17e968314f1689d (diff) | |
Tor: hidden service
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
Diffstat (limited to 'src/Propellor/Property/Tor.hs')
| -rw-r--r-- | src/Propellor/Property/Tor.hs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Propellor/Property/Tor.hs b/src/Propellor/Property/Tor.hs index 409bb63e..47cd83a2 100644 --- a/src/Propellor/Property/Tor.hs +++ b/src/Propellor/Property/Tor.hs @@ -16,5 +16,28 @@ isBridge = setup `requires` Apt.installed ["tor"] , "Exitpolicy reject *:*" ] `onChange` restarted +hiddenServiceAvailable :: FilePath -> Int -> Property +hiddenServiceAvailable dir port = hiddenServiceHostName prop + where + prop = "/etc/tor/torrc" `File.containsLines` + [ "HiddenServiceDir " ++ dir + , "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") + 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 + ] + `describe` ("hidden service (" ++ dir ++ " " ++ show port ++ ") available") + `onChange` Service.reloaded "tor" + restarted :: Property restarted = Service.restarted "tor" |
