(re)start XMPP when it's configured in the webapp

This commit is contained in:
Joey Hess 2012-10-27 00:50:14 -04:00
parent 2dc40ecbd1
commit c71836269b
5 changed files with 12 additions and 3 deletions

View file

@ -197,7 +197,7 @@ startAssistant assistant daemonize webappwaiter = withThreadState $ \st -> do
mapM_ (startthread dstatus)
[ watch $ commitThread st changechan commitchan transferqueue dstatus
#ifdef WITH_WEBAPP
, assist $ webAppThread (Just st) dstatus scanremotes transferqueue transferslots urlrenderer Nothing webappwaiter
, assist $ webAppThread (Just st) dstatus scanremotes transferqueue transferslots pushnotifier urlrenderer Nothing webappwaiter
#ifdef WITH_PAIRING
, assist $ pairListenerThread st dstatus scanremotes urlrenderer
#endif

View file

@ -32,6 +32,7 @@ import Assistant.DaemonStatus
import Assistant.ScanRemotes
import Assistant.TransferQueue
import Assistant.TransferSlots
import Assistant.Pushes
import Utility.WebApp
import Utility.FileMode
import Utility.TempFile
@ -55,17 +56,19 @@ webAppThread
-> ScanRemoteMap
-> TransferQueue
-> TransferSlots
-> PushNotifier
-> UrlRenderer
-> Maybe (IO String)
-> Maybe (Url -> FilePath -> IO ())
-> NamedThread
webAppThread mst dstatus scanremotes transferqueue transferslots urlrenderer postfirstrun onstartup = thread $ do
webAppThread mst dstatus scanremotes transferqueue transferslots pushnotifier urlrenderer postfirstrun onstartup = thread $ do
webapp <- WebApp
<$> pure mst
<*> pure dstatus
<*> pure scanremotes
<*> pure transferqueue
<*> pure transferslots
<*> pure pushnotifier
<*> (pack <$> genRandomToken)
<*> getreldir mst
<*> pure $(embed "static")

View file

@ -17,6 +17,7 @@ import Utility.Yesod
#ifdef WITH_XMPP
import Assistant.Common
import Assistant.XMPP
import Assistant.Pushes
import Utility.SRV
#endif
@ -45,6 +46,7 @@ getXMPPR = xmppPage $ do
where
storecreds creds = do
void $ runAnnex undefined $ setXMPPCreds creds
liftIO . notifyRestart =<< pushNotifier <$> getYesod
redirect ConfigR
#else
getXMPPR = xmppPage $

View file

@ -17,6 +17,7 @@ import Assistant.DaemonStatus
import Assistant.ScanRemotes
import Assistant.TransferQueue
import Assistant.TransferSlots
import Assistant.Pushes
import Assistant.Alert
import Assistant.Pairing
import Utility.NotificationBroadcaster
@ -38,6 +39,7 @@ data WebApp = WebApp
, scanRemotes :: ScanRemoteMap
, transferQueue :: TransferQueue
, transferSlots :: TransferSlots
, pushNotifier :: PushNotifier
, secretToken :: Text
, relDir :: Maybe FilePath
, getStatic :: Static

View file

@ -15,6 +15,7 @@ import Assistant.DaemonStatus
import Assistant.ScanRemotes
import Assistant.TransferQueue
import Assistant.TransferSlots
import Assistant.Pushes
import Assistant.Threads.WebApp
import Assistant.WebApp
import Assistant.Install
@ -104,11 +105,12 @@ firstRun = do
transferqueue <- newTransferQueue
transferslots <- newTransferSlots
urlrenderer <- newUrlRenderer
pushnotifier <- newPushNotifier
v <- newEmptyMVar
let callback a = Just $ a v
void $ runNamedThread dstatus $
webAppThread Nothing dstatus scanremotes
transferqueue transferslots urlrenderer
transferqueue transferslots pushnotifier urlrenderer
(callback signaler) (callback mainthread)
where
signaler v = do