lib/punchblock/connection.rb in punchblock-0.4.2 vs lib/punchblock/connection.rb in punchblock-0.4.3
- old
+ new
@@ -21,16 +21,17 @@
# @option options [Numeric, Optional] :write_timeout for which to wait on a command response
# @option options [Numeric, nil, Optional] :ping_period interval in seconds on which to ping the server. Nil or false to disable
#
def initialize(options = {})
super
- raise ArgumentError unless @username = options.delete(:username)
- raise ArgumentError unless options.has_key? :password
- @rayo_domain = options[:rayo_domain] || Blather::JID.new(@username).domain
- setup @username, options.delete(:password)
+ raise ArgumentError unless (@username = options[:username]) && options[:password]
+ setup *[:username, :password, :host, :port, :certs].map { |key| options.delete key }
+
+ @rayo_domain = options[:rayo_domain] || Blather::JID.new(@username).domain
+
@callmap = {} # This hash maps call IDs to their XMPP domain.
@component_id_to_iq_id = {}
@iq_id_to_command = {}
@@ -122,10 +123,10 @@
end
private
def handle_presence(p)
- throw :pass unless p.rayo_event?
+ throw :pass unless p.rayo_event? && p.from.domain == @rayo_domain
@logger.info "Receiving event for call ID #{p.call_id}" if @logger
@callmap[p.call_id] = p.from.domain
@logger.debug p.inspect if @logger
event = p.event
event.connection = self