def __start_udp_server(self): """ Start UDP Server """ logging.info("%s Collector; listening udp server at %s", self.__collector_name, self.__udp_port) sock, sockaddr = inet.create_external_address(self.__udp_port, socket.SOCK_DGRAM, use_gevent=True) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Asking for 8MB for receive buffer. if not sys.platform == "darwin": sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 8388608) sock.bind(sockaddr) while True: data, addr = sock.recvfrom(9216) if not data: continue logging.debug("udp collector; from ip=%s, got msg=%s;", addr, data) profile_info = self.__get_profile_info(addr) if profile_info is not None: ip, sid, parser, device_name, normalizer, repo = profile_info else: continue self.handle_udp_data(data, ip=ip, sid=sid, parser=parser, device_name=device_name, normalizer=normalizer, repo=repo)
def test_start_udp_server(): port = 9001 sock = start_udp_server(port) sock_obj, sockaddr = inet.create_external_address(port, socket.SOCK_DGRAM, use_gevent=True) assert_is(type(sock_obj), type(sock), "test UDP server")
def start_udp_server(port, config, snare_out): log.info("Snare Collector; listening udp server at %s", port) sock, sockaddr = inet.create_external_address(port, socket.SOCK_DGRAM, use_gevent=True) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Asking for 8MB for receive buffer. if not sys.platform == 'darwin': sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 8388608) sock.bind(sockaddr) while True: data, addr = sock.recvfrom(9216) if not data: continue log.debug('udp collector; from ip=%s, got msg=%s;', addr, data) profile_info = _get_profile_info(addr, config) if profile_info is not None: ip, sid, parser, device_name, collected_at = profile_info else: continue if data[-1] != '\n': data += '\n' _handle_data(data, sid, parser, snare_out, device_name, ip, collected_at)
def _create_listener(port, backlog=256): """Creates an IPv6-capable listener. """ sock, sockaddr = inet.create_external_address(port) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(sockaddr) sock.listen(backlog) sock.setblocking(0) return sock
def make_inet6_compatible(ftpserver, port): if ftpserver.socket: ftpserver.socket.close() # create_socket in FTPServer sock, sockaddr = inet.create_external_address(port) sock.setblocking(0) ftpserver.set_socket(sock) ftpserver.set_reuse_addr() ftpserver.bind(sockaddr) ftpserver.listen(5)
def _create_listener(port, backlog=256): """Creates an IPv6-capable listener. """ # The creating of the socket is similar # to gevent.baseserver._tcp_listener(). sock, sockaddr = inet.create_external_address(port) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(sockaddr) sock.listen(backlog) sock.setblocking(0) return sock
def start_udp_server(port): log.info("sflow Collector; listening udp server at port: %s", port) try: sock, sockaddr = inet.create_external_address(port, socket.SOCK_DGRAM, use_gevent=True) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Asking for 8MB for receive buffer. if not sys.platform == 'darwin': sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 8388608) sock.bind(sockaddr) return sock except Exception, e: log.error('Error while binding udp connection to address: %s\n%s', port, repr(e)) raise
def test__create_listener(self): result = _create_listener(self.port) sock, sockaddr = inet.create_external_address(self.port) expected = sock eq_(type(result), type(expected))