|
|
|
@ -10,11 +10,10 @@ import Network.XMPP.Pickle |
|
|
|
import Network.XMPP.Types |
|
|
|
import Network.XMPP.Types |
|
|
|
import Network.XMPP.Concurrent |
|
|
|
import Network.XMPP.Concurrent |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sessionXML :: Element |
|
|
|
sessionXML :: Element |
|
|
|
sessionXML = pickleElem |
|
|
|
sessionXML = pickleElem |
|
|
|
(xpElemBlank "{urn:ietf:params:xml:ns:xmpp-session}session" ) |
|
|
|
(xpElemBlank "{urn:ietf:params:xml:ns:xmpp-session}session") |
|
|
|
() |
|
|
|
() |
|
|
|
|
|
|
|
|
|
|
|
sessionIQ :: Stanza |
|
|
|
sessionIQ :: Stanza |
|
|
|
sessionIQ = IQRequestS $ IQRequest { iqRequestID = "sess" |
|
|
|
sessionIQ = IQRequestS $ IQRequest { iqRequestID = "sess" |
|
|
|
@ -25,6 +24,8 @@ sessionIQ = IQRequestS $ IQRequest { iqRequestID = "sess" |
|
|
|
, iqRequestPayload = sessionXML |
|
|
|
, iqRequestPayload = sessionXML |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Sends the session IQ set element and waits for an answer. Throws an error if |
|
|
|
|
|
|
|
-- if an IQ error stanza is returned from the server. |
|
|
|
xmppStartSession :: XMPPConMonad () |
|
|
|
xmppStartSession :: XMPPConMonad () |
|
|
|
xmppStartSession = do |
|
|
|
xmppStartSession = do |
|
|
|
answer <- xmppSendIQ' "session" Nothing Set Nothing sessionXML |
|
|
|
answer <- xmppSendIQ' "session" Nothing Set Nothing sessionXML |
|
|
|
@ -32,7 +33,8 @@ xmppStartSession = do |
|
|
|
Left e -> error $ show e |
|
|
|
Left e -> error $ show e |
|
|
|
Right _ -> return () |
|
|
|
Right _ -> return () |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Sends the session IQ set element and waits for an answer. Throws an error if |
|
|
|
|
|
|
|
-- if an IQ error stanza is returned from the server. |
|
|
|
startSession :: XMPP () |
|
|
|
startSession :: XMPP () |
|
|
|
startSession = do |
|
|
|
startSession = do |
|
|
|
answer <- sendIQ' Nothing Set Nothing sessionXML |
|
|
|
answer <- sendIQ' Nothing Set Nothing sessionXML |
|
|
|
|