|
|
|
@ -50,7 +50,7 @@ func MarshalJID(input string) (string, error) {
|
|
|
|
|
switch {
|
|
|
|
|
case sep == -1:
|
|
|
|
|
// There is no @ sign, and therefore no localpart.
|
|
|
|
|
return input, errors.New("Invalid JID: " + input)
|
|
|
|
|
domainpart = s
|
|
|
|
|
case sep == 0:
|
|
|
|
|
// The JID starts with an @ sign (invalid empty localpart)
|
|
|
|
|
err = errors.New("Invalid JID:" + input)
|
|
|
|
@ -71,17 +71,24 @@ func MarshalJID(input string) (string, error) {
|
|
|
|
|
// are taken.
|
|
|
|
|
|
|
|
|
|
domainpart = strings.TrimSuffix(domainpart, ".")
|
|
|
|
|
var jid string
|
|
|
|
|
|
|
|
|
|
if !utf8.ValidString(localpart) || !utf8.ValidString(domainpart) || !utf8.ValidString(resourcepart) {
|
|
|
|
|
return input, errors.New("Invalid JID: " + input)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if localpart == "" || domainpart == "" {
|
|
|
|
|
if domainpart == "" {
|
|
|
|
|
return input, errors.New("Invalid JID: " + input)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if localpart == "" {
|
|
|
|
|
jid = domainpart
|
|
|
|
|
} else {
|
|
|
|
|
jid = localpart + "@" + domainpart
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if resourcepart == "" {
|
|
|
|
|
return localpart + "@" + domainpart, err
|
|
|
|
|
return jid, err
|
|
|
|
|
}
|
|
|
|
|
return localpart + "@" + domainpart + "/" + resourcepart, err
|
|
|
|
|
return jid + "/" + resourcepart, err
|
|
|
|
|
}
|
|
|
|
|