home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1661 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.6 KB  |  95 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import struct
  5. import dns.exception as dns
  6. import dns.rdata as dns
  7. import dns.name as dns
  8.  
  9. class SOA(dns.rdata.Rdata):
  10.     __slots__ = [
  11.         'mname',
  12.         'rname',
  13.         'serial',
  14.         'refresh',
  15.         'retry',
  16.         'expire',
  17.         'minimum']
  18.     
  19.     def __init__(self, rdclass, rdtype, mname, rname, serial, refresh, retry, expire, minimum):
  20.         super(SOA, self).__init__(rdclass, rdtype)
  21.         self.mname = mname
  22.         self.rname = rname
  23.         self.serial = serial
  24.         self.refresh = refresh
  25.         self.retry = retry
  26.         self.expire = expire
  27.         self.minimum = minimum
  28.  
  29.     
  30.     def to_text(self, origin = None, relativize = True, **kw):
  31.         mname = self.mname.choose_relativity(origin, relativize)
  32.         rname = self.rname.choose_relativity(origin, relativize)
  33.         return '%s %s %d %d %d %d %d' % (mname, rname, self.serial, self.refresh, self.retry, self.expire, self.minimum)
  34.  
  35.     
  36.     def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True):
  37.         mname = tok.get_name()
  38.         rname = tok.get_name()
  39.         mname = mname.choose_relativity(origin, relativize)
  40.         rname = rname.choose_relativity(origin, relativize)
  41.         serial = tok.get_uint32()
  42.         refresh = tok.get_ttl()
  43.         retry = tok.get_ttl()
  44.         expire = tok.get_ttl()
  45.         minimum = tok.get_ttl()
  46.         tok.get_eol()
  47.         return cls(rdclass, rdtype, mname, rname, serial, refresh, retry, expire, minimum)
  48.  
  49.     from_text = classmethod(from_text)
  50.     
  51.     def to_wire(self, file, compress = None, origin = None):
  52.         self.mname.to_wire(file, compress, origin)
  53.         self.rname.to_wire(file, compress, origin)
  54.         five_ints = struct.pack('!IIIII', self.serial, self.refresh, self.retry, self.expire, self.minimum)
  55.         file.write(five_ints)
  56.  
  57.     
  58.     def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None):
  59.         (mname, cused) = dns.name.from_wire(wire[:current + rdlen], current)
  60.         current += cused
  61.         rdlen -= cused
  62.         (rname, cused) = dns.name.from_wire(wire[:current + rdlen], current)
  63.         current += cused
  64.         rdlen -= cused
  65.         if rdlen != 20:
  66.             raise dns.exception.FormError
  67.         rdlen != 20
  68.         five_ints = struct.unpack('!IIIII', wire[current:current + rdlen])
  69.         if origin is not None:
  70.             mname = mname.relativize(origin)
  71.             rname = rname.relativize(origin)
  72.         
  73.         return cls(rdclass, rdtype, mname, rname, five_ints[0], five_ints[1], five_ints[2], five_ints[3], five_ints[4])
  74.  
  75.     from_wire = classmethod(from_wire)
  76.     
  77.     def choose_relativity(self, origin = None, relativize = True):
  78.         self.mname = self.mname.choose_relativity(origin, relativize)
  79.         self.rname = self.rname.choose_relativity(origin, relativize)
  80.  
  81.     
  82.     def _cmp(self, other):
  83.         v = cmp(self.mname, other.mname)
  84.         if v == 0:
  85.             v = cmp(self.rname, other.rname)
  86.             if v == 0:
  87.                 self_ints = struct.pack('!IIIII', self.serial, self.refresh, self.retry, self.expire, self.minimum)
  88.                 other_ints = struct.pack('!IIIII', other.serial, other.refresh, other.retry, other.expire, other.minimum)
  89.                 v = cmp(self_ints, other_ints)
  90.             
  91.         
  92.         return v
  93.  
  94.  
  95.