Skip to content

Commit

Permalink
hwaddr: change hwaddr only when valid (bnc#898622)
Browse files Browse the repository at this point in the history
  • Loading branch information
wipawel committed Sep 26, 2014
1 parent ff0c845 commit 69b63d4
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/dbus-objects/dummy.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ ni_objectmodel_dummy_change(ni_dbus_object_t *object, const ni_dbus_method_t *me

if (cfg->link.hwaddr.type == ARPHRD_VOID)
cfg->link.hwaddr.type = ARPHRD_ETHER;
if (ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
if (!ni_link_address_is_invalid(&cfg->link.hwaddr) &&
ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
ni_error("Unable to change hwaddr on dummy interface %s",
dev->name);
/* fail? */
Expand Down
3 changes: 2 additions & 1 deletion src/dbus-objects/ethernet.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ ni_objectmodel_ethernet_setup(ni_dbus_object_t *object, const ni_dbus_method_t *
} else {
if (cfg->link.hwaddr.type == ARPHRD_VOID)
cfg->link.hwaddr.type = ARPHRD_ETHER;
if (ni_system_hwaddr_change(nc, ifp, &cfg->link.hwaddr) < 0) {
if (!ni_link_address_is_invalid(&cfg->link.hwaddr) &&
ni_system_hwaddr_change(nc, ifp, &cfg->link.hwaddr) < 0) {
ni_error("Unable to change hwaddr on ethernet interface %s",
ifp->name);
}
Expand Down
3 changes: 2 additions & 1 deletion src/dbus-objects/macvlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,8 @@ __ni_objectmodel_macvlan_change(ni_netdev_t *cfg, ni_netdev_t *dev, DBusError *e

if (cfg->link.hwaddr.type == ARPHRD_VOID)
cfg->link.hwaddr.type = ARPHRD_ETHER;
if (ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
if (!ni_link_address_is_invalid(&cfg->link.hwaddr) &&
ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
ni_error("Unable to change hwaddr on %s interface %s",
dev_iftype, dev->name);
/* fail? */
Expand Down
3 changes: 2 additions & 1 deletion src/dbus-objects/tuntap.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,8 @@ ni_objectmodel_tuntap_change(ni_dbus_object_t *object, const ni_dbus_method_t *m

if (cfg->link.hwaddr.type == ARPHRD_VOID)
cfg->link.hwaddr.type = ARPHRD_ETHER;
if (ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
if (!ni_link_address_is_invalid(&cfg->link.hwaddr) &&
ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
ni_error("Unable to change hwaddr on %s interface %s",
iftype_name, dev->name);
/* fail? */
Expand Down
3 changes: 2 additions & 1 deletion src/dbus-objects/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@ ni_objectmodel_vlan_change(ni_dbus_object_t *object, const ni_dbus_method_t *met

if (cfg->link.hwaddr.type == ARPHRD_VOID)
cfg->link.hwaddr.type = ARPHRD_ETHER;
if (ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
if (!ni_link_address_is_invalid(&cfg->link.hwaddr) &&
ni_system_hwaddr_change(nc, dev, &cfg->link.hwaddr) < 0) {
ni_error("Unable to change hwaddr on vlan interface %s",
dev->name);
/* fail? */
Expand Down

0 comments on commit 69b63d4

Please sign in to comment.