070fb9e624
Almost working, but there's a bug in the relaying. Also, made tor hidden service setup pick a random port, to make it harder to port scan. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
34 lines
843 B
Haskell
34 lines
843 B
Haskell
{- git-annex command
|
|
-
|
|
- Copyright 2016 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
-}
|
|
|
|
module Command.EnableTor where
|
|
|
|
import Command
|
|
import Utility.Tor
|
|
|
|
-- This runs as root, so avoid making any commits or initializing
|
|
-- git-annex, as that would create root-owned files.
|
|
cmd :: Command
|
|
cmd = noCommit $ dontCheck repoExists $
|
|
command "enable-tor" SectionSetup ""
|
|
"userid uuid" (withParams seek)
|
|
|
|
seek :: CmdParams -> CommandSeek
|
|
seek = withWords start
|
|
|
|
start :: CmdParams -> CommandStart
|
|
start (suserid:uuid:[]) = case readish suserid of
|
|
Nothing -> error "Bad userid"
|
|
Just userid -> do
|
|
(OnionAddress onionaddr, onionport) <- liftIO $
|
|
addHiddenService userid uuid
|
|
liftIO $ putStrLn $
|
|
"tor-annex::" ++
|
|
onionaddr ++ ":" ++
|
|
show onionport ++ " "
|
|
stop
|
|
start _ = error "Bad params"
|