forked from lug/matterbridge
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			805 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			805 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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
 | |
| }
 | 
