From fcf555fea531dd1dd86e9eecb7a1694f54f5fab8 Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 16 Jan 2022 19:35:57 +0530 Subject: [PATCH] PrimarySubDomainZone: Fixed UpdateRecord() to handle error case correctly. --- DnsServerCore/Dns/Zones/PrimarySubDomainZone.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DnsServerCore/Dns/Zones/PrimarySubDomainZone.cs b/DnsServerCore/Dns/Zones/PrimarySubDomainZone.cs index 217ac36e..06762a5e 100644 --- a/DnsServerCore/Dns/Zones/PrimarySubDomainZone.cs +++ b/DnsServerCore/Dns/Zones/PrimarySubDomainZone.cs @@ -1,6 +1,6 @@ /* Technitium DNS Server -Copyright (C) 2021 Shreyas Zare (shreyas@technitium.com) +Copyright (C) 2022 Shreyas Zare (shreyas@technitium.com) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -94,7 +94,9 @@ namespace DnsServerCore.Dns.Zones if (oldRecord.Type != newRecord.Type) throw new InvalidOperationException("Old and new record types do not match."); - DeleteRecord(oldRecord.Type, oldRecord.RDATA, out DnsResourceRecord deletedRecord); + if (!DeleteRecord(oldRecord.Type, oldRecord.RDATA, out DnsResourceRecord deletedRecord)) + throw new InvalidOperationException("Cannot update record: the record does not exists to be updated."); + base.AddRecord(newRecord); _primaryZone.CommitAndIncrementSerial(new DnsResourceRecord[] { deletedRecord }, new DnsResourceRecord[] { newRecord });