def _try_connect(): if udp_node.A().state == 'LISTEN': print('connect') gateway.stop_packets_timeout_loop() 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(5, _try_reconnect) else: reactor.callLater(1, _try_connect)
def send_file(self, remote_idurl, filename, host, description=''): """ """ from transport.udp import udp_session from transport.udp import udp_node # lg.out(20, 'udp_interface.send_file %s %s %s' % (filename, host, description)) result_defer = Deferred() # if udp_node.A().state not in ['LISTEN', 'DHT_READ',]: # result_defer.callback(False) # lg.out(4, 'udp_interface.send_file WARNING udp_node state is %s' % udp_node.A().state) # return result_defer active_sessions = udp_session.get_by_peer_id(host) if active_sessions: if description.startswith('Identity') or description.startswith( 'Ack'): active_sessions[0].file_queue.insert_outbox_file( filename, description, result_defer, keep_alive=True) else: active_sessions[0].file_queue.append_outbox_file( filename, description, result_defer, keep_alive=True) else: udp_session.add_pending_outbox_file(filename, host, description, result_defer, keep_alive=True) udp_node.A('connect', host) return result_defer
def disconnect(self): """ """ from transport.udp import udp_node if _Debug: lg.out(4, 'udp_interface.disconnect') udp_node.A('go-offline') return succeed(True)
def connect(self, options): """ """ from transport.udp import udp_node if _Debug: lg.out(8, 'udp_interface.connect %s' % str(options)) udp_node.A('go-online', options) return True
def connect_to_host(self, host=None, idurl=None): """ """ from transport.udp import udp_node if not host: host = idurl_to_id(idurl) if _Debug: lg.out(12, 'udp_interface.connect %s' % host) udp_node.A('connect', host)
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)