summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go')
-rw-r--r--vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go b/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go
new file mode 100644
index 00000000..ed532c97
--- /dev/null
+++ b/vendor/github.com/shazow/ssh-chat/internal/sanitize/sanitize.go
@@ -0,0 +1,28 @@
+package sanitize
+
+import "regexp"
+
+var reStripName = regexp.MustCompile("[^\\w.-]")
+
+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
+}
+
+var reStripData = regexp.MustCompile("[^[:ascii:]]|[[:cntrl:]]")
+
+// 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, "")
+}