Class Jabber::Bytestreams::IBBTarget
In: lib/xmpp4r/bytestreams/helper/ibb/target.rb
Parent: IBB

Implementation of IBB at the target side

Methods

accept   new  

Attributes

block_size  [R]  You may read the block-size after accept

Public Class methods

[Source]

    # File lib/xmpp4r/bytestreams/helper/ibb/target.rb, line 9
 9:       def initialize(stream, session_id, initiator_jid, target_jid)
10:         # Target and Initiator are swapped here, because we're the target
11:         super(stream, session_id, target_jid, initiator_jid)
12:       end

Public Instance methods

Wait for the initiator side to start the stream.

[Source]

    # File lib/xmpp4r/bytestreams/helper/ibb/target.rb, line 17
17:       def accept
18:         connect_lock = Mutex.new
19:         connect_lock.lock
20: 
21:         @stream.add_iq_callback(200, self) { |iq|
22:           open = iq.first_element('open')
23:           if iq.type == :set and iq.from == @peer_jid and iq.to == @my_jid and open and open.attributes['sid'] == @session_id
24:             @stream.delete_iq_callback(self)
25:             activate
26:             @block_size = (open.attributes['block-size'] || 4096).to_i
27: 
28:             reply = iq.answer(false)
29:             reply.type = :result
30:             @stream.send(reply)
31:               
32:             connect_lock.unlock
33:             true
34:           else
35:             false
36:           end
37:         }
38: 
39:         connect_lock.lock
40:         connect_lock.unlock
41:         true
42:       end

[Validate]