|
|
|
|
@ -214,7 +214,7 @@ func (m MachineStatus) String() string { |
|
|
|
|
func isNum(r rune) bool { return r >= '0' && r <= '9' } |
|
|
|
|
func isAlpha(r rune) bool { return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') } |
|
|
|
|
|
|
|
|
|
// CheckTag valids whether a given string can be used as an ACL tag.
|
|
|
|
|
// CheckTag validates tag for use as an ACL tag.
|
|
|
|
|
// For now we allow only ascii alphanumeric tags, and they need to start
|
|
|
|
|
// with a letter. No unicode shenanigans allowed, and we reserve punctuation
|
|
|
|
|
// marks other than '-' for a possible future URI scheme.
|
|
|
|
|
@ -258,6 +258,20 @@ func CheckTagSuffix(tag string) error { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// CheckRequestTags checks that all of h.RequestTags are valid.
|
|
|
|
|
func (h *Hostinfo) CheckRequestTags() error { |
|
|
|
|
if h == nil { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
for _, tag := range h.RequestTags { |
|
|
|
|
err := CheckTag(tag) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type ServiceProto string |
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
|