};
static const char *zonetype_enums[] = {
- "primary", "master", "secondary", "slave",
+ "primary", "master", "secondary", "slave", "mirror",
"delegation-only", "forward", "hint", "redirect",
"static-stub", "stub", NULL
};
static cfg_clausedef_t
zone_clauses[] = {
{ "allow-notify", &cfg_type_bracketed_aml,
- CFG_ZONE_SLAVE
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "allow-query", &cfg_type_bracketed_aml,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB
},
{ "allow-query-on", &cfg_type_bracketed_aml,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB
},
{ "allow-transfer", &cfg_type_bracketed_aml,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "allow-update", &cfg_type_bracketed_aml,
CFG_ZONE_MASTER
},
{ "allow-update-forwarding", &cfg_type_bracketed_aml,
- CFG_ZONE_SLAVE
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "also-notify", &cfg_type_namesockaddrkeylist,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "alt-transfer-source", &cfg_type_sockaddr4wild,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "alt-transfer-source-v6", &cfg_type_sockaddr6wild,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "auto-dnssec", &cfg_type_autodnssec,
CFG_ZONE_MASTER | CFG_ZONE_SLAVE
CFG_CLAUSEFLAG_OBSOLETE
},
{ "masterfile-format", &cfg_type_masterformat,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE |
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT
},
{ "masterfile-style", &cfg_type_masterstyle,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE |
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT
},
{ "max-ixfr-log-size", &cfg_type_size,
CFG_CLAUSEFLAG_OBSOLETE
},
{ "max-journal-size", &cfg_type_size,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "max-records", &cfg_type_uint32,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT
},
{ "max-refresh-time", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "max-retry-time", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "max-transfer-idle-in", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "max-transfer-idle-out", &cfg_type_uint32,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_MIRROR | CFG_ZONE_SLAVE
},
{ "max-transfer-time-in", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "max-transfer-time-out", &cfg_type_uint32,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_MIRROR | CFG_ZONE_SLAVE
},
{ "max-zone-ttl", &cfg_type_maxttl,
CFG_ZONE_MASTER | CFG_ZONE_REDIRECT
},
{ "min-refresh-time", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "min-retry-time", &cfg_type_uint32,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "mirror", &cfg_type_boolean,
CFG_ZONE_SLAVE
},
{ "multi-master", &cfg_type_boolean,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "notify", &cfg_type_notifytype,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "notify-delay", &cfg_type_uint32,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "notify-source", &cfg_type_sockaddr4wild,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "notify-source-v6", &cfg_type_sockaddr6wild,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "notify-to-soa", &cfg_type_boolean,
CFG_ZONE_MASTER | CFG_ZONE_SLAVE
CFG_ZONE_MASTER | CFG_ZONE_SLAVE
},
{ "request-expire", &cfg_type_boolean,
- CFG_ZONE_SLAVE
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "request-ixfr", &cfg_type_boolean,
- CFG_ZONE_SLAVE
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "serial-update-method", &cfg_type_updatemethod,
CFG_ZONE_MASTER
CFG_ZONE_MASTER | CFG_ZONE_SLAVE
},
{ "transfer-source", &cfg_type_sockaddr4wild,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "transfer-source-v6", &cfg_type_sockaddr6wild,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "try-tcp-refresh", &cfg_type_boolean,
- CFG_ZONE_SLAVE
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "update-check-ksk", &cfg_type_boolean,
CFG_ZONE_MASTER | CFG_ZONE_SLAVE
},
{ "use-alt-transfer-source", &cfg_type_boolean,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB
},
{ "zero-no-soa-ttl", &cfg_type_boolean,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "zone-statistics", &cfg_type_zonestat,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT
},
{ NULL, NULL, 0 }
};
* the zone options and the global/view options. Ugh.
*/
{ "type", &cfg_type_zonetype,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_STATICSTUB | CFG_ZONE_DELEGATION | CFG_ZONE_HINT |
- CFG_ZONE_REDIRECT | CFG_ZONE_FORWARD
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_DELEGATION |
+ CFG_ZONE_HINT | CFG_ZONE_REDIRECT | CFG_ZONE_FORWARD
},
{ "check-names", &cfg_type_checkmode,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE |
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
CFG_ZONE_HINT | CFG_ZONE_STUB
},
{ "database", &cfg_type_astring,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB
},
{ "delegation-only", &cfg_type_boolean,
CFG_ZONE_HINT | CFG_ZONE_STUB | CFG_ZONE_FORWARD
CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_REDIRECT
},
{ "file", &cfg_type_qstring,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_STUB |
- CFG_ZONE_HINT | CFG_ZONE_REDIRECT
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR |
+ CFG_ZONE_STUB | CFG_ZONE_HINT | CFG_ZONE_REDIRECT
},
{ "in-view", &cfg_type_astring,
CFG_ZONE_INVIEW
CFG_CLAUSEFLAG_OBSOLETE
},
{ "ixfr-from-differences", &cfg_type_boolean,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "ixfr-tmp-file", &cfg_type_qstring,
CFG_CLAUSEFLAG_OBSOLETE
},
{ "journal", &cfg_type_qstring,
- CFG_ZONE_MASTER | CFG_ZONE_SLAVE
+ CFG_ZONE_MASTER | CFG_ZONE_SLAVE | CFG_ZONE_MIRROR
},
{ "masters", &cfg_type_namesockaddrkeylist,
- CFG_ZONE_SLAVE | CFG_ZONE_STUB | CFG_ZONE_REDIRECT
+ CFG_ZONE_SLAVE | CFG_ZONE_MIRROR | CFG_ZONE_STUB |
+ CFG_ZONE_REDIRECT
},
{ "pubkey", &cfg_type_pubkey,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_OBSOLETE
cfg_print_indent(&pctx);
cfg_print_cstr(&pctx, "type ( slave | secondary );\n");
break;
+ case CFG_ZONE_MIRROR:
+ cfg_print_indent(&pctx);
+ cfg_print_cstr(&pctx, "type mirror;\n");
+ break;
case CFG_ZONE_STUB:
cfg_print_indent(&pctx);
cfg_print_cstr(&pctx, "type stub;\n");