"Fossies" - the Fresh Open Source Software Archive

Member "bind-9.17.5/lib/dns/include/dns/rdatalist.h" (4 Sep 2020, 2556 Bytes) of package /linux/misc/dns/bind9/9.17.5/bind-9.17.5.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "rdatalist.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
    3  *
    4  * This Source Code Form is subject to the terms of the Mozilla Public
    5  * License, v. 2.0. If a copy of the MPL was not distributed with this
    6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    7  *
    8  * See the COPYRIGHT file distributed with this work for additional
    9  * information regarding copyright ownership.
   10  */
   11 
   12 #ifndef DNS_RDATALIST_H
   13 #define DNS_RDATALIST_H 1
   14 
   15 /*****
   16 ***** Module Info
   17 *****/
   18 
   19 /*! \file dns/rdatalist.h
   20  * \brief
   21  * A DNS rdatalist is a list of rdata of a common type and class.
   22  *
   23  * MP:
   24  *\li   Clients of this module must impose any required synchronization.
   25  *
   26  * Reliability:
   27  *\li   No anticipated impact.
   28  *
   29  * Resources:
   30  *\li   TBS
   31  *
   32  * Security:
   33  *\li   No anticipated impact.
   34  *
   35  * Standards:
   36  *\li   None.
   37  */
   38 
   39 #include <isc/lang.h>
   40 
   41 #include <dns/types.h>
   42 
   43 /*%
   44  * Clients may use this type directly.
   45  */
   46 struct dns_rdatalist {
   47     dns_rdataclass_t rdclass;
   48     dns_rdatatype_t  type;
   49     dns_rdatatype_t  covers;
   50     dns_ttl_t    ttl;
   51     ISC_LIST(dns_rdata_t) rdata;
   52     ISC_LINK(dns_rdatalist_t) link;
   53     /*%<
   54      * Case vector.  If the bit is set then the corresponding
   55      * character in the owner name needs to be AND'd with 0x20,
   56      * rendering that character upper case.
   57      */
   58     unsigned char upper[32];
   59 };
   60 
   61 ISC_LANG_BEGINDECLS
   62 
   63 void
   64 dns_rdatalist_init(dns_rdatalist_t *rdatalist);
   65 /*%<
   66  * Initialize rdatalist.
   67  *
   68  * Ensures:
   69  *\li   All fields of rdatalist have been initialized to their default
   70  *  values.
   71  */
   72 
   73 isc_result_t
   74 dns_rdatalist_tordataset(dns_rdatalist_t *rdatalist, dns_rdataset_t *rdataset);
   75 /*%<
   76  * Make 'rdataset' refer to the rdata in 'rdatalist'.
   77  *
   78  * Note:
   79  *\li   The caller must ensure that 'rdatalist' remains valid and unchanged
   80  *  while 'rdataset' is associated with it.
   81  *
   82  * Requires:
   83  *
   84  *\li   'rdatalist' is a valid rdatalist.
   85  *
   86  *\li   'rdataset' is a valid rdataset that is not currently associated with
   87  *  any rdata.
   88  *
   89  * Ensures,
   90  *  on success,
   91  *
   92  *\li       'rdataset' is associated with the rdata in rdatalist.
   93  *
   94  * Returns:
   95  *\li   #ISC_R_SUCCESS
   96  */
   97 
   98 isc_result_t
   99 dns_rdatalist_fromrdataset(dns_rdataset_t *  rdataset,
  100                dns_rdatalist_t **rdatalist);
  101 /*%<
  102  * Point 'rdatalist' to the rdatalist in 'rdataset'.
  103  *
  104  * Requires:
  105  *
  106  *\li   'rdatalist' is a pointer to a NULL dns_rdatalist_t pointer.
  107  *
  108  *\li   'rdataset' is a valid rdataset associated with an rdatalist.
  109  *
  110  * Ensures,
  111  *  on success,
  112  *
  113  *\li       'rdatalist' is pointed to the rdatalist in rdataset.
  114  *
  115  * Returns:
  116  *\li   #ISC_R_SUCCESS
  117  */
  118 
  119 ISC_LANG_ENDDECLS
  120 
  121 #endif /* DNS_RDATALIST_H */