Example #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")
Example #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")
Example #3
0
 def set_rcode(self,val):
     self.bitmap = set_bits(self.bitmap,val,0,4)
Example #4
0
 def set_ra(self,val):
     self.bitmap = set_bits(self.bitmap,val,7)
Example #5
0
 def set_rd(self,val):
     self.bitmap = set_bits(self.bitmap,val,8)
Example #6
0
 def set_tc(self,val):
     self.bitmap = set_bits(self.bitmap,val,9)
Example #7
0
 def set_aa(self,val):
     self.bitmap = set_bits(self.bitmap,val,10)
Example #8
0
 def set_opcode(self,val):
     self.bitmap = set_bits(self.bitmap,val,11,4)
Example #9
0
 def set_qr(self,val):
     self.bitmap = set_bits(self.bitmap,val,15)
Example #10
0
 def set_rcode(self, val):
     self.bitmap = set_bits(self.bitmap, val, 0, 4)
Example #11
0
 def set_ra(self, val):
     self.bitmap = set_bits(self.bitmap, val, 7)
Example #12
0
 def set_rd(self, val):
     self.bitmap = set_bits(self.bitmap, val, 8)
Example #13
0
 def set_tc(self, val):
     self.bitmap = set_bits(self.bitmap, val, 9)
Example #14
0
 def set_aa(self, val):
     self.bitmap = set_bits(self.bitmap, val, 10)
Example #15
0
 def set_opcode(self, val):
     self.bitmap = set_bits(self.bitmap, val, 11, 4)
Example #16
0
 def set_qr(self, val):
     self.bitmap = set_bits(self.bitmap, val, 15)