|
|
|
@ -38,7 +38,7 @@ module Network.Xmpp.Types |
|
|
|
, XmppT(..) |
|
|
|
, XmppT(..) |
|
|
|
, XmppStreamError(..) |
|
|
|
, XmppStreamError(..) |
|
|
|
, parseLangTag |
|
|
|
, parseLangTag |
|
|
|
, module Network.Xmpp.JID |
|
|
|
, module Network.Xmpp.Jid |
|
|
|
) |
|
|
|
) |
|
|
|
where |
|
|
|
where |
|
|
|
|
|
|
|
|
|
|
|
@ -60,7 +60,7 @@ import Data.XML.Types |
|
|
|
|
|
|
|
|
|
|
|
import qualified Network as N |
|
|
|
import qualified Network as N |
|
|
|
|
|
|
|
|
|
|
|
import Network.Xmpp.JID |
|
|
|
import Network.Xmpp.Jid |
|
|
|
|
|
|
|
|
|
|
|
import System.IO |
|
|
|
import System.IO |
|
|
|
|
|
|
|
|
|
|
|
@ -93,8 +93,8 @@ data Stanza = IQRequestS IQRequest |
|
|
|
-- | A "request" Info/Query (IQ) stanza is one with either "get" or "set" as |
|
|
|
-- | A "request" Info/Query (IQ) stanza is one with either "get" or "set" as |
|
|
|
-- type. They are guaranteed to always contain a payload. |
|
|
|
-- type. They are guaranteed to always contain a payload. |
|
|
|
data IQRequest = IQRequest { iqRequestID :: StanzaId |
|
|
|
data IQRequest = IQRequest { iqRequestID :: StanzaId |
|
|
|
, iqRequestFrom :: Maybe JID |
|
|
|
, iqRequestFrom :: Maybe Jid |
|
|
|
, iqRequestTo :: Maybe JID |
|
|
|
, iqRequestTo :: Maybe Jid |
|
|
|
, iqRequestLangTag :: Maybe LangTag |
|
|
|
, iqRequestLangTag :: Maybe LangTag |
|
|
|
, iqRequestType :: IQRequestType |
|
|
|
, iqRequestType :: IQRequestType |
|
|
|
, iqRequestPayload :: Element |
|
|
|
, iqRequestPayload :: Element |
|
|
|
@ -118,16 +118,16 @@ type IQResponse = Either IQError IQResult |
|
|
|
|
|
|
|
|
|
|
|
-- | The (non-error) answer to an IQ request. |
|
|
|
-- | The (non-error) answer to an IQ request. |
|
|
|
data IQResult = IQResult { iqResultID :: StanzaId |
|
|
|
data IQResult = IQResult { iqResultID :: StanzaId |
|
|
|
, iqResultFrom :: Maybe JID |
|
|
|
, iqResultFrom :: Maybe Jid |
|
|
|
, iqResultTo :: Maybe JID |
|
|
|
, iqResultTo :: Maybe Jid |
|
|
|
, iqResultLangTag :: Maybe LangTag |
|
|
|
, iqResultLangTag :: Maybe LangTag |
|
|
|
, iqResultPayload :: Maybe Element |
|
|
|
, iqResultPayload :: Maybe Element |
|
|
|
} deriving Show |
|
|
|
} deriving Show |
|
|
|
|
|
|
|
|
|
|
|
-- | The answer to an IQ request that generated an error. |
|
|
|
-- | The answer to an IQ request that generated an error. |
|
|
|
data IQError = IQError { iqErrorID :: StanzaId |
|
|
|
data IQError = IQError { iqErrorID :: StanzaId |
|
|
|
, iqErrorFrom :: Maybe JID |
|
|
|
, iqErrorFrom :: Maybe Jid |
|
|
|
, iqErrorTo :: Maybe JID |
|
|
|
, iqErrorTo :: Maybe Jid |
|
|
|
, iqErrorLangTag :: Maybe LangTag |
|
|
|
, iqErrorLangTag :: Maybe LangTag |
|
|
|
, iqErrorStanzaError :: StanzaError |
|
|
|
, iqErrorStanzaError :: StanzaError |
|
|
|
, iqErrorPayload :: Maybe Element -- should this be []? |
|
|
|
, iqErrorPayload :: Maybe Element -- should this be []? |
|
|
|
@ -135,8 +135,8 @@ data IQError = IQError { iqErrorID :: StanzaId |
|
|
|
|
|
|
|
|
|
|
|
-- | The message stanza. Used for /push/ type communication. |
|
|
|
-- | The message stanza. Used for /push/ type communication. |
|
|
|
data Message = Message { messageID :: Maybe StanzaId |
|
|
|
data Message = Message { messageID :: Maybe StanzaId |
|
|
|
, messageFrom :: Maybe JID |
|
|
|
, messageFrom :: Maybe Jid |
|
|
|
, messageTo :: Maybe JID |
|
|
|
, messageTo :: Maybe Jid |
|
|
|
, messageLangTag :: Maybe LangTag |
|
|
|
, messageLangTag :: Maybe LangTag |
|
|
|
, messageType :: MessageType |
|
|
|
, messageType :: MessageType |
|
|
|
, messagePayload :: [Element] |
|
|
|
, messagePayload :: [Element] |
|
|
|
@ -144,8 +144,8 @@ data Message = Message { messageID :: Maybe StanzaId |
|
|
|
|
|
|
|
|
|
|
|
-- | An error stanza generated in response to a 'Message'. |
|
|
|
-- | An error stanza generated in response to a 'Message'. |
|
|
|
data MessageError = MessageError { messageErrorID :: Maybe StanzaId |
|
|
|
data MessageError = MessageError { messageErrorID :: Maybe StanzaId |
|
|
|
, messageErrorFrom :: Maybe JID |
|
|
|
, messageErrorFrom :: Maybe Jid |
|
|
|
, messageErrorTo :: Maybe JID |
|
|
|
, messageErrorTo :: Maybe Jid |
|
|
|
, messageErrorLangTag :: Maybe LangTag |
|
|
|
, messageErrorLangTag :: Maybe LangTag |
|
|
|
, messageErrorStanzaError :: StanzaError |
|
|
|
, messageErrorStanzaError :: StanzaError |
|
|
|
, messageErrorPayload :: [Element] |
|
|
|
, messageErrorPayload :: [Element] |
|
|
|
@ -204,8 +204,8 @@ instance Read MessageType where |
|
|
|
|
|
|
|
|
|
|
|
-- | The presence stanza. Used for communicating status updates. |
|
|
|
-- | The presence stanza. Used for communicating status updates. |
|
|
|
data Presence = Presence { presenceID :: Maybe StanzaId |
|
|
|
data Presence = Presence { presenceID :: Maybe StanzaId |
|
|
|
, presenceFrom :: Maybe JID |
|
|
|
, presenceFrom :: Maybe Jid |
|
|
|
, presenceTo :: Maybe JID |
|
|
|
, presenceTo :: Maybe Jid |
|
|
|
, presenceLangTag :: Maybe LangTag |
|
|
|
, presenceLangTag :: Maybe LangTag |
|
|
|
, presenceType :: Maybe PresenceType |
|
|
|
, presenceType :: Maybe PresenceType |
|
|
|
, presencePayload :: [Element] |
|
|
|
, presencePayload :: [Element] |
|
|
|
@ -214,8 +214,8 @@ data Presence = Presence { presenceID :: Maybe StanzaId |
|
|
|
|
|
|
|
|
|
|
|
-- | An error stanza generated in response to a 'Presence'. |
|
|
|
-- | An error stanza generated in response to a 'Presence'. |
|
|
|
data PresenceError = PresenceError { presenceErrorID :: Maybe StanzaId |
|
|
|
data PresenceError = PresenceError { presenceErrorID :: Maybe StanzaId |
|
|
|
, presenceErrorFrom :: Maybe JID |
|
|
|
, presenceErrorFrom :: Maybe Jid |
|
|
|
, presenceErrorTo :: Maybe JID |
|
|
|
, presenceErrorTo :: Maybe Jid |
|
|
|
, presenceErrorLangTag :: Maybe LangTag |
|
|
|
, presenceErrorLangTag :: Maybe LangTag |
|
|
|
, presenceErrorStanzaError :: StanzaError |
|
|
|
, presenceErrorStanzaError :: StanzaError |
|
|
|
, presenceErrorPayload :: [Element] |
|
|
|
, presenceErrorPayload :: [Element] |
|
|
|
@ -324,7 +324,7 @@ data StanzaErrorCondition = BadRequest -- ^ Malformed XML. |
|
|
|
-- address. |
|
|
|
-- address. |
|
|
|
| InternalServerError |
|
|
|
| InternalServerError |
|
|
|
| ItemNotFound |
|
|
|
| ItemNotFound |
|
|
|
| JIDMalformed |
|
|
|
| JidMalformed |
|
|
|
| NotAcceptable -- ^ Does not meet policy |
|
|
|
| NotAcceptable -- ^ Does not meet policy |
|
|
|
-- criteria. |
|
|
|
-- criteria. |
|
|
|
| NotAllowed -- ^ No entity may perform |
|
|
|
| NotAllowed -- ^ No entity may perform |
|
|
|
@ -357,7 +357,7 @@ instance Show StanzaErrorCondition where |
|
|
|
show Gone = "gone" |
|
|
|
show Gone = "gone" |
|
|
|
show InternalServerError = "internal-server-error" |
|
|
|
show InternalServerError = "internal-server-error" |
|
|
|
show ItemNotFound = "item-not-found" |
|
|
|
show ItemNotFound = "item-not-found" |
|
|
|
show JIDMalformed = "jid-malformed" |
|
|
|
show JidMalformed = "jid-malformed" |
|
|
|
show NotAcceptable = "not-acceptable" |
|
|
|
show NotAcceptable = "not-acceptable" |
|
|
|
show NotAllowed = "not-allowed" |
|
|
|
show NotAllowed = "not-allowed" |
|
|
|
show NotAuthorized = "not-authorized" |
|
|
|
show NotAuthorized = "not-authorized" |
|
|
|
@ -381,7 +381,7 @@ instance Read StanzaErrorCondition where |
|
|
|
readsPrec _ "gone" = [(Gone , "")] |
|
|
|
readsPrec _ "gone" = [(Gone , "")] |
|
|
|
readsPrec _ "internal-server-error" = [(InternalServerError , "")] |
|
|
|
readsPrec _ "internal-server-error" = [(InternalServerError , "")] |
|
|
|
readsPrec _ "item-not-found" = [(ItemNotFound , "")] |
|
|
|
readsPrec _ "item-not-found" = [(ItemNotFound , "")] |
|
|
|
readsPrec _ "jid-malformed" = [(JIDMalformed , "")] |
|
|
|
readsPrec _ "jid-malformed" = [(JidMalformed , "")] |
|
|
|
readsPrec _ "not-acceptable" = [(NotAcceptable , "")] |
|
|
|
readsPrec _ "not-acceptable" = [(NotAcceptable , "")] |
|
|
|
readsPrec _ "not-allowed" = [(NotAllowed , "")] |
|
|
|
readsPrec _ "not-allowed" = [(NotAllowed , "")] |
|
|
|
readsPrec _ "not-authorized" = [(NotAuthorized , "")] |
|
|
|
readsPrec _ "not-authorized" = [(NotAuthorized , "")] |
|
|
|
@ -654,9 +654,7 @@ data XmppConnection = XmppConnection |
|
|
|
, sFeatures :: ServerFeatures |
|
|
|
, sFeatures :: ServerFeatures |
|
|
|
, sConnectionState :: XmppConnectionState |
|
|
|
, sConnectionState :: XmppConnectionState |
|
|
|
, sHostname :: Maybe Text |
|
|
|
, sHostname :: Maybe Text |
|
|
|
, sUsername :: Maybe Text |
|
|
|
, sJid :: Maybe Jid |
|
|
|
, sAuthzid :: Maybe Text |
|
|
|
|
|
|
|
, sResource :: Maybe Text |
|
|
|
|
|
|
|
, sCloseConnection :: IO () |
|
|
|
, sCloseConnection :: IO () |
|
|
|
-- TODO: add default Language |
|
|
|
-- TODO: add default Language |
|
|
|
} |
|
|
|
} |
|
|
|
|