X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=go%2Fr3-netstatus%2Fr3xmppbot%2Fr3xmppbot.go;fp=go%2Fr3-netstatus%2Fr3xmppbot%2Fr3xmppbot.go;h=3ad4177c0ffec3cb9fbe0d4cd632881d784c70d9;hp=795d7a8e54c19e1d81205aae1903cbec8596d21f;hb=39422bed6ea1746af53efd33311634b3f27dca01;hpb=3f91a25fbd163a5c2a0a1c4e17aeafb332585eaf diff --git a/go/r3-netstatus/r3xmppbot/r3xmppbot.go b/go/r3-netstatus/r3xmppbot/r3xmppbot.go index 795d7a8..3ad4177 100644 --- a/go/r3-netstatus/r3xmppbot/r3xmppbot.go +++ b/go/r3-netstatus/r3xmppbot/r3xmppbot.go @@ -329,12 +329,18 @@ func (botdata *XmppBot) handleIncomingXMPPStanzas(xmppin <- chan xmpp.Stanza, xm switch stanza := incoming_stanza.(type) { case *xmpp.Message: if stanza.GetHeader() == nil { continue } - botdata.handleIncomingMessageDialog(*stanza, xmppout, jabber_events) if stanza.Type == "error" || stanza.Error != nil { Syslog_.Printf("XMPP %T Error: %s", stanza, stanza) + if stanza.Error.Type == "cancel" { + // asume receipient not reachable -> disable + Syslog_.Printf("Error reaching %s. Disabling user, please reenable manually", stanza.From) + jabber_events <- JabberEvent{stanza.From, false, R3NeverInfo, false} + continue + } if handleStanzaError() { return } continue } else { error_count = 0 } + botdata.handleIncomingMessageDialog(*stanza, xmppout, jabber_events) case *xmpp.Presence: if stanza.GetHeader() == nil { continue } if stanza.Type == "error" || stanza.Error != nil {