Exemplo n.º 1
0
 def encode_name(self,name):
     """
         Encode label and store at end of buffer (compressing
         cached elements where needed) and store elements
         in 'names' dict
     """
     if not isinstance(name,DNSLabel):
         name = DNSLabel(name)
     if len(name) > 253:
         raise DNSLabelError("Domain label too long: %r" % name)
     name = list(name.label)
     while name:
         if self.names.has_key(tuple(name)):
             # Cached - set pointer
             pointer = self.names[tuple(name)]
             pointer = set_bits(pointer,3,14,2)
             self.pack("!H",pointer)
             return
         else:
             self.names[tuple(name)] = self.offset
             element = name.pop(0)
             if len(element) > 63:
                 raise DNSLabelError("Label component too long: %r" % element)
             self.pack("!B",len(element))
             self.append(element)
     self.append("\x00")
Exemplo n.º 2
0
 def encode_name(self, name):
     """
         Encode label and store at end of buffer (compressing
         cached elements where needed) and store elements
         in 'names' dict
     """
     if not isinstance(name, DNSLabel):
         name = DNSLabel(name)
     if len(name) > 253:
         raise DNSLabelError("Domain label too long: %r" % name)
     name = list(name.label)
     while name:
         if self.names.has_key(tuple(name)):
             # Cached - set pointer
             pointer = self.names[tuple(name)]
             pointer = set_bits(pointer, 3, 14, 2)
             self.pack("!H", pointer)
             return
         else:
             self.names[tuple(name)] = self.offset
             element = name.pop(0)
             if len(element) > 63:
                 raise DNSLabelError("Label component too long: %r" %
                                     element)
             self.pack("!B", len(element))
             self.append(element)
     self.append("\x00")
Exemplo n.º 3
0
 def set_rcode(self,val):
     self.bitmap = set_bits(self.bitmap,val,0,4)
Exemplo n.º 4
0
 def set_ra(self,val):
     self.bitmap = set_bits(self.bitmap,val,7)
Exemplo n.º 5
0
 def set_rd(self,val):
     self.bitmap = set_bits(self.bitmap,val,8)
Exemplo n.º 6
0
 def set_tc(self,val):
     self.bitmap = set_bits(self.bitmap,val,9)
Exemplo n.º 7
0
 def set_aa(self,val):
     self.bitmap = set_bits(self.bitmap,val,10)
Exemplo n.º 8
0
 def set_opcode(self,val):
     self.bitmap = set_bits(self.bitmap,val,11,4)
Exemplo n.º 9
0
 def set_qr(self,val):
     self.bitmap = set_bits(self.bitmap,val,15)
Exemplo n.º 10
0
 def set_rcode(self, val):
     self.bitmap = set_bits(self.bitmap, val, 0, 4)
Exemplo n.º 11
0
 def set_ra(self, val):
     self.bitmap = set_bits(self.bitmap, val, 7)
Exemplo n.º 12
0
 def set_rd(self, val):
     self.bitmap = set_bits(self.bitmap, val, 8)
Exemplo n.º 13
0
 def set_tc(self, val):
     self.bitmap = set_bits(self.bitmap, val, 9)
Exemplo n.º 14
0
 def set_aa(self, val):
     self.bitmap = set_bits(self.bitmap, val, 10)
Exemplo n.º 15
0
 def set_opcode(self, val):
     self.bitmap = set_bits(self.bitmap, val, 11, 4)
Exemplo n.º 16
0
 def set_qr(self, val):
     self.bitmap = set_bits(self.bitmap, val, 15)