X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=r3-netstatus%2Fr3xmppbot%2Fr3xmppbot.go;h=f795afcc8dd894e947bdd51dc6b1194c9458068d;hb=31c937ec220968f64857c375008cc5376dcac701;hp=b1980da344a38fb9a638dd53302b2ce4a1e377d3;hpb=f360a8eb6c27cc69b015b547a418d35d4db54741;p=svn42.git diff --git a/r3-netstatus/r3xmppbot/r3xmppbot.go b/r3-netstatus/r3xmppbot/r3xmppbot.go index b1980da..f795afc 100644 --- a/r3-netstatus/r3xmppbot/r3xmppbot.go +++ b/r3-netstatus/r3xmppbot/r3xmppbot.go @@ -157,6 +157,12 @@ func init() { func (botdata *XmppBot) handleEventsforXMPP(xmppout chan <- xmpp.Stanza, presence_events <- chan interface{}, jabber_events <- chan JabberEvent) { var last_status_msg *string + defer func() { + if x := recover(); x != nil { + log.Printf("handleEventsforXMPP: run time panic: %v", x) + } + }() + for { select { case pe := <-presence_events: @@ -278,6 +284,14 @@ func (botdata *XmppBot) handleIncomingMessageDialog(inmsg xmpp.Message, xmppout } func (botdata *XmppBot) handleIncomingXMPPStanzas(xmppin <- chan xmpp.Stanza, xmppout chan<- xmpp.Stanza, jabber_events chan JabberEvent) { + + defer func() { + if x := recover(); x != nil { + log.Printf("handleIncomingXMPPStanzas: run time panic: %v", x) + close(jabber_events) + } + }() + var incoming_stanza interface{} for incoming_stanza = range xmppin { switch stanza := incoming_stanza.(type) {