From 9706f7d5c149ee9cbe2ce9862d40593375e9d18c Mon Sep 17 00:00:00 2001 From: Martin Dosch Date: Thu, 29 Sep 2022 14:38:33 +0200 Subject: [PATCH] Don't connect to the XMPP server if the message is empty --- CHANGELOG.md | 1 + main.go | 61 ++++++++++++++++++++++++++++------------------------ 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72b4928..a8374aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Detect CNAME loops (max. 5 CNAMEs) (via xmppsrv >= v0.2.4). - Deprecate resource config option and command line flag. - Improve error handling in XML parsing. +- Don't connect to the XMPP server if the message is empty. ## [v0.5.1] 2022-05-22 ### Changed diff --git a/main.go b/main.go index 9c6d657..c7834da 100644 --- a/main.go +++ b/main.go @@ -267,6 +267,39 @@ func main() { } } + // Skip reading message if '-i' or '--interactive' is set to work with e.g. 'tail -f'. + // Also for listening mode. + if !*flagInteractive && !*flagListen { + if message == "" { + + scanner := bufio.NewScanner(os.Stdin) + for scanner.Scan() { + + if message == "" { + message = scanner.Text() + } else { + message = message + "\n" + scanner.Text() + } + } + + if err := scanner.Err(); err != nil { + if err != io.EOF { + log.Fatal(err) + } + } + } + } + + // Remove invalid code points. + message = strings.ToValidUTF8(message, "") + reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) + message = reg.ReplaceAllString(message, "") + + // Exit if message is empty. + if message == "" && !*flagInteractive { + os.Exit(0) + } + // Connect to server. client, err := connect(options, *flagDirectTLS) if err != nil { @@ -357,34 +390,6 @@ func main() { *flagHTTPUpload) } - // Skip reading message if '-i' or '--interactive' is set to work with e.g. 'tail -f'. - // Also for listening mode. - if !*flagInteractive && !*flagListen { - if message == "" { - - scanner := bufio.NewScanner(os.Stdin) - for scanner.Scan() { - - if message == "" { - message = scanner.Text() - } else { - message = message + "\n" + scanner.Text() - } - } - - if err := scanner.Err(); err != nil { - if err != io.EOF { - log.Fatal(err) - } - } - } - } - - // Remove invalid code points. - message = strings.ToValidUTF8(message, "") - reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) - message = reg.ReplaceAllString(message, "") - var msgType string msgType = "chat" if *flagChatroom {