def _add(self, replace, section, name, *args):
        """Add records.  The first argument is the replace mode.  If
        false, RRs are added to an existing RRset; if true, the RRset
        is replaced with the specified contents.  The second
        argument is the section to add to.  The third argument
        is always a name.  The other arguments can be:

                - rdataset...

                - ttl, rdata...

                - ttl, rdtype, string..."""

        if isinstance(name, (str, unicode)):
            name = dns.name.from_text(name, None)
        if isinstance(args[0], dns.rdataset.Rdataset):
            for rds in args:
                if replace:
                    self.delete(name, rds.rdtype)
                for rd in rds:
                    self._add_rr(name, rds.ttl, rd, section=section)
        else:
            args = list(args)
            ttl = int(args.pop(0))
            if isinstance(args[0], dns.rdata.Rdata):
                if replace:
                    self.delete(name, args[0].rdtype)
                for rd in args:
                    self._add_rr(name, ttl, rd, section=section)
            else:
                rdtype = args.pop(0)
                if isinstance(rdtype, str):
                    rdtype = dns.rdatatype.from_text(rdtype)
                if replace:
                    self.delete(name, rdtype)
                for s in args:
                    rd = dns.rdata.from_text(self.zone_rdclass, rdtype, s,
                                             self.origin)
                    self._add_rr(name, ttl, rd, section=section)
def _add ( self , replace , section , name , * args ) : if isinstance ( name , ( str , unicode ) ) : name = dns . name . from_text ( name , None ) if isinstance ( args [ 0 ] , dns . rdataset . Rdataset ) : for rds in args : if replace : self . delete ( name , rds . rdtype ) for rd in rds : self . _add_rr ( name , rds . ttl , rd , section = section ) else : args = list ( args ) ttl = int ( args . pop ( 0 ) ) if isinstance ( args [ 0 ] , dns . rdata . Rdata ) : if replace : self . delete ( name , args [ 0 ] . rdtype ) for rd in args : self . _add_rr ( name , ttl , rd , section = section ) else : rdtype = args . pop ( 0 ) if isinstance ( rdtype , str ) : rdtype = dns . rdatatype . from_text ( rdtype ) if replace : self . delete ( name , rdtype ) for s in args : rd = dns . rdata . from_text ( self . zone_rdclass , rdtype , s , self . origin ) self . _add_rr ( name , ttl , rd , section = section )
Add records.  The first argument is the replace mode.  If
        false, RRs are added to an existing RRset; if true, the RRset
        is replaced with the specified contents.  The second
        argument is the section to add to.  The third argument
        is always a name.  The other arguments can be:

                - rdataset...

                - ttl, rdata...

                - ttl, rdtype, string...