예제 #1
0
 def doSetUp(self, arg):
     if _Debug:
         lg.out(_DebugLevel, 'network_connector.doSetUp')
     # if driver.is_on('service_identity_server'):
     #     if settings.enableIdServer():
     #         from userid import id_server
     #         id_server.A('start', (settings.getIdServerWebPort(),
     #                               settings.getIdServerTCPPort()))
     if driver.is_on('service_service_entangled_dht'):
         from dht import dht_service
         dht_service.reconnect()
     if driver.is_on('service_ip_port_responder'):
         from stun import stun_server
         udp_port = int(settings.getUDPPort())
         stun_server.A('start', udp_port)
     if driver.is_on('service_my_ip_port'):
         from stun import stun_client
         stun_client.A().dropMyExternalAddress()
         stun_client.A('start')
     if driver.is_on('service_private_messages'):
         from chat import nickname_holder
         nickname_holder.A('set', None)
     # if driver.is_on('service_gateway'):
     #     from transport import gateway
     #     gateway.start()
     self.automat('network-up')
예제 #2
0
 def doSetUp(self, *args, **kwargs):
     if _Debug:
         lg.out(_DebugLevel, 'network_connector.doSetUp')
     if driver.is_on('service_udp_datagrams'):
         from lib import udp
         udp_port = settings.getUDPPort()
         if not udp.proto(udp_port):
             try:
                 udp.listen(udp_port)
             except:
                 lg.exc()
     if driver.is_on('service_service_entangled_dht'):
         from dht import dht_service
         dht_service.reconnect()
     if driver.is_on('service_ip_port_responder'):
         from stun import stun_server
         udp_port = int(settings.getUDPPort())
         stun_server.A('start', udp_port)
     if driver.is_on('service_my_ip_port'):
         from stun import stun_client
         if not stun_client.A() or stun_client.A().state in ['STOPPED', ]: 
             stun_client.A().dropMyExternalAddress()
             stun_client.A('start')
     if driver.is_on('service_private_messages'):
         from chat import nickname_holder
         nickname_holder.A('set')
     self.automat('network-up')
예제 #3
0
 def on_resume(self, *args, **kwargs):
     from stun import stun_client
     if not stun_client.A() or stun_client.A().state in [
             'STOPPED',
     ]:
         stun_client.A().dropMyExternalAddress()
         stun_client.A('start')
     return True
예제 #4
0
    def doSetUp(self, arg):
        if _Debug:
            lg.out(_DebugLevel, 'network_connector.doSetUp')

#         Second attempt
#         l = []
#         for service_name in driver.affecting('service_network'):
#             d = driver.start_single(service_name)
#             l.append(d)
#
#         def _ok(x):
#             lg.info('network child services is UP')
#             self.automat('network-up')
#             return None
#
#         def _fail(err):
#             lg.err(err)
#             self.automat('network-up')
#             return None
#
#         dl = DeferredList(l, fireOnOneErrback=True, consumeErrors=True)
#         dl.addCallback(_ok)
#         d.addErrback(_fail)

# First Solution
        if driver.is_on('service_service_entangled_dht'):
            from dht import dht_service
            dht_service.reconnect()
        if driver.is_on('service_ip_port_responder'):
            from stun import stun_server
            udp_port = int(settings.getUDPPort())
            stun_server.A('start', udp_port)
        if driver.is_on('service_my_ip_port'):
            from stun import stun_client
            stun_client.A().dropMyExternalAddress()
            stun_client.A('start')
        if driver.is_on('service_private_messages'):
            from chat import nickname_holder
            nickname_holder.A('set')
        if driver.is_on('service_udp_datagrams'):
            from lib import udp
            udp_port = settings.getUDPPort()
            if not udp.proto(udp_port):
                try:
                    udp.listen(udp_port)
                except:
                    lg.exc()
        self.automat('network-up')
예제 #5
0
 def start(self):
     from twisted.internet import reactor
     from twisted.internet.defer import Deferred
     from stun import stun_client
     from main import settings
     stun_client.A('init', settings.getUDPPort())
     return True
예제 #6
0
 def start(self):
     from stun import stun_client
     from main import settings
     from lib import misc
     stun_client.A('init', settings.getUDPPort())
     known_external_ip = misc.readExternalIP()
     if not known_external_ip or known_external_ip == '127.0.0.1':
         self._do_stun()
     return True
예제 #7
0
파일: udp_node.py 프로젝트: vesellov/devel
 def doStartStunClient(self, *args, **kwargs):
     """
     Action method.
     """
     if driver.is_on('service_my_ip_port'):
         from stun import stun_client
         stun_client.A('start', self._stun_finished)
     else:
         self.automat('stun-success',
                      ('unknown', misc.readExternalIP()
                       or '127.0.0.1', settings.getUDPPort()))
예제 #8
0
 def init(self):
     """
     Method to initialize additional variables and flags at creation of the
     state machine.
     """
     self.listen_port = None
     self.my_id = None
     self.my_address = None
     self.options = {}
     if driver.is_on('service_my_ip_port'):
         self.my_address = stun_client.A().getMyExternalAddress()
     self.notified = False
     self.IncomingPosition = -1
예제 #9
0
 def isKnownPeer(self, arg):
     """
     Condition method.
     """
     try:
         datagram, address = arg
         command, payload = datagram
     except:
         lg.exc()
         return False
     if address in stun_client.A().stun_servers:
         return True
     s = udp_session.get(address)
     return s is not None
예제 #10
0
 def isKnownPeer(self, *args, **kwargs):
     """
     Condition method.
     """
     try:
         datagram, address = args[0]
         command, payload = datagram
     except:
         lg.exc()
         return False
     if address in stun_client.A().stun_servers:
         return True
     active_sessions = udp_session.get(address)
     return len(active_sessions) > 0
예제 #11
0
 def doStartStunClient(self, arg):
     """
     Action method.
     """
     stun_client.A('start', self._stun_finished)
예제 #12
0
 def _do_stun(self):
     from stun import stun_client
     stun_client.A().dropMyExternalAddress()
     stun_client.A('start', self._on_stun_result)
예제 #13
0
 def stop(self):
     from stun import stun_client
     stun_client.A('shutdown')
     return True
예제 #14
0
 def start(self):
     from stun import stun_client
     from main import settings
     stun_client.A('init', settings.getUDPPort())
     return True