def doStop(self, arg):
     """
     Action method.
     """
     if udp.proto(self.listen_port):
         udp.proto(self.listen_port).remove_callback(self._datagramReceived)
     else:
         lg.warn('udp port %s is not opened' % self.listen_port)
 def doInit(self, arg):
     """
     Action method.
     """
     self.listen_port = arg
     if _Debug:
         lg.out(_DebugLevel, 'stun_client.doInit on port %d' % self.listen_port)
     if udp.proto(self.listen_port):
         udp.proto(self.listen_port).add_callback(self._datagram_received)
     else:
         lg.warn('udp port %s is not opened' % self.listen_port)
 def doDestroyMe(self, arg):
     """
     Action method.
     """
     global _StunClient
     _StunClient = None
     for d in self.deferreds.values():
         d.cancel()
     self.deferreds.clear()
     if udp.proto(self.listen_port):
         udp.proto(self.listen_port).remove_callback(self._datagram_received)
     self.destroy()
 def doInit(self, arg):
     """
     Action method.
     """
     # udp.add_datagram_receiver_callback(self._datagramReceived)
     self.listen_port = arg
     if udp.proto(self.listen_port):
         udp.proto(self.listen_port).add_callback(self._datagramReceived)
     else:
         lg.warn('udp port %s is not opened' % self.listen_port)
     externalPort = bpio._read_data(settings.ExternalUDPPortFilename())
     try:
         externalPort = int(externalPort)
     except:
         externalPort = self.listen_port
     dht_service.set_node_data('stun_port', externalPort)
Exemple #5
0
 def doInit(self, arg):
     """
     Action method.
     """
     from transport.udp import udp_interface
     from transport.udp import udp_stream
     self.options = arg
     self.my_idurl = self.options['idurl']
     self.listen_port = int(self.options['udp_port'])
     self.my_id = udp_interface.idurl_to_id(self.my_idurl)
     udp.proto(self.listen_port).add_callback(self._datagram_received)
     bandoutlimit = settings.getBandOutLimit()
     bandinlimit = settings.getBandInLimit()
     udp_stream.set_global_output_limit_bytes_per_sec(bandoutlimit)
     udp_stream.set_global_input_limit_bytes_per_sec(bandinlimit)
     reactor.callLater(0, udp_session.process_sessions)
     reactor.callLater(0, udp_stream.process_streams)
 def stop(self):
     from lib import udp
     from main import settings
     from main.config import conf
     udp_port = settings.getUDPPort()
     if udp.proto(udp_port):
         udp.close(udp_port)
     conf().removeCallback('services/udp-datagrams/udp-port')
     return True
 def start(self):
     from lib import udp
     from main import settings
     from main.config import conf
     udp_port = settings.getUDPPort()
     conf().addCallback('services/udp-datagrams/udp-port',
                        self._on_udp_port_modified)
     if not udp.proto(udp_port):
         try:
             udp.listen(udp_port)
         except:
             return False
     return True
Exemple #8
0
    def doSetDown(self, *args, **kwargs):
        """
        """
        if _Debug:
            lg.out(_DebugLevel, 'network_connector.doSetDown')

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

# First Solution
        if driver.is_on('service_gateway'):
            from transport import gateway
            gateway.stop()
        if driver.is_on('service_ip_port_responder'):
            from stun import stun_server
            stun_server.A('stop')
        if driver.is_on('service_service_entangled_dht'):
            from dht import dht_service
            dht_service.disconnect()
        if driver.is_on('service_udp_datagrams'):
            from lib import udp
            udp_port = settings.getUDPPort()
            if udp.proto(udp_port):
                udp.close(udp_port)
        self.automat('network-down')
 def doSetDown(self, *args, **kwargs):
     """
     """
     if _Debug:
         lg.out(_DebugLevel, 'network_connector.doSetDown')
     if driver.is_on('service_gateway'):
         from transport import gateway
         gateway.stop()
     if driver.is_on('service_ip_port_responder'):
         from stun import stun_server
         stun_server.A('stop')
     if driver.is_on('service_service_entangled_dht'):
         from dht import dht_service
         dht_service.disconnect()
     if driver.is_on('service_udp_datagrams'):
         from lib import udp
         udp_port = settings.getUDPPort()
         if udp.proto(udp_port):
             udp.close(udp_port)
     self.automat('network-down')
Exemple #10
0
def main():
    if len(sys.argv) <= 1:
        print 'usage:'
        print '    natpunch.py server [min port] [max port]'
        print '    natpunch.py listen [local port] [servers list filename] [incoming connections filename]'
        print '    natpunch.py connect [local port] [remote IP] [servers list file] [min port] [max port]'
        return

    lg.set_debug_level(24)
    bpio.init()

    if sys.argv[1] == 'server':
        min_port = int(sys.argv[2])
        max_port = int(sys.argv[3])
        for port_num in range(min_port, max_port + 1):
            udp.listen(port_num)
            udp.proto(port_num).add_callback(
                lambda d, a: datagram_received(d, a, port_num))

    elif sys.argv[1] == 'listen':
        port_num = int(sys.argv[2])
        udp.listen(port_num)
        udp.proto(port_num).add_callback(
            lambda d, a: datagram_received(d, a, port_num))
        servers = []
        for line in open(sys.argv[3]).read().split('\n'):
            addr = line.strip().split(':')
            addr[1] = int(addr[1])
            servers.append(tuple(addr))
        listen(port_num, servers, sys.argv[4])

    elif sys.argv[1] == 'connect':
        port_num = int(sys.argv[2])
        remote_ip = sys.argv[3]
        udp.listen(port_num)
        udp.proto(port_num).add_callback(
            lambda d, a: datagram_received(d, a, port_num))
        servers = []
        for line in open(sys.argv[4]).read().split('\n'):
            addr = line.strip().split(':')
            addr[1] = int(addr[1])
            servers.append(tuple(addr))
        min_port = int(sys.argv[5])
        max_port = int(sys.argv[6])
        connect(port_num, remote_ip, servers, min_port, max_port)

    reactor.run()
Exemple #11
0
def main():
    if len(sys.argv) <= 1:
        print 'usage:'
        print '    natpunch.py server [min port] [max port]'
        print '    natpunch.py listen [local port] [servers list filename] [incoming connections filename]'
        print '    natpunch.py connect [local port] [remote IP] [servers list file] [min port] [max port]'
        return

    lg.set_debug_level(24)
    bpio.init()

    if sys.argv[1] == 'server':
        min_port = int(sys.argv[2])
        max_port = int(sys.argv[3])
        for port_num in range(min_port, max_port + 1):
            udp.listen(port_num)
            udp.proto(port_num).add_callback(lambda d, a: datagram_received(d, a, port_num))

    elif sys.argv[1] == 'listen':
        port_num = int(sys.argv[2])
        udp.listen(port_num)
        udp.proto(port_num).add_callback(lambda d, a: datagram_received(d, a, port_num))
        servers = []
        for line in open(sys.argv[3]).read().split('\n'):
            addr = line.strip().split(':')
            addr[1] = int(addr[1])
            servers.append(tuple(addr))
        listen(port_num, servers, sys.argv[4])

    elif sys.argv[1] == 'connect':
        port_num = int(sys.argv[2])
        remote_ip = sys.argv[3]
        udp.listen(port_num)
        udp.proto(port_num).add_callback(lambda d, a: datagram_received(d, a, port_num))
        servers = []
        for line in open(sys.argv[4]).read().split('\n'):
            addr = line.strip().split(':')
            addr[1] = int(addr[1])
            servers.append(tuple(addr))
        min_port = int(sys.argv[5])
        max_port = int(sys.argv[6])
        connect(port_num, remote_ip, servers, min_port, max_port)

    reactor.run()