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)
Exemple #2
0
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
Exemple #8
0
 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))