Add home server from JID lookup helper.

This commit is contained in:
Matt Goodall 2012-07-10 10:35:39 +01:00
parent 2776e78613
commit 2a32fc1e44
1 changed files with 34 additions and 0 deletions

34
src/xmpp/dns.go Normal file
View File

@ -0,0 +1,34 @@
package xmpp
import (
"fmt"
"net"
)
const (
XMPP_CLIENT_PORT = 5222
)
// Perform a DNS SRV lookup and return an ordered list of "host:port" TCP
// addresses for the JID's home server.
func HomeServerAddrs(jid JID) (addr []string, err error) {
// DNS lookup.
_, addrs, err := net.LookupSRV("xmpp-client", "tcp", jid.Domain)
if err != nil {
return
}
// If there's nothing in DNS then assume the JID's domain and the standard
// port will work.
if len(addrs) == 0 {
addr = []string{fmt.Sprintf("%s:%d", jid.Domain, XMPP_CLIENT_PORT)}
return
}
// Build list of "host:port" strings.
for _, a := range addrs {
addr = append(addr, fmt.Sprintf("%s:%d", a.Target, a.Port))
}
return
}