diff options
Diffstat (limited to 'teleirc/matterbridge/vendor/github.com/shazow/ssh-chat/internal/sanitize')
| -rw-r--r-- | teleirc/matterbridge/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/teleirc/matterbridge/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go b/teleirc/matterbridge/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go new file mode 100644 index 0000000..4f9775f --- /dev/null +++ b/teleirc/matterbridge/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go @@ -0,0 +1,29 @@ +package sanitize + +import "regexp" + +var ( + reStripName = regexp.MustCompile("[^\\w.-]") + reStripData = regexp.MustCompile("[^[:ascii:]]|[[:cntrl:]]") +) + +const maxLength = 16 + +// Name returns a name with only allowed characters and a reasonable length +func Name(s string) string { + s = reStripName.ReplaceAllString(s, "") + nameLength := maxLength + if len(s) <= maxLength { + nameLength = len(s) + } + s = s[:nameLength] + return s +} + +// Data returns a string with only allowed characters for client-provided metadata inputs. +func Data(s string, maxlen int) string { + if len(s) > maxlen { + s = s[:maxlen] + } + return reStripData.ReplaceAllString(s, "") +} |
