Exemple #1
0
    def test_make_udpip_got_a_sensitive_port(self):
        # Can you bind system ports ?
        for sensitive_port in (0, 1, 1023):
            node = Node()
            self.assertIsNone(node.udp_sock)
            self.assertEqual(node.udp_ip, (None, None))
            with self.subTest(sensitive_port=sensitive_port):
                node.make_udpip('localhost', sensitive_port)
                if node.udp_sock:
                    # Really !!! You can bind a sensitive port.
                    # Are you root ?
                    # You must study security.
                    # You must open many security holes.
                    self.assertIsInstance(node.udp_sock, socket.socket)
                    self.assertEqual(node.udp_ip,
                                     ('localhost', sensitive_port))

                    node.release()
                else:
                    # You cannot bind a sensitive port.
                    # You have a good security policy.
                    self.assertIsNone(node.udp_sock)
                    # However port must be set. for debug.
                    self.assertEqual(node.udp_ip,
                                     ('localhost', sensitive_port))
Exemple #2
0
 def test_make_udpip_got_out_of_range_port(self):
     # OverflowError: getsockaddrarg: port must be 0-65535.
     for invalid_port in (-1, 65535 + 1):
         node = Node()
         self.assertIsNone(node.udp_sock)
         self.assertEqual(node.udp_ip, (None, None))
         node.make_udpip('localhost', invalid_port)
         self.assertIsNone(node.udp_sock)
         self.assertEqual(node.udp_ip, ('localhost', invalid_port))
Exemple #3
0
    def test_make_udpip_success(self):
        node = Node()
        self.assertIsNone(node.udp_sock)
        self.assertEqual(node.udp_ip, (None, None))
        node.make_udpip('localhost', 4444)
        self.assertIsInstance(node.udp_sock, socket.socket)
        self.assertEqual(node.udp_ip, ('localhost', 4444))

        node.release()
Exemple #4
0
    def test_make_udpip_got_on_the_boundary_port(self):
        for on_the_boundary_port in (1024, 65535):
            node = Node()
            self.assertIsNone(node.udp_sock)
            self.assertEqual(node.udp_ip, (None, None))
            node.make_udpip('localhost', on_the_boundary_port)
            self.assertIsInstance(node.udp_sock, socket.socket)
            self.assertEqual(node.udp_ip, ('localhost', on_the_boundary_port))

            node.release()
Exemple #5
0
    def test_make_udpip_doesnt_make_udpip(self):
        pairs_of_host_port = [(None, 4444), ('localhost', None), (None, None)]

        for host, port in pairs_of_host_port:
            node = Node()
            self.assertIsNone(node.udp_sock)
            self.assertEqual(node.udp_ip, (None, None))
            node.make_udpip(host, port)
            self.assertIsNone(node.udp_sock)
            self.assertEqual(node.udp_ip, (host, port))