From 45c5e0d147848d5ef5a2c9fd827e79def076a056 Mon Sep 17 00:00:00 2001 From: freitzzz <1160907@isep.ipp.pt> Date: Sat, 11 Feb 2023 15:53:32 +0000 Subject: [PATCH 1/2] move body close to asyncPost --- pkg/telegramwriter.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkg/telegramwriter.go b/pkg/telegramwriter.go index 68e2991..d2f37cb 100644 --- a/pkg/telegramwriter.go +++ b/pkg/telegramwriter.go @@ -29,13 +29,6 @@ func (tw TelegramWriter) Write(p []byte) (n int, err error) { go asyncPost(url, body, resultChan) - response := <-resultChan - defer func() { - if response != nil && response.Body != nil { - response.Body.Close() - } - }() - return len(p), nil } @@ -48,4 +41,9 @@ func asyncPost(url string, body []byte, rc chan *http.Response) { } rc <- response + + if response != nil && response.Body != nil { + response.Body.Close() + } + } From a2b468742e9738e164b55534b72fe36467bbc277 Mon Sep 17 00:00:00 2001 From: freitzzz <1160907@isep.ipp.pt> Date: Sat, 11 Feb 2023 15:56:25 +0000 Subject: [PATCH 2/2] remove result chan --- pkg/telegramwriter.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pkg/telegramwriter.go b/pkg/telegramwriter.go index d2f37cb..a1bb6cb 100644 --- a/pkg/telegramwriter.go +++ b/pkg/telegramwriter.go @@ -12,8 +12,6 @@ type TelegramWriter struct { chatId string } -var resultChan = make(chan *http.Response) - func (tw TelegramWriter) Write(p []byte) (n int, err error) { body, err := json.Marshal(map[string]string{ @@ -27,22 +25,19 @@ func (tw TelegramWriter) Write(p []byte) (n int, err error) { url := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage", tw.botToken) - go asyncPost(url, body, resultChan) + go asyncPost(url, body) return len(p), nil } -func asyncPost(url string, body []byte, rc chan *http.Response) { +func asyncPost(url string, body []byte) { response, err := http.Post(url, messageType, bytes.NewBuffer(body)) if err != nil { - rc <- response return } - rc <- response - - if response != nil && response.Body != nil { + if response.Body != nil { response.Body.Close() }