diff options
author | Joey Hess <joeyh@joeyh.name> | 2018-03-06 15:14:53 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2018-03-06 15:14:53 -0400 |
commit | ba53f6080162d93ec4a849745f3e90e3a3909cef (patch) | |
tree | 28ed22492aeebf22d993cb39336076da28c6ec73 /RemoteDaemon | |
parent | 73704b22a948a56fe105c16cb0fa488c85b7205e (diff) |
refactor
Diffstat (limited to 'RemoteDaemon')
-rw-r--r-- | RemoteDaemon/Transport/Tor.hs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/RemoteDaemon/Transport/Tor.hs b/RemoteDaemon/Transport/Tor.hs index b0fa3c189e..623ff03e3d 100644 --- a/RemoteDaemon/Transport/Tor.hs +++ b/RemoteDaemon/Transport/Tor.hs @@ -5,7 +5,9 @@ - Licensed under the GNU GPL version 3 or higher. -} -module RemoteDaemon.Transport.Tor (server, transport) where +{-# LANGUAGE CPP #-} + +module RemoteDaemon.Transport.Tor (server, transport, torSocketFile) where import Common import qualified Annex @@ -14,6 +16,7 @@ import Annex.ChangedRefs import RemoteDaemon.Types import RemoteDaemon.Common import Utility.AuthToken +import Utility.Tor import P2P.Protocol as P2P import P2P.IO import P2P.Annex @@ -30,6 +33,9 @@ import System.Log.Logger (debugM) import Control.Concurrent.STM import Control.Concurrent.STM.TBMQueue import Control.Concurrent.Async +#ifndef mingw32_HOST_OS +import System.Posix.User +#endif -- Run tor hidden service. server :: Server @@ -178,3 +184,14 @@ transport (RemoteRepo r gc) url@(RemoteURI uri) th ichan ochan = ok <- inLocalRepo th $ runBool [Param "fetch", Param $ Git.repoDescribe r] send (DONESYNCING url ok) + +torSocketFile :: Annex.Annex (Maybe FilePath) +torSocketFile = do + u <- getUUID + let ident = fromUUID u +#ifndef mingw32_HOST_OS + uid <- liftIO getRealUserID +#else + let uid = 0 +#endif + liftIO $ getHiddenServiceSocketFile torAppName uid ident |