__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef DNS_RDATASETITER_H
#define DNS_RDATASETITER_H 1
/*****
***** Module Info
*****/
/*! \file dns/rdatasetiter.h
* \brief
* The DNS Rdataset Iterator interface allows iteration of all of the
* rdatasets at a node.
*
* The dns_rdatasetiter_t type is like a "virtual class". To actually use
* it, an implementation of the class is required. This implementation is
* supplied by the database.
*
* It is the client's responsibility to call dns_rdataset_disassociate()
* on all rdatasets returned.
*
* XXX more XXX
*
* MP:
*\li The iterator itself is not locked. The caller must ensure
* synchronization.
*
*\li The iterator methods ensure appropriate database locking.
*
* Reliability:
*\li No anticipated impact.
*
* Resources:
*\li TBS
*
* Security:
*\li No anticipated impact.
*
* Standards:
*\li None.
*/
/*****
***** Imports
*****/
#include <isc/lang.h>
#include <isc/magic.h>
#include <isc/stdtime.h>
#include <dns/types.h>
ISC_LANG_BEGINDECLS
/*****
***** Types
*****/
typedef struct dns_rdatasetitermethods {
void (*destroy)(dns_rdatasetiter_t **iteratorp);
isc_result_t (*first)(dns_rdatasetiter_t *iterator);
isc_result_t (*next)(dns_rdatasetiter_t *iterator);
void (*current)(dns_rdatasetiter_t *iterator,
dns_rdataset_t *rdataset);
} dns_rdatasetitermethods_t;
#define DNS_RDATASETITER_MAGIC ISC_MAGIC('D','N','S','i')
#define DNS_RDATASETITER_VALID(i) ISC_MAGIC_VALID(i, DNS_RDATASETITER_MAGIC)
/*%
* This structure is actually just the common prefix of a DNS db
* implementation's version of a dns_rdatasetiter_t.
* \brief
* Direct use of this structure by clients is forbidden. DB implementations
* may change the structure. 'magic' must be #DNS_RDATASETITER_MAGIC for
* any of the dns_rdatasetiter routines to work. DB implementations must
* maintain all DB rdataset iterator invariants.
*/
struct dns_rdatasetiter {
/* Unlocked. */
unsigned int magic;
dns_rdatasetitermethods_t * methods;
dns_db_t * db;
dns_dbnode_t * node;
dns_dbversion_t * version;
isc_stdtime_t now;
};
void
dns_rdatasetiter_destroy(dns_rdatasetiter_t **iteratorp);
/*%<
* Destroy '*iteratorp'.
*
* Requires:
*
*\li '*iteratorp' is a valid iterator.
*
* Ensures:
*
*\li All resources used by the iterator are freed.
*
*\li *iteratorp == NULL.
*/
isc_result_t
dns_rdatasetiter_first(dns_rdatasetiter_t *iterator);
/*%<
* Move the rdataset cursor to the first rdataset at the node (if any).
*
* Requires:
*\li 'iterator' is a valid iterator.
*
* Returns:
*\li ISC_R_SUCCESS
*\li ISC_R_NOMORE There are no rdatasets at the node.
*
*\li Other results are possible, depending on the DB implementation.
*/
isc_result_t
dns_rdatasetiter_next(dns_rdatasetiter_t *iterator);
/*%<
* Move the rdataset cursor to the next rdataset at the node (if any).
*
* Requires:
*\li 'iterator' is a valid iterator.
*
* Returns:
*\li ISC_R_SUCCESS
*\li ISC_R_NOMORE There are no more rdatasets at the
* node.
*
*\li Other results are possible, depending on the DB implementation.
*/
void
dns_rdatasetiter_current(dns_rdatasetiter_t *iterator,
dns_rdataset_t *rdataset);
/*%<
* Return the current rdataset.
*
* Requires:
*\li 'iterator' is a valid iterator.
*
*\li 'rdataset' is a valid, disassociated rdataset.
*
*\li The rdataset cursor of 'iterator' is at a valid location (i.e. the
* result of last call to a cursor movement command was #ISC_R_SUCCESS).
*/
ISC_LANG_ENDDECLS
#endif /* DNS_RDATASETITER_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| acache.h | File | 13.99 KB | 0644 |
|
| acl.h | File | 7.1 KB | 0644 |
|
| adb.h | File | 22.03 KB | 0644 |
|
| badcache.h | File | 3.28 KB | 0644 |
|
| bit.h | File | 856 B | 0644 |
|
| byaddr.h | File | 3.89 KB | 0644 |
|
| cache.h | File | 7.95 KB | 0644 |
|
| callbacks.h | File | 2.22 KB | 0644 |
|
| catz.h | File | 10.74 KB | 0644 |
|
| cert.h | File | 1.43 KB | 0644 |
|
| client.h | File | 21.52 KB | 0644 |
|
| clientinfo.h | File | 1.95 KB | 0644 |
|
| compress.h | File | 6.51 KB | 0644 |
|
| db.h | File | 44.68 KB | 0644 |
|
| dbiterator.h | File | 7.26 KB | 0644 |
|
| dbtable.h | File | 3.09 KB | 0644 |
|
| diff.h | File | 6.82 KB | 0644 |
|
| dispatch.h | File | 16.05 KB | 0644 |
|
| dlz.h | File | 10.38 KB | 0644 |
|
| dlz_dlopen.h | File | 4.54 KB | 0644 |
|
| dns64.h | File | 5.51 KB | 0644 |
|
| dnssec.h | File | 12 KB | 0644 |
|
| dnstap.h | File | 9.2 KB | 0644 |
|
| ds.h | File | 1.19 KB | 0644 |
|
| dsdigest.h | File | 1.68 KB | 0644 |
|
| dyndb.h | File | 4.72 KB | 0644 |
|
| ecdb.h | File | 808 B | 0644 |
|
| edns.h | File | 721 B | 0644 |
|
| enumclass.h | File | 1.19 KB | 0644 |
|
| enumtype.h | File | 7.74 KB | 0644 |
|
| events.h | File | 3.96 KB | 0644 |
|
| fixedname.h | File | 1.56 KB | 0644 |
|
| forward.h | File | 3.37 KB | 0644 |
|
| geoip.h | File | 2.34 KB | 0644 |
|
| ipkeylist.h | File | 2.12 KB | 0644 |
|
| iptable.h | File | 1.6 KB | 0644 |
|
| journal.h | File | 8.05 KB | 0644 |
|
| keydata.h | File | 1.02 KB | 0644 |
|
| keyflags.h | File | 1.25 KB | 0644 |
|
| keytable.h | File | 9.28 KB | 0644 |
|
| keyvalues.h | File | 4.06 KB | 0644 |
|
| lib.h | File | 1.16 KB | 0644 |
|
| log.h | File | 3.87 KB | 0644 |
|
| lookup.h | File | 2.85 KB | 0644 |
|
| master.h | File | 11.08 KB | 0644 |
|
| masterdump.h | File | 12.35 KB | 0644 |
|
| message.h | File | 38.28 KB | 0644 |
|
| name.h | File | 36.28 KB | 0644 |
|
| ncache.h | File | 4.8 KB | 0644 |
|
| nsec.h | File | 2.88 KB | 0644 |
|
| nsec3.h | File | 8.17 KB | 0644 |
|
| nta.h | File | 4.32 KB | 0644 |
|
| opcode.h | File | 1006 B | 0644 |
|
| order.h | File | 1.95 KB | 0644 |
|
| peer.h | File | 6.06 KB | 0644 |
|
| portlist.h | File | 2.05 KB | 0644 |
|
| private.h | File | 1.9 KB | 0644 |
|
| rbt.h | File | 39.7 KB | 0644 |
|
| rcode.h | File | 2.42 KB | 0644 |
|
| rdata.h | File | 20.92 KB | 0644 |
|
| rdataclass.h | File | 2.2 KB | 0644 |
|
| rdatalist.h | File | 2.51 KB | 0644 |
|
| rdataset.h | File | 20.47 KB | 0644 |
|
| rdatasetiter.h | File | 3.83 KB | 0644 |
|
| rdataslab.h | File | 4.29 KB | 0644 |
|
| rdatastruct.h | File | 57.57 KB | 0644 |
|
| rdatatype.h | File | 2.24 KB | 0644 |
|
| request.h | File | 10.89 KB | 0644 |
|
| resolver.h | File | 18.53 KB | 0644 |
|
| result.h | File | 8.57 KB | 0644 |
|
| rootns.h | File | 891 B | 0644 |
|
| rpz.h | File | 10.09 KB | 0644 |
|
| rriterator.h | File | 4.17 KB | 0644 |
|
| rrl.h | File | 6.49 KB | 0644 |
|
| sdb.h | File | 7.04 KB | 0644 |
|
| sdlz.h | File | 13.87 KB | 0644 |
|
| secalg.h | File | 1.67 KB | 0644 |
|
| secproto.h | File | 1.52 KB | 0644 |
|
| soa.h | File | 2.17 KB | 0644 |
|
| ssu.h | File | 8.09 KB | 0644 |
|
| stats.h | File | 13.15 KB | 0644 |
|
| tcpmsg.h | File | 3.05 KB | 0644 |
|
| time.h | File | 1.66 KB | 0644 |
|
| timer.h | File | 1.02 KB | 0644 |
|
| tkey.h | File | 7.43 KB | 0644 |
|
| tsec.h | File | 2.88 KB | 0644 |
|
| tsig.h | File | 8.06 KB | 0644 |
|
| ttl.h | File | 1.93 KB | 0644 |
|
| types.h | File | 13.65 KB | 0644 |
|
| update.h | File | 1.61 KB | 0644 |
|
| validator.h | File | 7 KB | 0644 |
|
| version.h | File | 867 B | 0644 |
|
| view.h | File | 34.69 KB | 0644 |
|
| xfrin.h | File | 2.85 KB | 0644 |
|
| zone.h | File | 59.8 KB | 0644 |
|
| zonekey.h | File | 763 B | 0644 |
|
| zt.h | File | 5.31 KB | 0644 |
|