lib/blather/stream/component.rb in blather-0.3.4 vs lib/blather/stream/component.rb in blather-0.4.0
- old
+ new
@@ -4,27 +4,31 @@
class Component < Stream
NAMESPACE = 'jabber:component:accept'
def receive(node) # :nodoc:
if node.element_name == 'handshake'
- @client.post_init
+ ready!
else
super
end
- if node.namespaces.find_by_href('http://etherx.jabber.org/streams') && node.find_first('/stream:stream[not(stream:error)]')
- send("<handshake>#{Digest::SHA1.hexdigest(@node['id']+@pass)}</handshake>")
+ if node.document.find_first('/stream:stream[not(stream:error)]', :xmlns => NAMESPACE, :stream => STREAM_NS)
+ send("<handshake>#{Digest::SHA1.hexdigest(@node['id']+@password)}</handshake>")
end
end
- protected
+ def send(stanza)
+ stanza.from ||= self.jid if stanza.respond_to?(:from) && stanza.respond_to?(:from=)
+ super stanza
+ end
+
def start
@parser = Parser.new self
start_stream = <<-STREAM
<stream:stream
to='#{@jid}'
xmlns='#{NAMESPACE}'
- xmlns:stream='http://etherx.jabber.org/streams'
+ xmlns:stream='#{STREAM_NS}'
>
STREAM
send start_stream.gsub(/\s+/, ' ')
end
end #Client