'Return a generator which yields (name, rdataset) tuples for
all rdatasets in the zone which have the specified I{rdtype}
and I{covers}.  If I{rdtype} is dns.rdatatype.ANY, the default,
then all rdatasets will be matched.
@param rdtype: int or string
@type rdtype: int or string
@param covers: the covered type (defaults to None)
@type covers: int or string'

def iterate_rdatasets(self, rdtype=dns.rdatatype.ANY, covers=dns.rdatatype.NONE):

    if isinstance(rdtype, (str, unicode)):
        rdtype = dns.rdatatype.from_text(rdtype)
    if isinstance(covers, (str, unicode)):
        covers = dns.rdatatype.from_text(covers)
    for (name, node) in self.iteritems():
        for rds in node:
            if ((rdtype == dns.rdatatype.ANY) or ((rds.rdtype == rdtype) and (rds.covers == covers))):
                (yield (name, rds))
