• Home
  • Raw
  • Download

Lines Matching refs:self

50   def __init__(self, tun, mymac, routermac):  argument
51 super(PingReplyThread, self).__init__()
52 self._tun = tun
53 self._stopped = False
54 self._mymac = mymac
55 self._routermac = routermac
57 def Stop(self): argument
58 self._stopped = True
60 def ChecksumValid(self, packet): argument
94 def SendTimeExceeded(self, version, packet): argument
97 self.SendPacket(
98 scapy.IP(src=self.INTERMEDIATE_IPV4, dst=src) /
103 self.SendPacket(
104 scapy.IPv6(src=self.INTERMEDIATE_IPV6, dst=src) /
108 def IPv4Packet(self, ip): argument
118 if not self.ChecksumValid(ip):
121 if ip.ttl < self.MIN_TTL:
122 self.SendTimeExceeded(4, ip)
126 self.SwapAddresses(ip)
127 self.SendPacket(ip)
129 def IPv6Packet(self, ipv6): argument
140 if not self.ChecksumValid(ipv6):
145 for src in self.NEIGHBOURS:
148 self.SendPacket(ipv6)
149 elif ipv6.hlim < self.MIN_TTL:
150 self.SendTimeExceeded(6, ipv6)
153 self.SwapAddresses(ipv6)
154 self.SendPacket(ipv6)
156 def SwapAddresses(self, packet): argument
161 def SendPacket(self, packet): argument
162 packet = scapy.Ether(src=self._routermac, dst=self._mymac) / packet
164 posix.write(self._tun.fileno(), str(packet))
168 def run(self): argument
169 while not self._stopped:
172 packet = posix.read(self._tun.fileno(), 4096)
181 self.IPv6Packet(ether.payload)
183 self.IPv4Packet(ether.payload)
205 def setUp(self): argument
206 self.ifname = self.GetInterfaceName(self.netid)
207 self.ifindex = self.ifindices[self.netid]
208 self.lladdr = net_test.GetLinkAddress(self.ifname, True)
209 self.globaladdr = net_test.GetLinkAddress(self.ifname, False)
211 def assertValidPingResponse(self, s, data): argument
216 self.assertNotEqual(0, len(rcvd), "No data received")
225 self.assertGreater(len(data), 7, "Not enough data for ping packet")
227 self.assertTrue(data.startswith("\x08\x00"), "Not an IPv4 echo request")
229 self.assertTrue(data.startswith("\x80\x00"), "Not an IPv6 echo request")
231 self.fail("Unknown socket address family %d" * s.family)
236 self.assertGreaterEqual(len(addr), len("1.1.1.1"))
237 self.assertTrue(rcvd.startswith("\x00\x00"), "Not an IPv4 echo reply")
240 self.assertGreaterEqual(len(addr), len("::"))
241 self.assertTrue(rcvd.startswith("\x81\x00"), "Not an IPv6 echo reply")
243 self.assertEqual(flowlabel, 0)
245 self.assertTrue(scope_id in self.ifindices.values())
247 self.assertEquals(0, scope_id)
253 self.assertEqual(len(data), len(rcvd))
254 self.assertEqual(data[6:].encode("hex"), rcvd[6:].encode("hex"))
256 def CheckSockStatFile(self, name, srcaddr, srcport, dstaddr, dstport, state, argument
263 actual = self.ReadProcNetSocket(name)[-1]
264 self.assertListEqual(expected, actual)
266 def testIPv4SendWithNoConnection(self): argument
268 self.assertRaisesErrno(errno.EDESTADDRREQ, s.send, net_test.IPV4_PING)
270 def testIPv6SendWithNoConnection(self): argument
272 self.assertRaisesErrno(errno.EDESTADDRREQ, s.send, net_test.IPV6_PING)
274 def testIPv4LoopbackPingWithConnect(self): argument
279 self.assertValidPingResponse(s, data)
281 def testIPv6LoopbackPingWithConnect(self): argument
285 self.assertValidPingResponse(s, net_test.IPV6_PING)
287 def testIPv4PingUsingSendto(self): argument
290 self.assertEquals(len(net_test.IPV4_PING), written)
291 self.assertValidPingResponse(s, net_test.IPV4_PING)
293 def testIPv6PingUsingSendto(self): argument
296 self.assertEquals(len(net_test.IPV6_PING), written)
297 self.assertValidPingResponse(s, net_test.IPV6_PING)
299 def testIPv4NoCrash(self): argument
303 self.assertEquals(len(net_test.IPV4_PING), written)
306 self.assertEquals(written, len(reply))
308 def testIPv6NoCrash(self): argument
312 self.assertEquals(len(net_test.IPV6_PING), written)
315 self.assertEquals(written, len(reply))
317 def testCrossProtocolCrash(self): argument
345 def testCrossProtocolCalls(self): argument
359 self.assertRaisesErrno(errno.EAFNOSUPPORT, function, *args)
388 def testIPv4Bind(self): argument
392 self.assertEquals(("0.0.0.0", 544), s.getsockname())
397 self.assertEquals(("127.0.0.1", 99), s.getsockname())
400 self.assertRaisesErrno(errno.EINVAL, s.bind, ("127.0.0.1", 22))
405 self.assertEquals(("127.0.0.1", 99), s2.getsockname())
408 self.assertEquals(("127.0.0.1", 99), s3.getsockname())
417 self.assertValidPingResponse(s5, net_test.IPV4_PING)
419 self.assertRaisesErrno(errno.EAGAIN, s4.recv, 32768)
424 self.assertRaisesErrno(errno.EADDRINUSE, s6.bind, ("0.0.0.0", 167))
429 self.assertRaisesErrno(errno.EINVAL, s.bind, ("0.0.0.0", 5429))
431 def testIPv6Bind(self): argument
435 self.assertEquals(("::", 769, 0, 0), s.getsockname())
440 self.assertEquals(("::1", 99, 0, 0), s.getsockname())
443 self.assertRaisesErrno(errno.EINVAL, s.bind, ("::1", 22))
448 self.assertEquals(("::1", 99, 0, 0), s2.getsockname())
451 self.assertEquals(("::1", 99, 0, 0), s3.getsockname())
462 self.assertRaisesErrno(errno.EINVAL, s.bind, ("::", 5429))
464 def testIPv4InvalidBind(self): argument
466 self.assertRaisesErrno(errno.EADDRNOTAVAIL,
468 self.assertRaisesErrno(errno.EADDRNOTAVAIL,
471 self.assertRaisesErrno(errno.EADDRNOTAVAIL,
480 def testIPv6InvalidBind(self): argument
482 self.assertRaisesErrno(errno.EINVAL,
486 self.assertRaisesErrno(errno.EADDRNOTAVAIL,
495 def testAfUnspecBind(self): argument
501 self.assertEquals(("0.0.0.0", 12996), s4.getsockname())
506 self.assertRaisesErrno(errno.EAFNOSUPPORT, csocket.Bind, s4, sockaddr)
512 self.assertRaisesErrno(errno.EAFNOSUPPORT, csocket.Bind, s6, sockaddr)
514 def testIPv6ScopedBind(self): argument
517 self.assertRaisesErrno(errno.EINVAL,
518 s.bind, (self.lladdr, 1026, 0, 0))
523 expected = self.lladdr + "%" + self.ifname
524 s.bind((self.lladdr, 4646, 0, self.ifindex))
525 self.assertEquals((expected, 4646, 0, self.ifindex), s.getsockname())
529 self.assertRaisesErrno(errno.EADDRNOTAVAIL,
535 self.assertEquals(("::1", 1234, 0, 0), s.getsockname())
537 def testBindAffectsIdentifier(self): argument
539 s.bind((self.globaladdr, 0xf976))
541 self.assertEquals("\xf9\x76", s.recv(32768)[4:6])
544 s.bind((self.globaladdr, 0xace))
546 self.assertEquals("\x0a\xce", s.recv(32768)[4:6])
548 def testLinkLocalAddress(self): argument
551 self.assertRaisesErrno(errno.EINVAL,
555 s.sendto(net_test.IPV6_PING, ("fe80::1", 55, 0, self.ifindex))
558 def testMappedAddressFails(self): argument
561 self.assertValidPingResponse(s, net_test.IPV6_PING)
563 self.assertValidPingResponse(s, net_test.IPV6_PING)
564 self.assertRaisesErrno(errno.EINVAL, s.sendto, net_test.IPV6_PING,
568 def testFlowLabel(self): argument
574 self.assertValidPingResponse(s, net_test.IPV6_PING) # Checks flow label==0.
581 self.assertRaisesErrno(errno.EINVAL, s.sendto, net_test.IPV6_PING,
587 self.assertEqual(1, s.getsockopt(net_test.SOL_IPV6,
592 self.assertEqual(0xdead, flowlabel & 0xfffff)
594 def testIPv4Error(self): argument
601 self.assertRaisesErrno(errno.EHOSTUNREACH, s.recv, 32768) # No response.
603 def testIPv6Error(self): argument
610 self.assertRaisesErrno(errno.EHOSTUNREACH, s.recv, 32768) # No response.
612 def testIPv6MulticastPing(self): argument
616 s.setsockopt(net_test.SOL_IPV6, net_test.IPV6_MULTICAST_IF, self.ifindex)
617 s.sendto(net_test.IPV6_PING, ("ff02::1", 55, 0, self.ifindex))
618 self.assertValidPingResponse(s, net_test.IPV6_PING)
619 self.assertValidPingResponse(s, net_test.IPV6_PING)
621 def testIPv4LargePacket(self): argument
625 self.assertValidPingResponse(s, data)
627 def testIPv6LargePacket(self): argument
634 def testIcmpSocketsNotInIcmp6(self): argument
635 numrows = len(self.ReadProcNetSocket("icmp"))
636 numrows6 = len(self.ReadProcNetSocket("icmp6"))
640 self.assertEquals(numrows + 1, len(self.ReadProcNetSocket("icmp")))
641 self.assertEquals(numrows6, len(self.ReadProcNetSocket("icmp6")))
644 def testIcmp6SocketsNotInIcmp(self): argument
645 numrows = len(self.ReadProcNetSocket("icmp"))
646 numrows6 = len(self.ReadProcNetSocket("icmp6"))
650 self.assertEquals(numrows, len(self.ReadProcNetSocket("icmp")))
651 self.assertEquals(numrows6 + 1, len(self.ReadProcNetSocket("icmp6")))
653 def testProcNetIcmp(self): argument
657 self.CheckSockStatFile("icmp", "127.0.0.1", 0xace, "127.0.0.1", 0xbeef, 1)
660 def testProcNetIcmp6(self): argument
661 numrows6 = len(self.ReadProcNetSocket("icmp6"))
665 self.CheckSockStatFile("icmp6", "::1", 0xace, "::1", 0xbeef, 1)
669 self.assertEquals(numrows6, len(self.ReadProcNetSocket("icmp6")))
673 self.assertEqual(0, len(self.ReadProcNetSocket("icmp6")))
675 self.assertEqual(1, len(self.ReadProcNetSocket("icmp6")))
679 self.assertEqual(0, len(self.ReadProcNetSocket("icmp6")))
680 s.bind((self.lladdr, 0xd00d, 0, self.ifindex))
681 self.CheckSockStatFile("icmp6", self.lladdr, 0xd00d, "::", 0, 7)
684 s.setsockopt(net_test.SOL_IPV6, net_test.IPV6_MULTICAST_IF, self.ifindex)
686 self.CheckSockStatFile("icmp6", self.lladdr, 0xd00d, "ff02::1", 0xdead, 1)
689 self.CheckSockStatFile("icmp6", self.lladdr, 0xd00d, "ff02::1", 0xdead, 1,
691 self.assertValidPingResponse(s, net_test.IPV6_PING)
692 self.CheckSockStatFile("icmp6", self.lladdr, 0xd00d, "ff02::1", 0xdead, 1,
695 def testProcNetUdp6(self): argument
699 self.CheckSockStatFile("udp6", "::1", 0xace, "::1", 0xbeef, 1)
701 def testProcNetRaw6(self): argument
705 self.CheckSockStatFile("raw6", "::1", 0xff, "::1", 0, 1)