Package common :: Package xmpp :: Module transports
[hide private]
[frames] | no frames]

Module transports

This module contains the low-level implementations of xmpppy connect methods or (in other words) transports for xmpp-stanzas. Currently here is three transports: direct TCP connect - TCPsocket class proxied TCP connect - HTTPPROXYsocket class (CONNECT proxies) TLS connection - TLS class. Can be used for SSL connections also.

Transports are stackable so you - f.e. TLS use HTPPROXYsocket or TCPsocket as more low-level transport.

Also exception 'error' is defined to allow capture of this module specific exceptions.

Classes [hide private]
  HTTPPROXYsocket
HTTP (CONNECT) proxy connection class.
  TCPsocket
This class defines direct TCP connection method.
  TLS
TLS connection used to encrypts already estabilished tcp connection.
Functions [hide private]
 
temp_failure_retry(func, *args, **kwargs)
Variables [hide private]
  DATA_RECEIVED = 'DATA RECEIVED'
  DATA_SENT = 'DATA SENT'
  DBG_CONNECT_PROXY = 'CONNECTproxy'
  DBG_SOCKET = 'socket'
  ERRORS = {'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['', '',...
  ERR_BAD_REQUEST = 'urn:ietf:params:xml:ns:xmpp-stanzas bad-req...
  ERR_CONFLICT = 'urn:ietf:params:xml:ns:xmpp-stanzas conflict'
  ERR_FEATURE_NOT_IMPLEMENTED = 'urn:ietf:params:xml:ns:xmpp-sta...
  ERR_FORBIDDEN = 'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'
  ERR_GONE = 'urn:ietf:params:xml:ns:xmpp-stanzas gone'
  ERR_INTERNAL_SERVER_ERROR = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_ITEM_NOT_FOUND = 'urn:ietf:params:xml:ns:xmpp-stanzas item...
  ERR_JID_MALFORMED = 'urn:ietf:params:xml:ns:xmpp-stanzas jid-m...
  ERR_NOT_ACCEPTABLE = 'urn:ietf:params:xml:ns:xmpp-stanzas not-...
  ERR_NOT_ALLOWED = 'urn:ietf:params:xml:ns:xmpp-stanzas not-all...
  ERR_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-stanzas not-...
  ERR_PAYMENT_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanzas pa...
  ERR_RECIPIENT_UNAVAILABLE = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_REDIRECT = 'urn:ietf:params:xml:ns:xmpp-stanzas redirect'
  ERR_REGISTRATION_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_REMOTE_SERVER_NOT_FOUND = 'urn:ietf:params:xml:ns:xmpp-sta...
  ERR_REMOTE_SERVER_TIMEOUT = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_RESOURCE_CONSTRAINT = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_SERVICE_UNAVAILABLE = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_SUBSCRIPTION_REQUIRED = 'urn:ietf:params:xml:ns:xmpp-stanz...
  ERR_UNDEFINED_CONDITION = 'urn:ietf:params:xml:ns:xmpp-stanzas...
  ERR_UNEXPECTED_REQUEST = 'urn:ietf:params:xml:ns:xmpp-stanzas ...
  NS_ACTIVITY = 'http://jabber.org/protocol/activity'
  NS_ADDRESS = 'http://jabber.org/protocol/address'
  NS_AGENTS = 'jabber:iq:agents'
  NS_AMP = 'http://jabber.org/protocol/amp'
  NS_AMP_ERRORS = 'http://jabber.org/protocol/amp#errors'
  NS_AUTH = 'jabber:iq:auth'
  NS_AVATAR = 'http://www.xmpp.org/extensions/xep-0084.html#ns-m...
  NS_BIND = 'urn:ietf:params:xml:ns:xmpp-bind'
  NS_BROWSE = 'jabber:iq:browse'
  NS_BROWSING = 'http://jabber.org/protocol/browsing'
  NS_BYTESTREAM = 'http://jabber.org/protocol/bytestreams'
  NS_CAPS = 'http://jabber.org/protocol/caps'
  NS_CHATSTATES = 'http://jabber.org/protocol/chatstates'
  NS_CHATTING = 'http://jabber.org/protocol/chatting'
  NS_CLIENT = 'jabber:client'
  NS_COMMANDS = 'http://jabber.org/protocol/commands'
  NS_COMPONENT_1 = 'http://jabberd.jabberstudio.org/ns/component...
  NS_COMPONENT_ACCEPT = 'jabber:component:accept'
  NS_COMPRESS = 'http://jabber.org/protocol/compress'
  NS_CONFERENCE = 'jabber:x:conference'
  NS_DATA = 'jabber:x:data'
  NS_DATA_LAYOUT = 'http://jabber.org/protocol/xdata-layout'
  NS_DATA_VALIDATE = 'http://jabber.org/protocol/xdata-validate'
  NS_DELAY = 'jabber:x:delay'
  NS_DELAY2 = 'urn:xmpp:delay'
  NS_DIALBACK = 'jabber:server:dialback'
  NS_DISCO = 'http://jabber.org/protocol/disco'
  NS_DISCO_INFO = 'http://jabber.org/protocol/disco#info'
  NS_DISCO_ITEMS = 'http://jabber.org/protocol/disco#items'
  NS_ENCRYPTED = 'jabber:x:encrypted'
  NS_ESESSION = 'http://www.xmpp.org/extensions/xep-0116.html#ns'
  NS_ESESSION_INIT = 'http://www.xmpp.org/extensions/xep-0116.ht...
  NS_EVENT = 'jabber:x:event'
  NS_FEATURE = 'http://jabber.org/protocol/feature-neg'
  NS_FILE = 'http://jabber.org/protocol/si/profile/file-transfer'
  NS_GAMING = 'http://jabber.org/protocol/gaming'
  NS_GEOLOC = 'http://jabber.org/protocol/geoloc'
  NS_GMAILNOTIFY = 'google:mail:notify'
  NS_GROUPCHAT = 'gc-1.0'
  NS_GTALKSETTING = 'google:setting'
  NS_HTTP_AUTH = 'http://jabber.org/protocol/http-auth'
  NS_HTTP_BIND = 'http://jabber.org/protocol/httpbind'
  NS_IBB = 'http://jabber.org/protocol/ibb'
  NS_INVISIBLE = 'presence-invisible'
  NS_IQ = 'iq'
  NS_LAST = 'jabber:iq:last'
  NS_MESSAGE = 'message'
  NS_MOOD = 'http://jabber.org/protocol/mood'
  NS_MUC = 'http://jabber.org/protocol/muc'
  NS_MUC_ADMIN = 'http://jabber.org/protocol/muc#admin'
  NS_MUC_CONFIG = 'http://jabber.org/protocol/muc#roomconfig'
  NS_MUC_OWNER = 'http://jabber.org/protocol/muc#owner'
  NS_MUC_UNIQUE = 'http://jabber.org/protocol/muc#unique'
  NS_MUC_USER = 'http://jabber.org/protocol/muc#user'
  NS_NICK = 'http://jabber.org/protocol/nick'
  NS_OFFLINE = 'http://www.jabber.org/jeps/jep-0030.html'
  NS_PHYSLOC = 'http://jabber.org/protocol/physloc'
  NS_PING = 'urn:xmpp:ping'
  NS_PRESENCE = 'presence'
  NS_PRIVACY = 'jabber:iq:privacy'
  NS_PRIVATE = 'jabber:iq:private'
  NS_PROFILE = 'http://jabber.org/protocol/profile'
  NS_PUBSUB = 'http://jabber.org/protocol/pubsub'
  NS_PUBSUB_OWNER = 'http://jabber.org/protocol/pubsub#owner'
  NS_RECEIPTS = 'urn:xmpp:receipts'
  NS_REGISTER = 'jabber:iq:register'
  NS_ROSTER = 'jabber:iq:roster'
  NS_ROSTERX = 'http://jabber.org/protocol/rosterx'
  NS_RPC = 'jabber:iq:rpc'
  NS_SASL = 'urn:ietf:params:xml:ns:xmpp-sasl'
  NS_SEARCH = 'jabber:iq:search'
  NS_SERVER = 'jabber:server'
  NS_SESSION = 'urn:ietf:params:xml:ns:xmpp-session'
  NS_SI = 'http://jabber.org/protocol/si'
  NS_SIGNED = 'jabber:x:signed'
  NS_SI_PUB = 'http://jabber.org/protocol/sipub'
  NS_SSN = 'urn:xmpp:ssn'
  NS_STANZAS = 'urn:ietf:params:xml:ns:xmpp-stanzas'
  NS_STANZA_CRYPTO = 'http://www.xmpp.org/extensions/xep-0200.ht...
  NS_STREAM = 'http://affinix.com/jabber/stream'
  NS_STREAMS = 'http://etherx.jabber.org/streams'
  NS_TIME = 'jabber:iq:time'
  NS_TIME_REVISED = 'urn:xmpp:time'
  NS_TLS = 'urn:ietf:params:xml:ns:xmpp-tls'
  NS_TUNE = 'http://jabber.org/protocol/tune'
  NS_VACATION = 'http://jabber.org/protocol/vacation'
  NS_VCARD = 'vcard-temp'
  NS_VCARD_UPDATE = 'vcard-temp:x:update'
  NS_VERSION = 'jabber:iq:version'
  NS_VIEWING = 'http://jabber.org/protocol/viewing'
  NS_WAITINGLIST = 'http://jabber.org/protocol/waitinglist'
  NS_XHTML = 'http://www.w3.org/1999/xhtml'
  NS_XHTML_IM = 'http://jabber.org/protocol/xhtml-im'
  NS_XMPP_STREAMS = 'urn:ietf:params:xml:ns:xmpp-streams'
  SASL_ABORTED = 'urn:ietf:params:xml:ns:xmpp-sasl aborted'
  SASL_INCORRECT_ENCODING = 'urn:ietf:params:xml:ns:xmpp-sasl in...
  SASL_INVALID_AUTHZID = 'urn:ietf:params:xml:ns:xmpp-sasl inval...
  SASL_INVALID_MECHANISM = 'urn:ietf:params:xml:ns:xmpp-sasl inv...
  SASL_MECHANISM_TOO_WEAK = 'urn:ietf:params:xml:ns:xmpp-sasl me...
  SASL_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-sasl not-au...
  SASL_TEMPORARY_AUTH_FAILURE = 'urn:ietf:params:xml:ns:xmpp-sas...
  STREAM_BAD_FORMAT = 'urn:ietf:params:xml:ns:xmpp-streams bad-f...
  STREAM_BAD_NAMESPACE_PREFIX = 'urn:ietf:params:xml:ns:xmpp-str...
  STREAM_CONFLICT = 'urn:ietf:params:xml:ns:xmpp-streams conflict'
  STREAM_CONNECTION_TIMEOUT = 'urn:ietf:params:xml:ns:xmpp-strea...
  STREAM_HOST_GONE = 'urn:ietf:params:xml:ns:xmpp-streams host-g...
  STREAM_HOST_UNKNOWN = 'urn:ietf:params:xml:ns:xmpp-streams hos...
  STREAM_IMPROPER_ADDRESSING = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_INTERNAL_SERVER_ERROR = 'urn:ietf:params:xml:ns:xmpp-st...
  STREAM_INVALID_FROM = 'urn:ietf:params:xml:ns:xmpp-streams inv...
  STREAM_INVALID_ID = 'urn:ietf:params:xml:ns:xmpp-streams inval...
  STREAM_INVALID_NAMESPACE = 'urn:ietf:params:xml:ns:xmpp-stream...
  STREAM_INVALID_XML = 'urn:ietf:params:xml:ns:xmpp-streams inva...
  STREAM_NOT_AUTHORIZED = 'urn:ietf:params:xml:ns:xmpp-streams n...
  STREAM_POLICY_VIOLATION = 'urn:ietf:params:xml:ns:xmpp-streams...
  STREAM_REMOTE_CONNECTION_FAILED = 'urn:ietf:params:xml:ns:xmpp...
  STREAM_RESOURCE_CONSTRAINT = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_RESTRICTED_XML = 'urn:ietf:params:xml:ns:xmpp-streams r...
  STREAM_SEE_OTHER_HOST = 'urn:ietf:params:xml:ns:xmpp-streams s...
  STREAM_SYSTEM_SHUTDOWN = 'urn:ietf:params:xml:ns:xmpp-streams ...
  STREAM_UNDEFINED_CONDITION = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_UNSUPPORTED_ENCODING = 'urn:ietf:params:xml:ns:xmpp-str...
  STREAM_UNSUPPORTED_STANZA_TYPE = 'urn:ietf:params:xml:ns:xmpp-...
  STREAM_UNSUPPORTED_VERSION = 'urn:ietf:params:xml:ns:xmpp-stre...
  STREAM_XML_NOT_WELL_FORMED = 'urn:ietf:params:xml:ns:xmpp-stre...
  name = 'SASL_TEMPORARY_AUTH_FAILURE'
  sasl_error_conditions = '\naborted -- -- -- The receiving en...
  stream_exceptions = {'bad-format': <class 'common.xmpp.protoco...
  xmpp_stanza_error_conditions = '\nbad-request -- 400 -- modify...
  xmpp_stream_error_conditions = '\nbad-format -- -- -- The en...

Imports: BOSHBody, BadFormat, BadNamespacePrefix, Conflict, ConnectionTimeout, DataField, DataForm, Error, ErrorNode, HostGone, HostUnknown, ImproperAddressing, InternalServerError, InvalidFrom, InvalidID, InvalidNamespace, InvalidXML, Iq, JID, Message, Node, NodeBuilder, NodeProcessed, NotAuthorized, PlugIn, PolicyViolation, Presence, Protocol, RemoteConnectionFailed, ResourceConstraint, RestrictedXML, SeeOtherHost, StreamError, SystemShutdown, UndefinedCondition, UnsupportedEncoding, UnsupportedStanzaType, UnsupportedVersion, XMLNotWellFormed, base64, dispatcher, errno, isErrorNode, isResultNode, os, select, socket, time, ustr


Function Details [hide private]

temp_failure_retry(func, *args, **kwargs)

 

Variables Details [hide private]

DATA_RECEIVED

Value:
'DATA RECEIVED'

DATA_SENT

Value:
'DATA SENT'

DBG_CONNECT_PROXY

Value:
'CONNECTproxy'

DBG_SOCKET

Value:
'socket'

ERRORS

Value:
{'urn:ietf:params:xml:ns:xmpp-sasl aborted': ['',
                                              '',
                                              'The receiving entity ac\
knowledges an <abort/> element sent by the initiating entity; sent in \
reply to the <abort/> element.'],
 'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding': ['',
                                                         '',
                                                         'The data pro\
...

ERR_BAD_REQUEST

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas bad-request'

ERR_CONFLICT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas conflict'

ERR_FEATURE_NOT_IMPLEMENTED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas feature-not-implemented'

ERR_FORBIDDEN

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas forbidden'

ERR_GONE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas gone'

ERR_INTERNAL_SERVER_ERROR

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas internal-server-error'

ERR_ITEM_NOT_FOUND

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas item-not-found'

ERR_JID_MALFORMED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas jid-malformed'

ERR_NOT_ACCEPTABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-acceptable'

ERR_NOT_ALLOWED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-allowed'

ERR_NOT_AUTHORIZED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas not-authorized'

ERR_PAYMENT_REQUIRED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas payment-required'

ERR_RECIPIENT_UNAVAILABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas recipient-unavailable'

ERR_REDIRECT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas redirect'

ERR_REGISTRATION_REQUIRED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas registration-required'

ERR_REMOTE_SERVER_NOT_FOUND

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-not-found'

ERR_REMOTE_SERVER_TIMEOUT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas remote-server-timeout'

ERR_RESOURCE_CONSTRAINT

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas resource-constraint'

ERR_SERVICE_UNAVAILABLE

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas service-unavailable'

ERR_SUBSCRIPTION_REQUIRED

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas subscription-required'

ERR_UNDEFINED_CONDITION

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas undefined-condition'

ERR_UNEXPECTED_REQUEST

Value:
'urn:ietf:params:xml:ns:xmpp-stanzas unexpected-request'

NS_ACTIVITY

Value:
'http://jabber.org/protocol/activity'

NS_ADDRESS

Value:
'http://jabber.org/protocol/address'

NS_AGENTS

Value:
'jabber:iq:agents'

NS_AMP

Value:
'http://jabber.org/protocol/amp'

NS_AMP_ERRORS

Value:
'http://jabber.org/protocol/amp#errors'

NS_AUTH

Value:
'jabber:iq:auth'

NS_AVATAR

Value:
'http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'

NS_BIND

Value:
'urn:ietf:params:xml:ns:xmpp-bind'

NS_BROWSE

Value:
'jabber:iq:browse'

NS_BROWSING

Value:
'http://jabber.org/protocol/browsing'

NS_BYTESTREAM

Value:
'http://jabber.org/protocol/bytestreams'

NS_CAPS

Value:
'http://jabber.org/protocol/caps'

NS_CHATSTATES

Value:
'http://jabber.org/protocol/chatstates'

NS_CHATTING

Value:
'http://jabber.org/protocol/chatting'

NS_CLIENT

Value:
'jabber:client'

NS_COMMANDS

Value:
'http://jabber.org/protocol/commands'

NS_COMPONENT_1

Value:
'http://jabberd.jabberstudio.org/ns/component/1.0'

NS_COMPONENT_ACCEPT

Value:
'jabber:component:accept'

NS_COMPRESS

Value:
'http://jabber.org/protocol/compress'

NS_CONFERENCE

Value:
'jabber:x:conference'

NS_DATA

Value:
'jabber:x:data'

NS_DATA_LAYOUT

Value:
'http://jabber.org/protocol/xdata-layout'

NS_DATA_VALIDATE

Value:
'http://jabber.org/protocol/xdata-validate'

NS_DELAY

Value:
'jabber:x:delay'

NS_DELAY2

Value:
'urn:xmpp:delay'

NS_DIALBACK

Value:
'jabber:server:dialback'

NS_DISCO

Value:
'http://jabber.org/protocol/disco'

NS_DISCO_INFO

Value:
'http://jabber.org/protocol/disco#info'

NS_DISCO_ITEMS

Value:
'http://jabber.org/protocol/disco#items'

NS_ENCRYPTED

Value:
'jabber:x:encrypted'

NS_ESESSION

Value:
'http://www.xmpp.org/extensions/xep-0116.html#ns'

NS_ESESSION_INIT

Value:
'http://www.xmpp.org/extensions/xep-0116.html#ns-init'

NS_EVENT

Value:
'jabber:x:event'

NS_FEATURE

Value:
'http://jabber.org/protocol/feature-neg'

NS_FILE

Value:
'http://jabber.org/protocol/si/profile/file-transfer'

NS_GAMING

Value:
'http://jabber.org/protocol/gaming'

NS_GEOLOC

Value:
'http://jabber.org/protocol/geoloc'

NS_GMAILNOTIFY

Value:
'google:mail:notify'

NS_GROUPCHAT

Value:
'gc-1.0'

NS_GTALKSETTING

Value:
'google:setting'

NS_HTTP_AUTH

Value:
'http://jabber.org/protocol/http-auth'

NS_HTTP_BIND

Value:
'http://jabber.org/protocol/httpbind'

NS_IBB

Value:
'http://jabber.org/protocol/ibb'

NS_INVISIBLE

Value:
'presence-invisible'

NS_IQ

Value:
'iq'
</