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)
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
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')
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()
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()