1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2024-12-22 17:34:18 +03:00

Revert "network: allow "modify" option for DNS-Srv records"

This reverts commit cf934c87cc.

The matching logic is flawed and it would complicate support of
this command.

Signed-off-by: Adam Julis <ajulis@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Adam Julis 2024-08-05 10:50:43 +02:00 committed by Martin Kletzander
parent 49433d41e4
commit 30a71fd6a0
5 changed files with 7 additions and 58 deletions

View File

@ -3257,6 +3257,12 @@ virNetworkDefUpdateDNSSrv(virNetworkDef *def,
command == VIR_NETWORK_UPDATE_COMMAND_ADD_LAST);
int foundCt = 0;
if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("DNS SRV records cannot be modified, only added or deleted"));
goto cleanup;
}
if (virNetworkDefUpdateCheckElementName(def, ctxt->node, "srv") < 0)
goto cleanup;
@ -3306,27 +3312,6 @@ virNetworkDefUpdateDNSSrv(virNetworkDef *def,
virNetworkDNSSrvDefClear(&dns->srvs[foundIdx]);
VIR_DELETE_ELEMENT(dns->srvs, foundIdx, dns->nsrvs);
} else if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
if (foundCt == 0) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("couldn't locate a matching DNS SRV record in network %1$s"),
def->name);
goto cleanup;
}
if (foundCt > 1) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("multiple DNS SRV records matching all specified fields were found in network %1$s"),
def->name);
goto cleanup;
}
virNetworkDNSSrvDefClear(&dns->srvs[foundIdx]);
memcpy(&dns->srvs[foundIdx], &srv, sizeof(virNetworkDNSSrvDef));
memset(&srv, 0, sizeof(virNetworkDNSSrvDef));
} else {
virNetworkDefUpdateUnknownCommand(command);
goto cleanup;

View File

@ -1 +0,0 @@
<srv service='name' protocol='tcp' domain='unknown-domain' target='.' port='666' priority='99' weight='10'/>

View File

@ -1 +0,0 @@
<srv service='name' protocol='tcp' domain='test-domain-name' target='.' port='1221' priority='42' weight='69'/>

View File

@ -1,26 +0,0 @@
<network>
<name>default</name>
<uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
<forward dev='eth1' mode='nat'>
<interface dev='eth1'/>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<dns>
<srv service='name' protocol='tcp' domain='test-domain-name' target='.' port='1221' priority='42' weight='69'/>
</dns>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
<host mac='00:16:3e:77:e2:ed' name='a.example.com' ip='192.168.122.10'/>
<host mac='00:16:3e:3e:a9:1a' name='b.example.com' ip='192.168.122.11'/>
</dhcp>
</ip>
<ip family='ipv4' address='192.168.123.1' netmask='255.255.255.0'>
</ip>
<ip family='ipv6' address='2001:db8:ac10:fe01::1' prefix='64'>
</ip>
<ip family='ipv6' address='2001:db8:ac10:fd01::1' prefix='64'>
</ip>
<ip family='ipv4' address='10.24.10.1'>
</ip>
</network>

View File

@ -337,6 +337,7 @@ mymain(void)
"nat-network-dns-srv-record",
"nat-network-dns-srv-records",
VIR_NETWORK_UPDATE_COMMAND_ADD_LAST);
DO_TEST_FAIL("delete-missing-srv-record-service",
"srv-record-service",
"nat-network",
@ -359,15 +360,6 @@ mymain(void)
"nat-network-dns-srv-record",
"nat-network",
VIR_NETWORK_UPDATE_COMMAND_DELETE);
DO_TEST("modify-srv-record-protocol",
"srv-record-modify-few",
"nat-network-dns-srv-record",
"nat-network-dns-srv-modify-few",
VIR_NETWORK_UPDATE_COMMAND_MODIFY);
DO_TEST_FAIL("modify-not-existing-srv-record",
"srv-not-existing",
"nat-network-dns-srv-record",
VIR_NETWORK_UPDATE_COMMAND_MODIFY);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;