diff options
author | Patrick J Cherry <patrick@bytemark.co.uk> | 2011-10-20 15:29:06 +0100 |
---|---|---|
committer | Patrick J Cherry <patrick@bytemark.co.uk> | 2011-10-20 15:29:06 +0100 |
commit | 195ffe943614ac084839b590294ad740e4bb15d3 (patch) | |
tree | a6f9d89152cff31fe453d30f6240aa917833c88c /lib/mauve | |
parent | 4f453dea9fffe8171c7585041b9a136c3a8b8fda (diff) |
More XMPP robustification.
Diffstat (limited to 'lib/mauve')
-rw-r--r-- | lib/mauve/notifier.rb | 18 | ||||
-rw-r--r-- | lib/mauve/notifiers/xmpp.rb | 7 |
2 files changed, 10 insertions, 15 deletions
diff --git a/lib/mauve/notifier.rb b/lib/mauve/notifier.rb index 14e188c..bf36162 100644 --- a/lib/mauve/notifier.rb +++ b/lib/mauve/notifier.rb @@ -42,13 +42,17 @@ module Mauve # # Make sure we're connected to the XMPP server if needed on every iteration. # - if Configuration.current.notification_methods['xmpp'] and !Configuration.current.notification_methods['xmpp'].ready? + xmpp = Configuration.current.notification_methods['xmpp'] + + if xmpp and !xmpp.ready? # # Connect to XMPP server # - xmpp = Configuration.current.notification_methods['xmpp'] - xmpp.connect + xmpp.connect + # + # Join all chats and shit. Unless the connection failed. + # Configuration.current.people.each do |username, person| # # Ignore people without XMPP stanzas. @@ -56,11 +60,6 @@ module Mauve next unless person.xmpp # - # Can't do this unless we're ready. - # - next unless xmpp.ready? - - # # For each JID, either ensure they're on our roster, or that we're in # that chat room. # @@ -71,7 +70,8 @@ module Mauve end Configuration.current.people[username].xmpp = jid unless jid.nil? - end + + end if xmpp.ready? end diff --git a/lib/mauve/notifiers/xmpp.rb b/lib/mauve/notifiers/xmpp.rb index 16c47bb..8254494 100644 --- a/lib/mauve/notifiers/xmpp.rb +++ b/lib/mauve/notifiers/xmpp.rb @@ -150,12 +150,7 @@ module Mauve unless ex.nil? or @closing logger.warn(["Caught",ex.class,ex.to_s,"during XMPP",where].join(" ")) logger.debug ex.backtrace.join("\n") - @closing = true - connect - @mucs.each do |jid, muc| - @mucs.delete(jid) - join_muc(muc[:jid], muc[:password]) - end + self.close end end rescue StandardError => ex |