"Fossies" - the Fresh Open Source Software Archive

Member "bind-9.11.23/lib/isccfg/include/isccfg/aclconf.h" (7 Sep 2020, 2578 Bytes) of package /linux/misc/dns/bind9/9.11.23/bind-9.11.23.tar.gz:


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 "aclconf.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 
   13 #ifndef ISCCFG_ACLCONF_H
   14 #define ISCCFG_ACLCONF_H 1
   15 
   16 #include <inttypes.h>
   17 
   18 #include <isc/lang.h>
   19 #include <isc/refcount.h>
   20 
   21 #include <isccfg/cfg.h>
   22 
   23 #include <dns/geoip.h>
   24 #include <dns/types.h>
   25 
   26 typedef struct cfg_aclconfctx {
   27     ISC_LIST(dns_acl_t) named_acl_cache;
   28     isc_mem_t *mctx;
   29 #if defined(HAVE_GEOIP) || defined(HAVE_GEOIP2)
   30     dns_geoip_databases_t *geoip;
   31 #endif
   32     isc_refcount_t references;
   33 } cfg_aclconfctx_t;
   34 
   35 /***
   36  *** Functions
   37  ***/
   38 
   39 ISC_LANG_BEGINDECLS
   40 
   41 isc_result_t
   42 cfg_aclconfctx_create(isc_mem_t *mctx, cfg_aclconfctx_t **ret);
   43 /*
   44  * Creates and initializes an ACL configuration context.
   45  */
   46 
   47 void
   48 cfg_aclconfctx_detach(cfg_aclconfctx_t **actxp);
   49 /*
   50  * Removes a reference to an ACL configuration context; when references
   51  * reaches zero, clears the contents and deallocate the structure.
   52  */
   53 
   54 void
   55 cfg_aclconfctx_attach(cfg_aclconfctx_t *src, cfg_aclconfctx_t **dest);
   56 /*
   57  * Attaches a pointer to an existing ACL configuration context.
   58  */
   59 
   60 isc_result_t
   61 cfg_acl_fromconfig(const cfg_obj_t *caml, const cfg_obj_t *cctx,
   62            isc_log_t *lctx, cfg_aclconfctx_t *ctx,
   63            isc_mem_t *mctx, unsigned int nest_level,
   64            dns_acl_t **target);
   65 
   66 isc_result_t
   67 cfg_acl_fromconfig2(const cfg_obj_t *caml, const cfg_obj_t *cctx,
   68            isc_log_t *lctx, cfg_aclconfctx_t *ctx,
   69            isc_mem_t *mctx, unsigned int nest_level,
   70            uint16_t family, dns_acl_t **target);
   71 /*
   72  * Construct a new dns_acl_t from configuration data in 'caml' and
   73  * 'cctx'.  Memory is allocated through 'mctx'.
   74  *
   75  * Any named ACLs referred to within 'caml' will be be converted
   76  * into nested dns_acl_t objects.  Multiple references to the same
   77  * named ACLs will be converted into shared references to a single
   78  * nested dns_acl_t object when the referring objects were created
   79  * passing the same ACL configuration context 'ctx'.
   80  *
   81  * cfg_acl_fromconfig() is a backward-compatible version of
   82  * cfg_acl_fromconfig2(), which allows an address family to be
   83  * specified.  If 'family' is not zero, then only addresses/prefixes
   84  * of a matching family (AF_INET or AF_INET6) may be configured.
   85  *
   86  * On success, attach '*target' to the new dns_acl_t object.
   87  */
   88 
   89 ISC_LANG_ENDDECLS
   90 
   91 #endif /* ISCCFG_ACLCONF_H */