示例#1
0
 def cancel_outbox_file(self, host, filename):
     """
     """
     from transport.udp import udp_session
     ok = False
     for sess in udp_session.sessions().values():
         if sess.peer_id != host:
             continue
         i = 0
         while i < len(sess.file_queue.outboxQueue):
             fn, descr, result_defer, keep_alive = sess.file_queue.outboxQueue[
                 i]
             if fn == filename:
                 if _Debug:
                     lg.out(
                         14,
                         'udp_interface.cancel_outbox_file removed %s in %s'
                         % (os.path.basename(fn), sess))
                 sess.file_queue.outboxQueue.pop(i)
                 ok = True
             else:
                 i += 1
     udp_session.remove_pending_outbox_file(host, filename)
     #        for fn, descr, result_defer, single in sess.file_queue.outboxQueue:
     #            if fn == filename and sess.peer_id == host:
     #                lg.out(6, 'udp_interface.cancel_outbox_file    host=%s  want to close session' % host)
     #                sess.automat('shutdown')
     #                return True
     return ok
示例#2
0
    def cancel_outbox_file(self, host, filename):
        """
        
        """
        from transport.udp import udp_session
        ok = False
        for sess in udp_session.sessions().values():
            if sess.peer_id != host:
                continue
            i = 0
            while i < len(sess.file_queue.outboxQueue):
                fn, descr, result_defer, single = sess.file_queue.outboxQueue[
                    i]
                if fn == filename:
                    if _Debug:
                        lg.out(
                            14, 'udp_interface.cancel_outbox_file removed %s in %s' %
                            (os.path.basename(fn), sess))
                    sess.file_queue.outboxQueue.pop(i)
                    ok = True
                else:
                    i += 1
        udp_session.remove_pending_outbox_file(host, filename)
#        for fn, descr, result_defer, single in sess.file_queue.outboxQueue:
#            if fn == filename and sess.peer_id == host:
#                lg.out(6, 'udp_interface.cancel_outbox_file    host=%s  want to close session' % host)
#                sess.automat('shutdown')
#                return True
        return ok
示例#3
0
 def cancel_file_sending(self, transferID):
     """
     """
     from transport.udp import udp_session
     for sess in udp_session.sessions().values():
         for out_file in sess.file_queue.outboxFiles.values():
             if out_file.transfer_id and out_file.transfer_id == transferID:
                 out_file.cancel()
                 return True
     return False
示例#4
0
 def doDisconnect(self, arg):
     """
     Action method.
     """
     from transport.udp import udp_stream
     lg.out(
         12,
         'udp_node.doDisconnect going to close %d sessions and %d connectors'
         % (len(udp_session.sessions().values()),
            len(udp_connector.connectors().values())))
     udp_stream.stop_process_streams()
     udp_session.stop_process_sessions()
     for s in udp_session.sessions().values():
         if _Debug:
             lg.out(_DebugLevel,
                    'udp_node.doShutdown sends "shutdown" to %s' % s)
         s.automat('shutdown')
     for c in udp_connector.connectors().values():
         c.automat('abort')
     self.automat('disconnected')
示例#5
0
 def cancel_file_sending(self, transferID):
     """
     
     """
     from transport.udp import udp_session
     for sess in udp_session.sessions().values():
         for out_file in sess.file_queue.outboxFiles.values():
             if out_file.transfer_id and out_file.transfer_id == transferID:
                 out_file.cancel()
                 return True
     return False
示例#6
0
 def doDisconnect(self, arg):
     """
     Action method.
     """
     from transport.udp import udp_stream
     lg.out(
         12, 'udp_node.doDisconnect going to close %d sessions and %d connectors' %
         (len(
             udp_session.sessions().values()), len(
             udp_connector.connectors().values())))
     udp_stream.stop_process_streams()
     udp_session.stop_process_sessions()
     for s in udp_session.sessions().values():
         if _Debug:
             lg.out(
                 _DebugLevel,
                 'udp_node.doShutdown sends "shutdown" to %s' %
                 s)
         s.automat('shutdown')
     for c in udp_connector.connectors().values():
         c.automat('abort')
     self.automat('disconnected')
 def _try_reconnect():
     sess = udp_session.get_by_peer_id(sys.argv[2])
     reconnect = False
     if not sess:
         reconnect = True
         print 'sessions', udp_session.sessions_by_peer_id().keys()
         print map(lambda s: s.peer_id, udp_session.sessions().values())
     else:
         if sess.state != 'CONNECTED':
             print 'state: ', sess.state
             reconnect = True
     if reconnect:
         print 'reconnect', sess
         udp_session.add_pending_outbox_file(
             sys.argv[1] + '.signed', sys.argv[2], 'descr', Deferred(), False)
         udp_node.A('connect', sys.argv[2])
     reactor.callLater(0.5, _try_reconnect)
示例#8
0
 def _try_reconnect():
     sess = udp_session.get_by_peer_id(sys.argv[2])
     reconnect = False
     if not sess:
         reconnect = True
         print 'sessions', udp_session.sessions_by_peer_id().keys()
         print map(lambda s: s.peer_id,
                   udp_session.sessions().values())
     else:
         if sess.state != 'CONNECTED':
             print 'state: ', sess.state
             reconnect = True
     if reconnect:
         print 'reconnect', sess
         udp_session.add_pending_outbox_file(
             sys.argv[1] + '.signed', sys.argv[2], 'descr',
             Deferred(), False)
         udp_node.A('connect', sys.argv[2])
     reactor.callLater(0.5, _try_reconnect)
示例#9
0
 def list_sessions(self):
     """
     """
     from transport.udp import udp_session
     return list(udp_session.sessions().values())
示例#10
0
 def list_sessions(self):
     """
     
     """
     from transport.udp import udp_session
     return udp_session.sessions().values()