lelegram: stuckness fixes, timeout
Change-Id: I3c1ad4e589ea66db846a56aab8a2c1698bdee539
diff --git a/personal/q3k/lelegram/main.go b/personal/q3k/lelegram/main.go
index ef1ce37..f4360a9 100644
--- a/personal/q3k/lelegram/main.go
+++ b/personal/q3k/lelegram/main.go
@@ -6,6 +6,7 @@
"fmt"
"strconv"
"strings"
+ "time"
"code.hackerspace.pl/hscloud/go/mirko"
@@ -155,12 +156,14 @@
// This blocks until success or failure, making sure the log stays
// totally ordered in the face of some of our IRC connections being
// dead/slow.
- err := s.mgr.SendMessage(m.user, text)
+ ctxT, cancel := context.WithTimeout(ctx, 15*time.Second)
+ err := s.mgr.SendMessage(ctxT, m.user, text)
if err != nil {
glog.Warningf("Attempting redelivery of %v after error: %v...", m, err)
- err = s.mgr.SendMessage(m.user, text)
+ err = s.mgr.SendMessage(ctx, m.user, text)
glog.Errorf("Redelivery of %v failed: %v...", m, err)
}
+ cancel()
case n := <-s.ircLog:
// Notification from IRC (message or new nickmap)