X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=go%2Fr3-netstatus%2Fr3xmppbot%2Fr3xmppbot.go;h=34a14729d93aeb2dcdac1b879f00ed3b839f6380;hb=114821ef8e7567df37044ecd77b4d807216b0946;hp=e2c4588c53f390978393becab0f8e76ed55f6432;hpb=69489156ce4eb5fac36d965a2f851ad764f58e64;p=svn42.git diff --git a/go/r3-netstatus/r3xmppbot/r3xmppbot.go b/go/r3-netstatus/r3xmppbot/r3xmppbot.go index e2c4588..34a1472 100644 --- a/go/r3-netstatus/r3xmppbot/r3xmppbot.go +++ b/go/r3-netstatus/r3xmppbot/r3xmppbot.go @@ -136,6 +136,7 @@ type XmppBot struct { my_login_password_ string xmppclient_ *xmpp.Client presence_events_ *chan interface{} + ping_reply_ chan bool } @@ -226,12 +227,12 @@ func (botdata *XmppBot) handleEventsforXMPP(xmppout chan <- xmpp.Stanza, presenc Debug_.Printf("handleEventsforXMPP<-jabber_events: %T %+v", je, je) simple_jid := removeJIDResource(je.JID) jid_data, jid_in_map := botdata.realraum_jids_[simple_jid] - + //send status if requested, even if user never changed any settings and thus is not in map if last_status_msg != nil && je.StatusNow { xmppout <- botdata.makeXMPPMessage(je.JID, last_status_msg, nil) } - + if jid_in_map { //if R3OnlineOnlyWithRecapInfo, we want a status update when coming online if last_status_msg != nil && ! jid_data.Online && je.Online && jid_data.Wants == R3OnlineOnlyWithRecapInfo { @@ -272,6 +273,9 @@ func (botdata *XmppBot) handleIncomingMessageDialog(inmsg xmpp.Message, xmppout if inmsg.Body == nil || inmsg.GetHeader() == nil { return } + if inmsg.GetHeader().Error != nil { + Syslog_.Printf("XMPP Message Error: %s", inmsg.GetHeader().Error.Error()) + } bodytext :=inmsg.Body.Chardata if botdata.isAuthenticated(inmsg.GetHeader().From) { switch bodytext { @@ -336,8 +340,9 @@ func (botdata *XmppBot) handleIncomingXMPPStanzas(xmppin <- chan xmpp.Stanza, xm case *xmpp.Message: botdata.handleIncomingMessageDialog(*stanza, xmppout, jabber_events) case *xmpp.Presence: - if stanza.GetHeader() == nil { - continue + if stanza.GetHeader() == nil { continue } + if stanza.GetHeader().Error != nil { + Syslog_.Printf("XMPP Presence Error: %s", stanza.GetHeader().Error.Error()) } switch stanza.GetHeader().Type { case "subscribe": @@ -355,8 +360,9 @@ func (botdata *XmppBot) handleIncomingXMPPStanzas(xmppin <- chan xmpp.Stanza, xm jabber_events <- JabberEvent{stanza.GetHeader().From, true, R3NoChange, false} } case *xmpp.Iq: - if stanza.GetHeader() == nil { - continue + if stanza.GetHeader() == nil { continue } + if stanza.GetHeader().Error != nil { + Syslog_.Printf("XMPP Iq Error: %s", stanza.GetHeader().Error.Error()) } } } @@ -373,6 +379,7 @@ func NewStartedBot(loginjid, loginpwd, password, state_save_dir string, insecure botdata.my_jid_ = loginjid botdata.my_login_password_ = loginpwd botdata.auth_timeout_ = 3600*2 + botdata.ping_reply_ = make(chan bool) botdata.config_file_ = path.Join(state_save_dir, "r3xmpp."+removeJIDResource(loginjid)+".json")