typedef struct cfg_tuplefielddef cfg_tuplefielddef_t;
typedef struct cfg_printer cfg_printer_t;
typedef ISC_LIST(cfg_listelt_t) cfg_list_t;
-typedef struct cfg_map cfg_map_t;
-typedef struct cfg_rep cfg_rep_t;
+typedef struct cfg_map cfg_map_t;
+typedef struct cfg_map_external cfg_map_external_t;
+typedef struct cfg_rep cfg_rep_t;
/*
* Function types for configuration object methods
isc_symtab_t *symtab;
};
+struct cfg_map_external {
+ cfg_obj_t *id; /*%< Used for 'named maps' like
+ * keys, zones, &c */
+ const cfg_clausedef_t *const *clausesets; /*%< The clauses that
+ * can occur in this map;
+ * used for printing */
+ isc_symtab_t *symtab;
+};
+
typedef struct cfg_netprefix cfg_netprefix_t;
struct cfg_netprefix {
uint64_t uint64;
char *string; /*%< null terminated */
bool boolean;
- cfg_map_t *map;
- cfg_map_t *map_external;
+ cfg_map_t *map;
+ cfg_map_external_t *map_external;
cfg_list_t *list;
cfg_obj_t **tuple;
isc_sockaddr_t *sockaddr;
cfg_map_external_get(const cfg_obj_t *mapobj, const char *name,
const cfg_obj_t **obj) {
isc_symvalue_t val;
- const cfg_map_t *map;
+ const cfg_map_external_t *map;
REQUIRE(mapobj != NULL && mapobj->type->rep == &cfg_rep_map_external);
REQUIRE(name != NULL);
unsigned int
cfg_map_external_count(const cfg_obj_t *mapobj) {
- const cfg_map_t *map;
+ const cfg_map_external_t *map;
REQUIRE(VALID_CFGOBJ(mapobj));
REQUIRE(mapobj->type->rep == &cfg_rep_map_external);
map_define_external(cfg_obj_t *mapobj, cfg_obj_t *obj,
const cfg_clausedef_t *clause) {
isc_result_t result;
- const cfg_map_t *map;
+ const cfg_map_external_t *map;
isc_symvalue_t symval;
map = mapobj->value.map_external;