From 0a418a7128ab5a7f10fdd925275a85383e3a8e64 Mon Sep 17 00:00:00 2001 From: Jono Wenger <jono@elixxir.io> Date: Fri, 10 Mar 2023 09:44:28 -0800 Subject: [PATCH] Truncate message safely for log messages --- wasm/dm.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/wasm/dm.go b/wasm/dm.go index 27d1e81d..0328a209 100644 --- a/wasm/dm.go +++ b/wasm/dm.go @@ -322,7 +322,7 @@ func (dmc *DMClient) SendText(_ js.Value, args []js.Value) any { jww.DEBUG.Printf("SendText(%s, %d, %s...)", base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], - partnerToken, message[:10]) + partnerToken, truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendText(partnerPubKeyBytes, @@ -381,7 +381,7 @@ func (dmc *DMClient) SendReply(_ js.Value, args []js.Value) any { base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], partnerToken, base64.RawStdEncoding.EncodeToString(replyID), - message[:10]) + truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendReply(partnerPubKeyBytes, @@ -428,7 +428,7 @@ func (dmc *DMClient) SendReaction(_ js.Value, args []js.Value) any { base64.RawStdEncoding.EncodeToString(partnerPubKeyBytes)[:8], partnerToken, base64.RawStdEncoding.EncodeToString(replyID), - message[:10]) + truncate(message, 10)) promiseFn := func(resolve, reject func(args ...any) js.Value) { sendReport, err := dmc.api.SendReaction(partnerPubKeyBytes, @@ -951,3 +951,12 @@ func (c *DMDbCipher) UnmarshalJSON(_ js.Value, args []js.Value) any { } return nil } + +// truncate truncates the string to length n. If the string is trimmed, then +// ellipses (...) are appended. +func truncate(s string, n int) string { + if len(s)-3 <= n { + return s + } + return s[:n] + "..." +} \ No newline at end of file -- GitLab