Mercurial > libervia-backend
diff src/plugins/plugin_xep_0065.py @ 594:e629371a28d3
Fix pep8 support in src/plugins.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Fri, 18 Jan 2013 17:55:35 +0100 |
parents | beaf6bec2fcd |
children | 84a6e83157c2 |
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0065.py Mon Jan 21 00:59:50 2013 +0100 +++ b/src/plugins/plugin_xep_0065.py Fri Jan 18 17:55:35 2013 +0100 @@ -78,30 +78,28 @@ IQ_SET = '/iq[@type="set"]' NS_BS = 'http://jabber.org/protocol/bytestreams' BS_REQUEST = IQ_SET + '/query[@xmlns="' + NS_BS + '"]' -TIMEOUT = 60 #timeout for workflow - - +TIMEOUT = 60 # timeout for workflow PLUGIN_INFO = { -"name": "XEP 0065 Plugin", -"import_name": "XEP-0065", -"type": "XEP", -"protocols": ["XEP-0065"], -"main": "XEP_0065", -"handler": "yes", -"description": _("""Implementation of SOCKS5 Bytestreams""") + "name": "XEP 0065 Plugin", + "import_name": "XEP-0065", + "type": "XEP", + "protocols": ["XEP-0065"], + "main": "XEP_0065", + "handler": "yes", + "description": _("""Implementation of SOCKS5 Bytestreams""") } STATE_INITIAL = 0 -STATE_AUTH = 1 +STATE_AUTH = 1 STATE_REQUEST = 2 -STATE_READY = 3 +STATE_READY = 3 STATE_AUTH_USERPASS = 4 STATE_TARGET_INITIAL = 5 -STATE_TARGET_AUTH = 6 +STATE_TARGET_AUTH = 6 STATE_TARGET_REQUEST = 7 -STATE_TARGET_READY = 8 -STATE_LAST = 9 +STATE_TARGET_READY = 8 +STATE_LAST = 9 STATE_CONNECT_PENDING = STATE_LAST + 1 @@ -139,15 +137,14 @@ return hashlib.sha1((sid + from_jid.full() + to_jid.full()).encode('utf-8')).hexdigest() - class SOCKSv5(protocol.Protocol, FileSender): def __init__(self): debug(_("Protocol init")) self.state = STATE_INITIAL self.buf = "" - self.supportedAuthMechs = [ AUTHMECH_ANON ] - self.supportedAddrs = [ ADDR_DOMAINNAME ] - self.enabledCommands = [ CMD_CONNECT ] + self.supportedAuthMechs = [AUTHMECH_ANON] + self.supportedAddrs = [ADDR_DOMAINNAME] + self.enabledCommands = [CMD_CONNECT] self.peersock = None self.addressType = 0 self.requestType = 0 @@ -162,7 +159,7 @@ try: # Parse out data ver, nmethod = struct.unpack('!BB', self.buf[:2]) - methods = struct.unpack('%dB' % nmethod, self.buf[2:nmethod+2]) + methods = struct.unpack('%dB' % nmethod, self.buf[2:nmethod + 2]) # Ensure version is correct if ver != 5: @@ -171,7 +168,7 @@ return # Trim off front of the buffer - self.buf = self.buf[nmethod+2:] + self.buf = self.buf[nmethod + 2:] # Check for supported auth mechs for m in self.supportedAuthMechs: @@ -320,7 +317,7 @@ debug("connectRequested") # Check that this session is expected - if not self.factory.hash_sid_map.has_key(addr): + if addr not in self.factory.hash_sid_map: #no: we refuse it self.sendErrorReply(REPLY_CONN_REFUSED) return @@ -374,14 +371,13 @@ if self.state == STATE_TARGET_AUTH: ver, method = struct.unpack('!BB', buf) self.buf = self.buf[2:] - if ver!=SOCKS5_VER or method!=AUTHMECH_ANON: + if ver != SOCKS5_VER or method != AUTHMECH_ANON: self.transport.loseConnection() else: self._makeRequest() if self.state == STATE_TARGET_REQUEST: self._parseRequestReply() - def clientConnectionLost(self, reason): debug("clientConnectionLost") self.transport.loseConnection() @@ -390,7 +386,7 @@ debug("connectionLost") if self.state != STATE_CONNECT_PENDING: self.transport.unregisterProducer() - if self.peersock != None: + if self.peersock is not None: self.peersock.peersock = None self.peersock.transport.unregisterProducer() self.peersock = None @@ -405,10 +401,11 @@ self.finishedCb = finishedCb def startedConnecting(self, connector): - debug (_("Socks 5 server connection started")) + debug(_("Socks 5 server connection started")) def clientConnectionLost(self, connector, reason): - debug (_("Socks 5 server connection lost (reason: %s)"), reason) + debug(_("Socks 5 server connection lost (reason: %s)"), reason) + class Socks5ClientFactory(protocol.ClientFactory): protocol = SOCKSv5 @@ -432,11 +429,11 @@ self.profile = profile def startedConnecting(self, connector): - debug (_("Socks 5 client connection started")) + debug(_("Socks 5 client connection started")) def clientConnectionLost(self, connector, reason): - debug (_("Socks 5 client connection lost (reason: %s)"), reason) - self.finishedCb(self.sid, reason.type == jab_error.ConnectionDone, self.profile) #TODO: really check if the state is actually successful + debug(_("Socks 5 client connection lost (reason: %s)"), reason) + self.finishedCb(self.sid, reason.type == jab_error.ConnectionDone, self.profile) # TODO: really check if the state is actually successful class XEP_0065(object): @@ -465,7 +462,7 @@ info(_("Plugin XEP_0065 initialization")) #session data - self.hash_sid_map = {} #key: hash of the transfer session, value: (session id, profile) + self.hash_sid_map = {} # key: hash of the transfer session, value: (session id, profile) self.host = host debug(_("registering")) @@ -486,7 +483,7 @@ client = self.host.getClient(profile) if not client: raise ProfileNotInCacheError - client.xep_0065_current_stream = {} #key: stream_id, value: data(dict) + client.xep_0065_current_stream = {} # key: stream_id, value: data(dict) def getExternalIP(self): """Return IP visible from outside, by asking to a website""" @@ -518,15 +515,15 @@ if not client: warning(_("Client no more in cache")) return - if not client.xep_0065_current_stream.has_key(sid): + if sid not in client.xep_0065_current_stream: warning(_("kill id called on a non existant id")) return - if client.xep_0065_current_stream[sid].has_key("observer_cb"): + if "observer_cb" in client.xep_0065_current_stream[sid]: xmlstream = client.xep_0065_current_stream[sid]["xmlstream"] xmlstream.removeObserver(client.xep_0065_current_stream[sid]["event_data"], client.xep_0065_current_stream[sid]["observer_cb"]) if client.xep_0065_current_stream[sid]['timer'].active(): client.xep_0065_current_stream[sid]['timer'].cancel() - if client.xep_0065_current_stream[sid].has_key("size"): + if "size" in client.xep_0065_current_stream[sid]: self.host.removeProgressCB(sid, profile) file_obj = client.xep_0065_current_stream[sid]['file_obj'] @@ -544,7 +541,7 @@ else: failure_cb(sid, file_obj, NS_BS, failure_reason, profile) - def startStream(self, file_obj, to_jid, sid, length, successCb, failureCb, size = None, profile=None): + def startStream(self, file_obj, to_jid, sid, length, successCb, failureCb, size=None, profile=None): """Launch the stream workflow @param file_obj: file_obj to send @param to_jid: JID of the recipient @@ -559,7 +556,7 @@ error(_("Unknown profile, this should not happen")) raise ProfileNotInCacheError - if length != None: + if length is not None: error(_('stream length not managed yet')) return @@ -579,7 +576,7 @@ if size: data["size"] = size self.host.registerProgressCB(sid, self.getProgress, profile) - iq_elt = jabber_client.IQ(xmlstream,'set') + iq_elt = jabber_client.IQ(xmlstream, 'set') iq_elt["from"] = profile_jid.full() iq_elt["to"] = to_jid.full() query_elt = iq_elt.addElement('query', NS_BS) @@ -638,7 +635,7 @@ factory = Socks5ClientFactory(client.xep_0065_current_stream, sid, None, self.activateProxyStream, lambda sid, success, profile: self._killId(sid, success, profile=profile), True, profile) reactor.connectTCP(proxy_host, int(proxy_port), factory) else: - data["start_transfer_cb"](file_obj) #We now activate the stream + data["start_transfer_cb"](file_obj) # We now activate the stream def activateProxyStream(self, sid, iq_id, start_transfer_cb, profile): debug(_("activating stream")) @@ -648,7 +645,7 @@ data = client.xep_0065_current_stream[sid] profile_jid, xmlstream = self.host.getJidNStream(profile) - iq_elt = client.IQ(xmlstream,'set') + iq_elt = client.IQ(xmlstream, 'set') iq_elt["from"] = profile_jid.full() iq_elt["to"] = self.host.memory.getParamA("Proxy", "File Transfer", profile_key=profile) query_elt = iq_elt.addElement('query', NS_BS) @@ -687,7 +684,6 @@ data["success_cb"] = success_cb data["failure_cb"] = failure_cb - def streamQuery(self, iq_elt, profile): """Get file using byte stream""" debug(_("BS stream query")) @@ -717,7 +713,7 @@ self.sendBadRequestError(iq_elt['id'], iq_elt['from'], xmlstream) return - streamhost_elt = streamhost_elts[0] #TODO: manage several streamhost elements case + streamhost_elt = streamhost_elts[0] # TODO: manage several streamhost elements case sh_host = streamhost_elt.getAttribute("host") sh_port = streamhost_elt.getAttribute("port") sh_jid = streamhost_elt.getAttribute("jid") @@ -728,7 +724,7 @@ client.xep_0065_current_stream[sid]["streamhost"] = (sh_host, sh_port, sh_jid) - info (_("Stream proposed: host=[%(host)s] port=[%(port)s]") % {'host':sh_host, 'port':sh_port}) + info(_("Stream proposed: host=[%(host)s] port=[%(port)s]") % {'host': sh_host, 'port': sh_port}) factory = Socks5ClientFactory(client.xep_0065_current_stream, sid, iq_elt["id"], self.activateStream, lambda sid, success, profile: self._killId(sid, success, profile=profile), profile=profile) reactor.connectTCP(sh_host, int(sh_port), factory) @@ -760,7 +756,7 @@ result['to'] = to_jid error_el = result.addElement('error') error_el['type'] = 'modify' - error_el.addElement(('urn:ietf:params:xml:ns:xmpp-stanzas','not-acceptable')) + error_el.addElement(('urn:ietf:params:xml:ns:xmpp-stanzas', 'not-acceptable')) xmlstream.send(result) def sendBadRequestError(self, iq_id, to_jid, xmlstream): @@ -774,9 +770,10 @@ result['to'] = to_jid error_el = result.addElement('error') error_el['type'] = 'cancel' - error_el.addElement(('urn:ietf:params:xml:ns:xmpp-stanzas','bad-request')) + error_el.addElement(('urn:ietf:params:xml:ns:xmpp-stanzas', 'bad-request')) xmlstream.send(result) + class XEP_0065_handler(XMPPHandler): implements(iwokkel.IDisco) @@ -801,10 +798,9 @@ if len(streamhost_elts) != 1: warning(_("Multiple streamhost elements in proxy not managed, keeping only the first one")) streamhost_elt = streamhost_elts[0] - proxy = self.host.memory.setParam("Proxy", streamhost_elt.getAttribute("jid",""), "File Transfer", self.parent.profile) - proxy = self.host.memory.setParam("Proxy host", streamhost_elt.getAttribute("host",""), "File Transfer", self.parent.profile) - proxy = self.host.memory.setParam("Proxy port", streamhost_elt.getAttribute("port",""), "File Transfer", self.parent.profile) - + proxy = self.host.memory.setParam("Proxy", streamhost_elt.getAttribute("jid", ""), "File Transfer", self.parent.profile) + proxy = self.host.memory.setParam("Proxy host", streamhost_elt.getAttribute("host", ""), "File Transfer", self.parent.profile) + proxy = self.host.memory.setParam("Proxy port", streamhost_elt.getAttribute("port", ""), "File Transfer", self.parent.profile) def connectionInitialized(self): def after_init(ignore): @@ -812,20 +808,17 @@ if not proxy_ent: debug(_("No proxy found on this server")) return - iq_elt = jabber_client.IQ(self.parent.xmlstream,'get') + iq_elt = jabber_client.IQ(self.parent.xmlstream, 'get') iq_elt["to"] = proxy_ent.full() query_elt = iq_elt.addElement('query', NS_BS) iq_elt.addCallback(self._proxyDataResult) iq_elt.send() - - self.xmlstream.addObserver(BS_REQUEST, self.plugin_parent.streamQuery, profile = self.parent.profile) - proxy = self.host.memory.getParamA("Proxy", "File Transfer", profile_key = self.parent.profile) + self.xmlstream.addObserver(BS_REQUEST, self.plugin_parent.streamQuery, profile=self.parent.profile) + proxy = self.host.memory.getParamA("Proxy", "File Transfer", profile_key=self.parent.profile) if not proxy: self.parent.client_initialized.addCallback(after_init) - - def getDiscoInfo(self, requestor, target, nodeIdentifier=''): return [disco.DiscoFeature(NS_BS)]