package xmpp import ( "encoding/xml" ) // domainpart extracts the domain name from a JID / XMPP address. See // https://datatracker.ietf.org/doc/html/rfc7622#section-3.2 for details. func domainpart(jid string) string { list := []rune(jid) for i, v := range list { if v == '/' { list = list[:i] break } } for i, v := range list { if v == '@' { list = list[i+1:] break } } return string(list) } func username(jid string) string { list := []rune(jid) for i, v := range list { if v == '@' { return string(list[:i]) } } return "" } func hasBind(e []xml.Token) bool { bind := xml.Name{`urn:ietf:params:xml:ns:xmpp-bind`, `bind`} for _, v := range e { switch s := v.(type) { case xml.StartElement: if s.Name == bind { return true } } } return false }