From cdf920f5b90e4320a85c41d9ac44d6138af31e81 Mon Sep 17 00:00:00 2001 From: Konstantin Konnov Date: Sat, 13 Jul 2019 19:08:26 +0300 Subject: [PATCH] Correcting behavior when WriteTimout is 0. https://github.com/eclipse/paho.mqtt.golang/issues/325 Signed-off-by: Konstantin Konnov --- client.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index fb38bfef..7227e26e 100644 --- a/client.go +++ b/client.go @@ -599,9 +599,13 @@ func (c *client) Publish(topic string, qos byte, retained bool, payload interfac DEBUG.Println(CLI, "storing publish message (reconnecting), topic:", topic) } else { DEBUG.Println(CLI, "sending publish message, topic:", topic) + publishWaitTimeout := c.options.WriteTimeout + if publishWaitTimeout == 0 { + publishWaitTimeout = time.Second * 30 + } select { case c.obound <- &PacketAndToken{p: pub, t: token}: - case <-time.After(c.options.WriteTimeout): + case <-time.After(publishWaitTimeout): token.setError(errors.New("publish was broken by timeout")) } }