def _start_session(): # transport_udp_session.SetStateChangedCallbackFunc(_state_changed) address = (sys.argv[2], int(sys.argv[3])) sess = transport_udp_session.open_session(address) filename = sys.argv[4] loop_delay = None if len(sys.argv)<6 else int(sys.argv[5]) transport_udp_session._StateChangedCallbackFunc = lambda index, old, new: _state_changed(index, address[0], new, filename, loop_delay) sess.automat('init', None)
def doCreateNewUDPSession(self, arg): for idurl in arg[1]: if idurl == misc.getLocalID(): continue if idurl not in arg[0]: ident = contacts.getContact(idurl) if ident is None: continue address = ident.getProtoContact('udp') if address is None: continue try: proto, ip, port, filename = nameurl.UrlParse(address) address = (ip, int(port)) except: dhnio.DprintException() continue address = self.remapAddress(address) sess = transport_udp_session.open_session(address) dhnio.Dprint(8, 'transport_udp.doCreateNewUDPSession %s with [%s]' % (sess.name, nameurl.GetName(idurl))) sess.automat('init', idurl)
def doStartAllUDPSessions(self, arg): all = contacts.getContactsAndCorrespondents() if not self.debug: all.append(settings.CentralID()) for idurl in all: ident = contacts.getContact(idurl) if ident is None: continue address = ident.getProtoContact('udp') if address is None: continue try: proto, ip, port, filename = nameurl.UrlParse(address) address = (ip, int(port)) except: dhnio.DprintException() continue address = self.remapAddress(address) sess = transport_udp_session.open_session(address) dhnio.Dprint(8, 'transport_udp.doStartAllUDPSessions init %s with [%s]' % (sess.name, nameurl.GetName(idurl))) sess.automat('init', idurl)
def recreate(idurl, count): if count > 5: return ident = contacts.getContact(idurl) if ident is None: return address = ident.getProtoContact('udp') if address is None: return try: ip, port = address[6:].split(':') address = (ip, int(port)) except: dhnio.DprintException() return if transport_udp_session.is_session_opened(address): reactor.callLater(1, recreate, idurl, count+1) dhnio.Dprint(8, 'transport_udp.doRecreateUDPSession.recreate wait 1 second to finish old session with %s' % str(address)) return address_local = self.remapAddress(address) sess = transport_udp_session.open_session(address_local) dhnio.Dprint(8, 'transport_udp.doRecreateUDPSession init %s with [%s]' % (sess.name, nameurl.GetName(idurl))) sess.automat('init', idurl)
def start_session(address_local, idurl): sess = transport_udp_session.open_session(address_local) dhnio.Dprint(8, 'transport_udp.doRestartUDPSession.start_session send "init" to %s with [%s]' % (sess.name, nameurl.GetName(idurl))) sess.automat('init', idurl)