mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
Allow updating names in DHCP hosts by matching IPs.
Also fix the error message if an IPv6 host with no MAC is not found. https://bugzilla.redhat.com/show_bug.cgi?id=991290
This commit is contained in:
parent
3d8d18f673
commit
2d49518a53
@ -3480,11 +3480,13 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
|
|||||||
|
|
||||||
if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
|
if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
|
||||||
|
|
||||||
/* search for the entry with this (mac|name),
|
/* search for the entry with this (ip|mac|name),
|
||||||
* and update the IP+(mac|name) */
|
* and update the IP+(mac|name) */
|
||||||
for (i = 0; i < ipdef->nhosts; i++) {
|
for (i = 0; i < ipdef->nhosts; i++) {
|
||||||
if ((host.mac &&
|
if ((host.mac &&
|
||||||
!virMacAddrCompare(host.mac, ipdef->hosts[i].mac)) ||
|
!virMacAddrCompare(host.mac, ipdef->hosts[i].mac)) ||
|
||||||
|
(VIR_SOCKET_ADDR_VALID(&host.ip) &&
|
||||||
|
virSocketAddrEqual(&host.ip, &ipdef->hosts[i].ip)) ||
|
||||||
(host.name &&
|
(host.name &&
|
||||||
STREQ_NULLABLE(host.name, ipdef->hosts[i].name))) {
|
STREQ_NULLABLE(host.name, ipdef->hosts[i].name))) {
|
||||||
break;
|
break;
|
||||||
@ -3492,10 +3494,14 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i == ipdef->nhosts) {
|
if (i == ipdef->nhosts) {
|
||||||
|
char *ip = virSocketAddrFormat(&host.ip);
|
||||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||||
_("couldn't locate an existing dhcp host entry with "
|
_("couldn't locate an existing dhcp host entry with "
|
||||||
"\"mac='%s'\" in network '%s'"),
|
"\"mac='%s'\" \"name='%s'\" \"ip='%s'\" in"
|
||||||
host.mac, def->name);
|
" network '%s'"),
|
||||||
|
host.mac ? host.mac : _("unknown"), host.name,
|
||||||
|
ip ? ip : _("unknown"), def->name);
|
||||||
|
VIR_FREE(ip);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3524,8 +3530,8 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
|
|||||||
_("there is an existing dhcp host entry in "
|
_("there is an existing dhcp host entry in "
|
||||||
"network '%s' that matches "
|
"network '%s' that matches "
|
||||||
"\"<host mac='%s' name='%s' ip='%s'/>\""),
|
"\"<host mac='%s' name='%s' ip='%s'/>\""),
|
||||||
def->name, host.mac, host.name,
|
def->name, host.mac ? host.mac : _("unknown"),
|
||||||
ip ? ip : "unknown");
|
host.name, ip ? ip : _("unknown"));
|
||||||
VIR_FREE(ip);
|
VIR_FREE(ip);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user