home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1682 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.3 KB  |  76 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 MXBase(dns.rdata.Rdata):
  10.     __slots__ = [
  11.         'preference',
  12.         'exchange']
  13.     
  14.     def __init__(self, rdclass, rdtype, preference, exchange):
  15.         super(MXBase, self).__init__(rdclass, rdtype)
  16.         self.preference = preference
  17.         self.exchange = exchange
  18.  
  19.     
  20.     def to_text(self, origin = None, relativize = True, **kw):
  21.         exchange = self.exchange.choose_relativity(origin, relativize)
  22.         return '%d %s' % (self.preference, exchange)
  23.  
  24.     
  25.     def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True):
  26.         preference = tok.get_uint16()
  27.         exchange = tok.get_name()
  28.         exchange = exchange.choose_relativity(origin, relativize)
  29.         tok.get_eol()
  30.         return cls(rdclass, rdtype, preference, exchange)
  31.  
  32.     from_text = classmethod(from_text)
  33.     
  34.     def to_wire(self, file, compress = None, origin = None):
  35.         pref = struct.pack('!H', self.preference)
  36.         file.write(pref)
  37.         self.exchange.to_wire(file, compress, origin)
  38.  
  39.     
  40.     def from_wire(cls, rdclass, rdtype, wire, current, rdlen, origin = None):
  41.         (preference,) = struct.unpack('!H', wire[current:current + 2])
  42.         current += 2
  43.         rdlen -= 2
  44.         (exchange, cused) = dns.name.from_wire(wire[:current + rdlen], current)
  45.         if cused != rdlen:
  46.             raise dns.exception.FormError
  47.         cused != rdlen
  48.         if origin is not None:
  49.             exchange = exchange.relativize(origin)
  50.         
  51.         return cls(rdclass, rdtype, preference, exchange)
  52.  
  53.     from_wire = classmethod(from_wire)
  54.     
  55.     def choose_relativity(self, origin = None, relativize = True):
  56.         self.exchange = self.exchange.choose_relativity(origin, relativize)
  57.  
  58.     
  59.     def _cmp(self, other):
  60.         sp = struct.pack('!H', self.preference)
  61.         op = struct.pack('!H', other.preference)
  62.         v = cmp(sp, op)
  63.         if v == 0:
  64.             v = cmp(self.exchange, other.exchange)
  65.         
  66.         return v
  67.  
  68.  
  69.  
  70. class UncompressedMX(MXBase):
  71.     
  72.     def to_wire(self, file, compress = None, origin = None):
  73.         super(UncompressedMX, self).to_wire(file, None, origin)
  74.  
  75.  
  76.