Ejemplo n.º 1
0
    def parse(cls, payload, offset):
        name, offset = parse_name(payload, offset)
        resource = unpack('>H', payload[offset:offset + 2])[0]
        offset += 2
        c = unpack('>H', payload[offset:offset + 2])[0]
        offset += 2

        return cls(name, resource=Resource.find(value=resource), cls=find_class(c)), offset
Ejemplo n.º 2
0
    def parse(cls, payload, offset, length):
        mname, offset = parse_name(payload, offset)
        rname, offset = parse_name(payload, offset)

        serial = unpack('>I', payload[offset:offset + 4])[0]
        offset += 4

        refresh = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        retry = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        expire = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        minimum = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        return cls(mname, rname, serial, refresh, retry, expire, minimum)
Ejemplo n.º 3
0
    def parse(cls, payload, offset, length):
        mname, offset = parse_name(payload, offset)
        rname, offset = parse_name(payload, offset)

        serial = unpack('>I', payload[offset:offset + 4])[0]
        offset += 4

        refresh = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        retry = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        expire = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        minimum = unpack('>i', payload[offset:offset + 4])[0]
        offset += 4

        return cls(mname, rname, serial, refresh, retry, expire, minimum)
Ejemplo n.º 4
0
 def parse(cls, payload, offset, length):
     ns = parse_name(payload, offset)[0]
     return cls(ns)
Ejemplo n.º 5
0
 def parse(cls, payload, offset, length):
     preference = unpack('>H', payload[offset:offset + 2])[0]
     offset += 2
     name = parse_name(payload, offset)[0]
     return cls(name, preference)
Ejemplo n.º 6
0
 def test_recursion(self):
     payload = b'\x05apple\x03com\x00\ndevelopers' + pack('>H', (0xc000 | 0))
     self.assertEqual(parse_name(payload, 11)[0], 'developers.apple.com')
Ejemplo n.º 7
0
 def test_empty(self):
     self.assertEqual(pack_name(''), b'\x00')
     self.assertEqual(parse_name(b'\x00', 0)[0], '')
Ejemplo n.º 8
0
 def parse(cls, payload, offset, length):
     ns = parse_name(payload, offset)[0]
     return cls(ns)
Ejemplo n.º 9
0
 def parse(cls, payload, offset, length):
     preference = unpack('>H', payload[offset:offset + 2])[0]
     offset += 2
     name = parse_name(payload, offset)[0]
     return cls(name, preference)
Ejemplo n.º 10
0
 def test_recursion(self):
     payload = b'\x05apple\x03com\x00\ndevelopers' + pack(
         '>H', (0xc000 | 0))
     self.assertEqual(parse_name(payload, 11)[0], 'developers.apple.com')
Ejemplo n.º 11
0
 def test_empty(self):
     self.assertEqual(pack_name(''), b'\x00')
     self.assertEqual(parse_name(b'\x00', 0)[0], '')