Lines Matching defs:it

35 dns_rriterator_init(dns_rriterator_t *it, dns_db_t *db, dns_dbversion_t *ver,
39 it->magic = RRITERATOR_MAGIC;
40 it->db = db;
41 it->dbit = NULL;
42 it->ver = ver;
43 it->now = now;
44 it->node = NULL;
45 result = dns_db_createiterator(it->db, 0, &it->dbit);
48 it->rdatasetit = NULL;
49 dns_rdata_init(&it->rdata);
50 dns_rdataset_init(&it->rdataset);
51 dns_fixedname_init(&it->fixedname);
52 INSIST(! dns_rdataset_isassociated(&it->rdataset));
53 it->result = ISC_R_SUCCESS;
54 return (it->result);
58 dns_rriterator_first(dns_rriterator_t *it) {
59 REQUIRE(VALID_RRITERATOR(it));
61 if (dns_rdataset_isassociated(&it->rdataset))
62 dns_rdataset_disassociate(&it->rdataset);
63 if (it->rdatasetit != NULL)
64 dns_rdatasetiter_destroy(&it->rdatasetit);
65 if (it->node != NULL)
66 dns_db_detachnode(it->db, &it->node);
67 it->result = dns_dbiterator_first(it->dbit);
73 while (it->result == ISC_R_SUCCESS) {
74 it->result = dns_dbiterator_current(it->dbit, &it->node,
75 dns_fixedname_name(&it->fixedname));
76 if (it->result != ISC_R_SUCCESS)
77 return (it->result);
79 it->result = dns_db_allrdatasets(it->db, it->node, it->ver,
80 it->now, &it->rdatasetit);
81 if (it->result != ISC_R_SUCCESS)
82 return (it->result);
84 it->result = dns_rdatasetiter_first(it->rdatasetit);
85 if (it->result != ISC_R_SUCCESS) {
89 dns_rdatasetiter_destroy(&it->rdatasetit);
90 dns_db_detachnode(it->db, &it->node);
91 it->result = dns_dbiterator_next(it->dbit);
94 dns_rdatasetiter_current(it->rdatasetit, &it->rdataset);
95 dns_rdataset_getownercase(&it->rdataset,
96 dns_fixedname_name(&it->fixedname));
97 it->rdataset.attributes |= DNS_RDATASETATTR_LOADORDER;
98 it->result = dns_rdataset_first(&it->rdataset);
99 return (it->result);
101 return (it->result);
105 dns_rriterator_nextrrset(dns_rriterator_t *it) {
106 REQUIRE(VALID_RRITERATOR(it));
107 if (dns_rdataset_isassociated(&it->rdataset))
108 dns_rdataset_disassociate(&it->rdataset);
109 it->result = dns_rdatasetiter_next(it->rdatasetit);
114 while (it->result == ISC_R_NOMORE) {
115 dns_rdatasetiter_destroy(&it->rdatasetit);
116 dns_db_detachnode(it->db, &it->node);
117 it->result = dns_dbiterator_next(it->dbit);
118 if (it->result == ISC_R_NOMORE) {
120 return (it->result);
122 if (it->result != ISC_R_SUCCESS)
123 return (it->result);
124 it->result = dns_dbiterator_current(it->dbit, &it->node,
125 dns_fixedname_name(&it->fixedname));
126 if (it->result != ISC_R_SUCCESS)
127 return (it->result);
128 it->result = dns_db_allrdatasets(it->db, it->node, it->ver,
129 it->now, &it->rdatasetit);
130 if (it->result != ISC_R_SUCCESS)
131 return (it->result);
132 it->result = dns_rdatasetiter_first(it->rdatasetit);
134 if (it->result != ISC_R_SUCCESS)
135 return (it->result);
136 dns_rdatasetiter_current(it->rdatasetit, &it->rdataset);
137 dns_rdataset_getownercase(&it->rdataset,
138 dns_fixedname_name(&it->fixedname));
139 it->rdataset.attributes |= DNS_RDATASETATTR_LOADORDER;
140 it->result = dns_rdataset_first(&it->rdataset);
141 return (it->result);
145 dns_rriterator_next(dns_rriterator_t *it) {
146 REQUIRE(VALID_RRITERATOR(it));
147 if (it->result != ISC_R_SUCCESS)
148 return (it->result);
150 INSIST(it->dbit != NULL);
151 INSIST(it->node != NULL);
152 INSIST(it->rdatasetit != NULL);
154 it->result = dns_rdataset_next(&it->rdataset);
155 if (it->result == ISC_R_NOMORE)
156 return (dns_rriterator_nextrrset(it));
157 return (it->result);
161 dns_rriterator_pause(dns_rriterator_t *it) {
162 REQUIRE(VALID_RRITERATOR(it));
163 RUNTIME_CHECK(dns_dbiterator_pause(it->dbit) == ISC_R_SUCCESS);
167 dns_rriterator_destroy(dns_rriterator_t *it) {
168 REQUIRE(VALID_RRITERATOR(it));
169 if (dns_rdataset_isassociated(&it->rdataset))
170 dns_rdataset_disassociate(&it->rdataset);
171 if (it->rdatasetit != NULL)
172 dns_rdatasetiter_destroy(&it->rdatasetit);
173 if (it->node != NULL)
174 dns_db_detachnode(it->db, &it->node);
175 dns_dbiterator_destroy(&it->dbit);
179 dns_rriterator_current(dns_rriterator_t *it, dns_name_t **name,
184 REQUIRE(VALID_RRITERATOR(it));
185 REQUIRE(it->result == ISC_R_SUCCESS);
189 *name = dns_fixedname_name(&it->fixedname);
190 *ttl = it->rdataset.ttl;
192 dns_rdata_reset(&it->rdata);
193 dns_rdataset_current(&it->rdataset, &it->rdata);
196 *rdataset = &it->rdataset;
199 *rdata = &it->rdata;