Package nbxmpp
[hide private]
[frames] | no frames]

Package nbxmpp

source code

This is a fork of the xmpppy jabber python library. Most of the code is inherited but has been extended by implementation of non-blocking transports and new features like BOSH.

Most of the xmpp classes are ancestors of PlugIn class to share a single set of methods in order to compile a featured and extensible XMPP client.

Thanks and credits to the xmpppy developers. See: http://xmpppy.sourceforge.net/

Submodules [hide private]
  • nbxmpp.auth_nb: Provides plugs for SASL and NON-SASL authentication mechanisms. Can be used both for client and transport authentication
  • nbxmpp.bosh
  • nbxmpp.c14n: XML canonicalisation methods (for XEP-0116)
  • nbxmpp.client_nb: Client class establishs connection to XMPP Server and handles authentication
  • nbxmpp.dispatcher_nb: Main xmpp decision making logic. Provides library with methods to assign different handlers to different XMPP stanzas and namespaces
  • nbxmpp.features_nb: Different stuff that wasn't worth separating it into modules (Registration, Privacy Lists, ...)
  • nbxmpp.idlequeue: Idlequeues are Gajim's network heartbeat. Transports can be plugged as idle objects and be informed about possible IO
  • nbxmpp.plugin: Provides PlugIn class functionality to develop extentions for xmpppy
  • nbxmpp.protocol: Protocol module contains tools that are needed for processing of xmpp-related data structures, including jabber-objects like JID or different stanzas and sub- stanzas) handling routines
  • nbxmpp.proxy_connectors: Module containing classes for proxy connecting. So far its HTTP CONNECT and SOCKS5 proxy
  • nbxmpp.roster_nb: Simple roster implementation. Can be used though for different tasks like mass-renaming of contacts.
  • nbxmpp.simplexml: Simplexml module provides xmpppy library with all needed tools to handle XML nodes and XML streams. I'm personally using it in many other separate projects. It is designed to be as standalone as possible
  • nbxmpp.smacks
  • nbxmpp.stringprepare
  • nbxmpp.tls_nb
  • nbxmpp.transports_nb: Transports are objects responsible for connecting to XMPP server and putting data to wrapped sockets in in desired form (SSL, TLS, TCP, for HTTP proxy, for SOCKS5 proxy...)

Variables [hide private]
  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 ...
  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...
  __package__ = 'nbxmpp'
  name = 'SASL_TEMPORARY_AUTH_FAILURE'

Imports: NS_MUC_ADMIN, NS_FILE, Error, NS_PUBSUB_EVENT, NS_RECEIPTS, NS_PING, Conflict, NS_PHYSLOC, NS_CHATTING, NS_COMPRESS, NS_HASHES_SHA1, NS_AGENTS, NS_CAPTCHA, NS_MOOD, UnsupportedVersion, NS_BROWSING, HostUnknown, NS_MUC_OWNER, NS_ACTIVITY, NS_ARCHIVE_MANUAL, NS_JINGLE_RTP_AUDIO, string, NS_PRESENCE, NS_CHATSTATES, NS_LAST, isErrorNode, Acks, NS_GROUPCHAT, Protocol, NS_GATEWAY, NS_DISCO_ITEMS, NS_BOOKMARKS, ConnectionTimeout, NS_BIND, NS_JINGLE_ERRORS, NS_XMPP_STREAMS, NS_IQ, NS_CLIENT, NS_FORWARD, NS_EVENT, NS_JINGLE_IBB, NS_DATA_LAYOUT, NS_TUNE, InvalidID, stream_exceptions, xmpp_stanza_error_conditions, NS_HASHES_SHA256, NS_CARBONS, NS_ROSTER, NS_STANZAS, NS_HTTP_BIND, isResultNode, NS_TIME_REVISED, UnsupportedStanzaType, NS_MUC_UNIQUE, NS_PUBKEY_PUBKEY, NS_AMP, NS_CONFERENCE, NS_DISCO, NS_RSM, NS_STREAM, NS_HASHES, HostGone, NS_ESESSION, NotAuthorized, XMLNotWellFormed, NS_JINGLE_FILE_TRANSFER, NS_LOCATION, NS_ARCHIVE_AUTO, NS_DIALBACK, NS_AUTH, NS_MUC_CONFIG, NS_VCARD, DataForm, NS_XHTML, InvalidXML, NS_SI, PolicyViolation, NS_SASL, NS_JINGLE_RAW_UDP, NS_SESSION, StreamError, NS_CAPS, NS_PUBSUB_OWNER, NS_HASHES_SHA512, NS_AMP_ERRORS, NS_BROWSE, NS_ROSTERX, NS_TLS, NS_ATTENTION, NS_DATA, NS_SERVER, ImproperAddressing, NS_JINGLE_ICE_UDP, NS_IBB, DataField, NS_TIME, NS_PROFILE, Message, NS_SECLABEL, NS_XHTML_IM, NS_PRIVACY, NS_GMAILNOTIFY, BadNamespacePrefix, NS_CONDITIONS, UnsupportedEncoding, NS_FEATURE, SeeOtherHost, Node, NS_JINGLE_RTP, SystemShutdown, NS_WAITINGLIST, NS_ARCHIVE_MANAGE, NS_SSN, NS_DELAY2, InvalidNamespace, NS_COMPONENT_1, Iq, NS_ARCHIVE_PREF, Hashes, NS_INVISIBLE, NS_JINGLE_RTP_VIDEO, NS_PRIVATE, NS_VERSION, NS_GAMING, NS_OFFLINE, NS_MUC_USER, NS_VCARD_UPDATE, NS_ATOM, ascii_upper, NS_STREAMS, hashlib, NS_GTALKSETTING, InvalidFrom, NS_ENCRYPTED, UndefinedCondition, NS_RPC, NS_STANZA_CRYPTO, NS_SIGNED, NS_NICK, NS_PUBSUB, NS_MESSAGE, NS_JINGLE_XTLS, NS_DATA_MEDIA, NS_REGISTER, JID, NS_BYTESTREAM, NS_DELAY, NS_VACATION, NS_PUBSUB_PUBLISH_OPTIONS, NS_GEOLOC, NS_ARCHIVE, NS_ROSTERNOTES, NS_SI_PUB, NS_DATA_VALIDATE, NS_ESESSION_INIT, NS_PUBKEY_REVOKE, NS_JINGLE_BYTESTREAM, NodeBuilder, xmpp_stream_error_conditions, NS_ROSTER_VER, NS_VIEWING, NS_COMMANDS, NS_AVATAR, NodeProcessed, Presence, ResourceConstraint, NS_STREAM_MGMT, RemoteConnectionFailed, time, NS_SEARCH, BOSHBody, NS_ADDRESS, NS_COMPONENT_ACCEPT, RestrictedXML, NS_SECLABEL_CATALOG, NS_DISCO_INFO, sasl_error_conditions, BadFormat, InternalServerError, NS_PUBKEY_ATTEST, NS_MUC, NS_JINGLE, NS_BOB, NS_HASHES_MD5, NS_HTTP_AUTH, ErrorNode, simplexml, protocol, auth_nb, transports_nb, roster_nb, dispatcher_nb, features_nb, idlequeue, bosh, tls_nb, proxy_connectors, NonBlockingClient, PlugIn, Smacks, client_nb, plugin, smacks


Variables Details [hide private]

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'

SASL_ABORTED

Value:
'urn:ietf:params:xml:ns:xmpp-sasl aborted'

SASL_INCORRECT_ENCODING

Value:
'urn:ietf:params:xml:ns:xmpp-sasl incorrect-encoding'

SASL_INVALID_AUTHZID

Value:
'urn:ietf:params:xml:ns:xmpp-sasl invalid-authzid'

SASL_INVALID_MECHANISM

Value:
'urn:ietf:params:xml:ns:xmpp-sasl invalid-mechanism'

SASL_MECHANISM_TOO_WEAK

Value:
'urn:ietf:params:xml:ns:xmpp-sasl mechanism-too-weak'

SASL_NOT_AUTHORIZED

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

SASL_TEMPORARY_AUTH_FAILURE

Value:
'urn:ietf:params:xml:ns:xmpp-sasl temporary-auth-failure'

STREAM_BAD_FORMAT

Value:
'urn:ietf:params:xml:ns:xmpp-streams bad-format'

STREAM_BAD_NAMESPACE_PREFIX

Value:
'urn:ietf:params:xml:ns:xmpp-streams bad-namespace-prefix'

STREAM_CONFLICT

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

STREAM_CONNECTION_TIMEOUT

Value:
'urn:ietf:params:xml:ns:xmpp-streams connection-timeout'

STREAM_HOST_GONE

Value:
'urn:ietf:params:xml:ns:xmpp-streams host-gone'

STREAM_HOST_UNKNOWN

Value:
'urn:ietf:params:xml:ns:xmpp-streams host-unknown'

STREAM_IMPROPER_ADDRESSING

Value:
'urn:ietf:params:xml:ns:xmpp-streams improper-addressing'

STREAM_INTERNAL_SERVER_ERROR

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

STREAM_INVALID_FROM

Value:
'urn:ietf:params:xml:ns:xmpp-streams invalid-from'

STREAM_INVALID_ID

Value:
'urn:ietf:params:xml:ns:xmpp-streams invalid-id'

STREAM_INVALID_NAMESPACE

Value:
'urn:ietf:params:xml:ns:xmpp-streams invalid-namespace'

STREAM_INVALID_XML

Value:
'urn:ietf:params:xml:ns:xmpp-streams invalid-xml'

STREAM_NOT_AUTHORIZED

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

STREAM_POLICY_VIOLATION

Value:
'urn:ietf:params:xml:ns:xmpp-streams policy-violation'

STREAM_REMOTE_CONNECTION_FAILED

Value:
'urn:ietf:params:xml:ns:xmpp-streams remote-connection-failed'

STREAM_RESOURCE_CONSTRAINT

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

STREAM_RESTRICTED_XML

Value:
'urn:ietf:params:xml:ns:xmpp-streams restricted-xml'

STREAM_SEE_OTHER_HOST

Value:
'urn:ietf:params:xml:ns:xmpp-streams see-other-host'

STREAM_SYSTEM_SHUTDOWN

Value:
'urn:ietf:params:xml:ns:xmpp-streams system-shutdown'

STREAM_UNDEFINED_CONDITION

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

STREAM_UNSUPPORTED_ENCODING

Value:
'urn:ietf:params:xml:ns:xmpp-streams unsupported-encoding'

STREAM_UNSUPPORTED_STANZA_TYPE

Value:
'urn:ietf:params:xml:ns:xmpp-streams unsupported-stanza-type'

STREAM_UNSUPPORTED_VERSION

Value:
'urn:ietf:params:xml:ns:xmpp-streams unsupported-version'

STREAM_XML_NOT_WELL_FORMED

Value:
'urn:ietf:params:xml:ns:xmpp-streams xml-not-well-formed'

__package__

Value:
'nbxmpp'

name

Value:
'SASL_TEMPORARY_AUTH_FAILURE'