Package pyxmpp :: Package jabberd :: Module componentstream :: Class ComponentStream
[hide private]

Class ComponentStream

source code

           streamtls.StreamTLSMixIn --+    
                                      |    
      sasl.core.PasswordManager --+   |    
                                  |   |    
         streamsasl.StreamSASLMixIn --+    
                                      |    
stanzaprocessor.StanzaProcessor --+   |    
                                  |   |    
         xmlextra.StreamHandler --+   |    
                                  |   |    
              streambase.StreamBase --+    
                                      |    
                          stream.Stream --+
                                          |
                                         ComponentStream

Handles jabberd component (jabber:component:accept) connection stream.
Instance Methods [hide private]
 
__init__(self, jid, secret, server, port, keepalive=0, owner=None)
Initialize a ComponentStream object.
source code
 
_reset(self)
Reset ComponentStream object state, making the object ready to handle new connections.
source code
 
connect(self, server=None, port=None)
Establish a client connection to a server.
source code
 
_connect(self, server=None, port=None)
Same as ComponentStream.connect but assume self.lock is acquired.
source code
 
accept(self, sock)
Accept an incoming component connection.
source code
 
stream_start(self, doc)
Process <stream:stream> (stream start) tag received from peer.
source code
 
_post_connect(self)
Initialize authentication when the connection is established and we are the initiator.
source code
str
_compute_handshake(self)
Compute the authentication handshake value.
source code
 
_auth(self)
Authenticate on the server.
source code
 
_process_node(self, node)
Process first level element of the stream.
source code

Inherited from streamtls.StreamTLSMixIn: get_tls_connection, tls_is_certificate_valid

Inherited from sasl.core.PasswordManager: check_authzid, check_password, choose_realm, generate_nonce, get_password, get_realms, get_serv_host, get_serv_name, get_serv_type

Inherited from streambase.StreamBase: __del__, bind, check_to, close, connected, disconnect, error, fileno, generate_id, idle, loop, loop_iter, process, process_stream_error, send, stanza, stanza_start, state_change, stream_end, write_raw

Inherited from stanzaprocessor.StanzaProcessor: fix_in_stanza, fix_out_stanza, process_iq, process_message, process_presence, process_response, process_stanza, route_stanza, set_iq_get_handler, set_iq_set_handler, set_message_handler, set_presence_handler, set_response_handlers, unset_iq_get_handler, unset_iq_set_handler

Inherited from xmlextra.StreamHandler: warning

Instance Variables [hide private]
: int port
: port number to use.
: unicode secret
: authentication secret.
: unicode server
: server to use.

Inherited from stream.Stream: features, initiator, lock, me, peer, process_all_stanzas, tls

Inherited from stream.Stream (private): _reader

Inherited from streambase.StreamBase: owner

Method Details [hide private]

__init__(self, jid, secret, server, port, keepalive=0, owner=None)
(Constructor)

source code 
Initialize a ComponentStream object.
Parameters:
  • jid - : JID of the component.
  • secret - : authentication secret.
  • server - : server address.
  • port - : TCP port number on the server.
  • keepalive - : keepalive interval. 0 to disable.
  • owner - : Client, Component or similar object "owning" this stream.
Overrides: xmlextra.StreamHandler.__init__

_reset(self)

source code 
Reset ComponentStream object state, making the object ready to handle new connections.
Overrides: streambase.StreamBase._reset

connect(self, server=None, port=None)

source code 

Establish a client connection to a server.

[component only]

Parameters:
  • server (: unicode) - : name or address of the server to use. If not given then use the one specified when creating the object.
  • port (: int) - : port number of the server to use. If not given then use the one specified when creating the object.
Overrides: streambase.StreamBase.connect

_connect(self, server=None, port=None)

source code 
Same as ComponentStream.connect but assume self.lock is acquired.
Overrides: streambase.StreamBase._connect

accept(self, sock)

source code 

Accept an incoming component connection.

[server only]

Parameters:
  • sock - : a listening socket.
Overrides: streambase.StreamBase.accept

stream_start(self, doc)

source code 

Process <stream:stream> (stream start) tag received from peer.

Call Stream.stream_start, but ignore any HostMismatch error.

Parameters:
  • doc - : document created by the parser
Overrides: xmlextra.StreamHandler.stream_start

_post_connect(self)

source code 
Initialize authentication when the connection is established and we are the initiator.
Overrides: streambase.StreamBase._post_connect

_compute_handshake(self)

source code 
Compute the authentication handshake value.
Returns: str
the computed hash value.

_auth(self)

source code 

Authenticate on the server.

[component only]

_process_node(self, node)

source code 

Process first level element of the stream.

Handle component handshake (authentication) element, and treat elements in "jabber:component:accept", "jabber:client" and "jabber:server" equally (pass to self.process_stanza). All other elements are passed to Stream._process_node.

Parameters:
  • node - : XML node describing the element
Overrides: streambase.StreamBase._process_node