summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2018-02-27 22:55:55 +0100
committerWim <wim@42.be>2018-02-27 23:22:12 +0100
commit6a727b9723a1e0b708ac2b5f406a599d086bb0ce (patch)
tree205a52897b2cbcc6d38f646c85bcf9566644e0ce /vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
parent02a5bc096fedea8a20e9693243b5291ed49cdf94 (diff)
downloadmatterbridge-msglm-6a727b9723a1e0b708ac2b5f406a599d086bb0ce.tar.gz
matterbridge-msglm-6a727b9723a1e0b708ac2b5f406a599d086bb0ce.tar.bz2
matterbridge-msglm-6a727b9723a1e0b708ac2b5f406a599d086bb0ce.zip
Use our own version of go-xmpp with debug output to logrus
Diffstat (limited to 'vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go')
-rw-r--r--vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go b/vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
new file mode 100644
index 00000000..2a699222
--- /dev/null
+++ b/vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
@@ -0,0 +1,31 @@
+package xmpp
+
+import (
+ "fmt"
+ "strconv"
+)
+
+const IQTypeGet = "get"
+const IQTypeSet = "set"
+const IQTypeResult = "result"
+
+func (c *Client) Discovery() (string, error) {
+ const namespace = "http://jabber.org/protocol/disco#items"
+ // use getCookie for a pseudo random id.
+ reqID := strconv.FormatUint(uint64(getCookie()), 10)
+ return c.RawInformationQuery(c.jid, c.domain, reqID, IQTypeGet, namespace, "")
+}
+
+// RawInformationQuery sends an information query request to the server.
+func (c *Client) RawInformationQuery(from, to, id, iqType, requestNamespace, body string) (string, error) {
+ const xmlIQ = "<iq from='%s' to='%s' id='%s' type='%s'><query xmlns='%s'>%s</query></iq>"
+ _, err := fmt.Fprintf(c.conn, xmlIQ, xmlEscape(from), xmlEscape(to), id, iqType, requestNamespace, body)
+ return id, err
+}
+
+// rawInformation send a IQ request with the the payload body to the server
+func (c *Client) RawInformation(from, to, id, iqType, body string) (string, error) {
+ const xmlIQ = "<iq from='%s' to='%s' id='%s' type='%s'>%s</iq>"
+ _, err := fmt.Fprintf(c.conn, xmlIQ, xmlEscape(from), xmlEscape(to), id, iqType, body)
+ return id, err
+}