+3908. [bug] rndc now differentiates between a zone in multiple
+ views and a zone that doesn't exist at all. [RT #36691]
+
3907. [cleanup] Alphabetise rndc help. [RT#36683]
3906. [protocol] Update URI record format to comply with
snprintf(problem, sizeof(problem),
"no matching zone '%s' in any view",
zonetxt);
+ else if (result == ISC_R_MULTIPLE)
+ snprintf(problem, sizeof(problem),
+ "zone '%s' was found in multiple views",
+ zonetxt);
} else {
result = dns_viewlist_find(&server->viewlist, viewtxt,
rdclass, &view);
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: named.conf,v 1.3 2012/01/31 23:47:32 tbox Exp $ */
-
// NS1
controls { /* empty */ };
inet 10.53.0.1 port 9953 allow { any; } keys { rndc_key; };
};
-zone "master.example" {
- type master;
- file "master.db";
- allow-update { any; };
- allow-transfer { any; };
- auto-dnssec maintain;
+view unused {
+ match-clients { none; };
+
+ zone "duplicate.example" {
+ type master;
+ file "duplicate.db";
+ };
};
-zone "reload.example" {
- type master;
- file "reload.db";
+view primary {
+ match-clients { any; };
+
+ zone "master.example" {
+ type master;
+ file "master.db";
+ allow-update { any; };
+ allow-transfer { any; };
+ auto-dnssec maintain;
+ };
+
+ zone "reload.example" {
+ type master;
+ file "reload.db";
+ };
+
+ zone "duplicate.example" {
+ type master;
+ file "duplicate.db";
+ };
};
test -r $RANDFILE || $GENRANDOM 400 $RANDFILE
$SHELL ../genzone.sh 1 > ns1/master.db
+$SHELL ../genzone.sh 1 > ns1/duplicate.db
cd ns1
touch master.db.signed
echo '$INCLUDE "master.db.signed"' >> master.db
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: tests.sh,v 1.10 2012/02/02 03:26:55 marka Exp $
-
SYSTEMTESTTOP=..
. $SYSTEMTESTTOP/conf.sh
if [ $ret != 0 ]; then echo "I:failed"; fi
status=`expr $status + $ret`
+echo "I: checking 'rdnc zonestatus' with duplicated zone name"
+ret=0
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 zonestatus duplicate.example > rndc.out.duplicate 2>&1
+checkfor "zone 'duplicate.example' was found in multiple views" rndc.out.duplicate
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 zonestatus duplicate.example in primary > rndc.out.duplicate 2>&1
+checkfor "name: duplicate.example" rndc.out.duplicate
+$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 zonestatus nosuchzone.example > rndc.out.duplicate 2>&1
+checkfor "no matching zone 'nosuchzone.example' in any view" rndc.out.duplicate
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
echo "I:exit status: $status"
exit $status
* Returns:
*\li #ISC_R_SUCCESS A matching zone was found.
*\li #ISC_R_NOTFOUND No matching zone was found.
+ *\li #ISC_R_MULTIPLE Multiple zones with the same name were found.
*/
isc_result_t
if (zone2 != NULL) {
dns_zone_detach(&zone1);
dns_zone_detach(&zone2);
- return (ISC_R_NOTFOUND);
+ return (ISC_R_MULTIPLE);
}
}
#define ISC_R_BADADDRESSFORM 59 /*%< invalid address format */
#define ISC_R_BADBASE32 60 /*%< bad base32 encoding */
#define ISC_R_UNSET 61 /*%< unset */
+#define ISC_R_MULTIPLE 62 /*%< multiple */
/*% Not a result code: the number of results. */
-#define ISC_R_NRESULTS 62
+#define ISC_R_NRESULTS 63
ISC_LANG_BEGINDECLS
"invalid address format", /*%< 59 */
"bad base32 encoding", /*%< 60 */
"unset", /*%< 61 */
+ "multiple", /*%< 62 */
};
#define ISC_RESULT_RESULTSET 2