Ejemplo n.º 1
0
    def test_export(self) -> None:
        # Seems the format of this may need discussion
        ipf = lt.ip_filter()
        self.assertEqual(ipf.export_filter(), "something")

        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        ipf.add_rule("::", "::ffff", 456)
        self.assertEqual(ipf.export_filter(), "something")
Ejemplo n.º 2
0
 def update_ip_filter(self, lt_session, ip_addresses):
     self._logger.debug('Updating IP filter %s', ip_addresses)
     ip_filter = lt.ip_filter()
     ip_filter.add_rule('0.0.0.0', '255.255.255.255', 1)
     for ip in ip_addresses:
         ip_filter.add_rule(ip, ip, 0)
     lt_session.set_ip_filter(ip_filter)
Ejemplo n.º 3
0
    def test_empty(self) -> None:
        ipf = lt.ip_filter()
        self.assertEqual(ipf.access("0.1.2.3"), 0)
        self.assertEqual(ipf.access("::123"), 0)

        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )
Ejemplo n.º 4
0
    def test_export(self) -> None:
        ipf = lt.ip_filter()
        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )

        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        ipf.add_rule("::", "::ffff", 456)
        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "0.255.255.255"), ("1.0.0.0", "255.255.255.255")],
                [
                    ("::", "::ffff"),
                    ("::1:0", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"),
                ],
            ),
        )
Ejemplo n.º 5
0
    def test_with_rule_ip4(self) -> None:
        ipf = lt.ip_filter()
        ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
        self.assertEqual(ipf.access("0.1.2.3"), 123)
        self.assertEqual(ipf.access("1.2.3.4"), 0)
        self.assertEqual(ipf.access("::123"), 0)

        self.assertEqual(
            export(ipf),
            (
                [("0.0.0.0", "0.255.255.255"), ("1.0.0.0", "255.255.255.255")],
                [("::", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")],
            ),
        )
Ejemplo n.º 6
0
    def test_export(self):

        f = lt.ip_filter()
        self.assertEqual(f.access('1.1.1.1'), 0)
        f.add_rule('1.1.1.1', '1.1.1.2', 1)
        self.assertEqual(f.access('1.1.1.0'), 0)
        self.assertEqual(f.access('1.1.1.1'), 1)
        self.assertEqual(f.access('1.1.1.2'), 1)
        self.assertEqual(f.access('1.1.1.3'), 0)
        exp = f.export_filter()
        self.assertEqual(exp, ([
            ('0.0.0.0', '1.1.1.0'), ('1.1.1.1', '1.1.1.2'),
            ('1.1.1.3', '255.255.255.255')
        ], [('::', 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff')]))
Ejemplo n.º 7
0
    def set_whitelist_filter(self, whitelisted):
        """Set an IP whitelist so that the torrent client will ONLY seed (and
        download from) those IPs.
        This is to prevent seeding to everyone if you only want to seed to your
        seedbox.
        """

        blocked = 1  # From include/libtorrent/ip_filter.hpp
        unblocked = 0

        filter_bt = libtorrent.ip_filter()
        filter_bt.add_rule('0.0.0.0', '255.255.255.255', blocked)
        try:
            for addr in whitelisted:
                filter_bt.add_rule(addr, addr, unblocked)
        except RuntimeError:
            raise Exception('A bad IP was passed as a whitelist filter!')

        self.session.set_ip_filter(filter_bt)
Ejemplo n.º 8
0
 def test_empty(self) -> None:
     ipf = lt.ip_filter()
     self.assertEqual(ipf.access("0.1.2.3"), 0)
     self.assertEqual(ipf.access("::123"), 0)
Ejemplo n.º 9
0
 def test_with_rule_ip6(self) -> None:
     ipf = lt.ip_filter()
     ipf.add_rule("::", "::ffff", 123)
     self.assertEqual(ipf.access("::123"), 123)
     self.assertEqual(ipf.access("1.2.3.4"), 0)
     self.assertEqual(ipf.access("::1:0"), 0)
Ejemplo n.º 10
0
 def test_with_rule_ip4(self) -> None:
     ipf = lt.ip_filter()
     ipf.add_rule("0.0.0.0", "0.255.255.255", 123)
     self.assertEqual(ipf.access("0.1.2.3"), 123)
     self.assertEqual(ipf.access("1.2.3.4"), 0)
     self.assertEqual(ipf.access("::123"), 0)
Ejemplo n.º 11
0
 def test_peer_class_ip_filter(self):
     s = lt.session({'enable_dht': False})
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())
Ejemplo n.º 12
0
 def test_peer_class_ip_filter(self):
     s = lt.session(settings)
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())
Ejemplo n.º 13
0
	def test_peer_class_ip_filter(self):
		s = lt.session({'enable_dht': False})
		s.set_peer_class_type_filter(lt.peer_class_type_filter())
		s.set_peer_class_filter(lt.ip_filter())
Ejemplo n.º 14
0
 def test_peer_class_ip_filter(self):
     s = lt.session(settings)
     s.set_peer_class_type_filter(lt.peer_class_type_filter())
     s.set_peer_class_filter(lt.ip_filter())