def connectionMade(self): transport_control.log('ssh', 'new income connection') dhnio.Dprint(14, 'transport_ssh.MyReceiveFilesSubsistem.connectionMade') # self.fout, self.filename = tempfile.mkstemp(".dhn-ssh-in") self.fout, self.filename = tmpfile.make("ssh-in") self.total_size = 0 self.stop_defer = self.transport.session.avatar.stop_defer
def success(src, idurl, host, port, conn): global _LastPingTimeDict global _ConnectionsDict if len(src) == 0: increase_receiving_delay(idurl) else: parts = src.splitlines() dhnio.Dprint(14, 'transport_http.receive.success %d bytes in %d parts from %s (%s:%s)' % (len(src), len(parts), idurl, host, port)) for part64 in parts: try: part = base64.b64decode(part64.strip()) except: dhnio.Dprint(14, 'transport_http.receive.success ERROR in base64.b64decode()') # dhnio.Dprint(1, 'len(part64)=%d' % len(part64)) # dhnio.Dprint(1, 'len(part64.strip())=%d' % len(part64.strip())) # dhnio.Dprint(1, 'part64=[%s]' % part64) decrease_receiving_delay(idurl) continue # fd, filename = tempfile.mkstemp(".dhn-http-in") fd, filename = tmpfile.make("http-in") os.write(fd, part) os.close(fd) decrease_receiving_delay(idurl) transport_control.receiveStatusReport( filename, 'finished', 'http', host+':'+port,) transport_control.log('http', 'finish connection with %s:%s ' % (host, port)) conn.disconnect() _ConnectionsDict.pop(idurl, None)
def success(src, idurl, host, port, conn): global _LastPingTimeDict global _ConnectionsDict if len(src) == 0: increase_receiving_delay(idurl) else: parts = src.splitlines() lg.out(14, 'http_node.receive.success %d bytes in %d parts from %s (%s:%s)' % (len(src), len(parts), idurl, host, port)) for part64 in parts: try: part = base64.b64decode(part64.strip()) except: lg.out(14, 'http_node.receive.success ERROR in base64.b64decode()') # lg.out(1, 'len(part64)=%d' % len(part64)) # lg.out(1, 'len(part64.strip())=%d' % len(part64.strip())) # lg.out(1, 'part64=[%s]' % part64) decrease_receiving_delay(idurl) continue # fd, filename = tempfile.mkstemp(".dhn-http-in") fd, filename = tmpfile.make("http-in", extension='.http') os.write(fd, part) os.close(fd) decrease_receiving_delay(idurl) transport_control.receiveStatusReport( filename, 'finished', 'http', host+':'+port,) transport_control.log('http', 'finish connection with %s:%s ' % (host, port)) conn.disconnect() _ConnectionsDict.pop(idurl, None)
def process_msg(self, msg): dhnio.Dprint(12, 'transport_email.process_msg') take = False if msg['Subject'] == 'datahaven_transport': take = True # fout, self.current_filename = tempfile.mkstemp(".dhn-email-in") fout, self.current_filename = tmpfile.make("email-in") dhnio.Dprint(8, 'transport_email.message from: ' + str(msg['From'])) transport_control.log('email', 'receiving file from ' + str(msg['From'])) for part in msg.walk(): if part.get_content_maintype() == 'multipart': continue src = part.get_payload(decode=True) src = src[:-3] if src != None: os.write(fout,src) os.close(fout) ## transport_control.log('email', 'download... ') poll().receive() if take: self.delete(self.cur_message).addCallbacks( self.delete_msg, self.err_delete_msg) else: self.cur_message += 1 if self.cur_message < self.num_messages: self.retrieve(self.cur_message).addCallbacks( self.do_retrieve_msg, self.err_retrieve_msg) else: self.no_messages()
def __init__(self, protocol, length): global _RegisterTransferFunc global _ByTransferID self.protocol = protocol self.receivedBytes = 0 self.length = length self.fd, self.filename = tmpfile.make("tcp-in") self.peer = self.protocol.remoteaddress # self.protocol.transport.getPeer() self.transfer_id = _RegisterTransferFunc( 'receive', self.peer, self.getReceivedBytes, self.filename, -1) _ByTransferID[self.transfer_id] = self.protocol
def __init__(self, peer, file_id, num_blocks): global _RegisterTransferFunc self.fd, self.filename = tmpfile.make("udp-in") self.peer = peer self.file_id = file_id self.num_blocks = num_blocks self.blocks = {} self.bytes_received = 0 self.bytes_extra = 0 self.transfer_id = None self.started = time.time() if _RegisterTransferFunc: self.transfer_id = _RegisterTransferFunc('receive', self.peer.remote_address, self.get_bytes_received, self.filename, -1, '')
def _send_servers(): import tmpfile, misc, nameurl, settings, transport_tcp sendfile, sendfilename = tmpfile.make("propagate") os.close(sendfile) LocalIdentity = misc.getLocalIdentity() dhnio.WriteFile(sendfilename, LocalIdentity.serialize()) dlist = [] for idurl in LocalIdentity.sources: # sources for out identity are servers we need to send to protocol, host, port, filename = nameurl.UrlParse(idurl) port = settings.IdentityServerPort() d = Deferred() transport_tcp.sendsingle(sendfilename, host, port, do_status_report=False, result_defer=d, description='Identity') dlist.append(d) dl = DeferredList(dlist, consumeErrors=True) print '+++++ IDENTITY SENT TO %s:%s' % (host, port) return dl