Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
 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)
Exemple #5
0
 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)