aboutsummaryrefslogtreecommitdiff
path: root/Assistant/Threads/XMPPClient.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Assistant/Threads/XMPPClient.hs')
-rw-r--r--Assistant/Threads/XMPPClient.hs13
1 files changed, 7 insertions, 6 deletions
diff --git a/Assistant/Threads/XMPPClient.hs b/Assistant/Threads/XMPPClient.hs
index 32353fdc4..bb9293b90 100644
--- a/Assistant/Threads/XMPPClient.hs
+++ b/Assistant/Threads/XMPPClient.hs
@@ -96,17 +96,18 @@ xmppClient urlrenderer d = do
handle _ (GotNetMessage (NotifyPush us)) = void $ inAssistant $ pull us
handle selfjid (GotNetMessage (PairingNotification stage c u)) =
maybe noop (inAssistant . pairMsgReceived urlrenderer stage u selfjid) (parseJID c)
- handle _ (GotNetMessage m@(CanPush _)) = inAssistant $
- unlessM (queueNetPushMessage m) $ void $ handlePushMessage m
- handle _ (GotNetMessage m@(PushRequest _)) = inAssistant $
- unlessM (queueNetPushMessage m) $ void $ handlePushMessage m
- handle _ (GotNetMessage m@(StartingPush _)) = inAssistant $
- unlessM (queueNetPushMessage m) $ void $ handlePushMessage m
+ handle _ (GotNetMessage m@(CanPush _)) = handlepushmsg m
+ handle _ (GotNetMessage m@(PushRequest _)) = handlepushmsg m
+ handle _ (GotNetMessage m@(StartingPush _)) = handlepushmsg m
handle _ (GotNetMessage m) = void $ inAssistant $ queueNetPushMessage m
handle _ (Ignorable _) = noop
handle _ (Unknown _) = noop
handle _ (ProtocolError _) = noop
+ handlepushmsg m = inAssistant $
+ unlessM (queueNetPushMessage m) $
+ void $ forkIO <~> handlePushMessage m
+
data XMPPEvent
= GotNetMessage NetMessage
| PresenceMessage Presence