network: Handle interface name changes
The interface name when a device is added may not be the final one. For example when using USB tethering, it will first appear as 'usb0' before being renamed to something like 'enp0s20f0u1' depending on the port the phone is plugged in. As a result, we will ignore the new interface name in that case and fail to associate the correct connection with the device: Instead of the correct "USB Ethernet" (or user-customized name), it will show up as "Ethernet". Fix this by updating names and connections when a device's interface property changes. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/534
This commit is contained in:
parent
03117d65b2
commit
d9bfa16f05
@ -1731,14 +1731,24 @@ var NMApplet = class extends PanelMenu.SystemIndicator {
|
|||||||
this._addDeviceWrapper(wrapper);
|
this._addDeviceWrapper(wrapper);
|
||||||
|
|
||||||
this._nmDevices.push(device);
|
this._nmDevices.push(device);
|
||||||
if (!skipSyncDeviceNames)
|
this._deviceChanged(device, skipSyncDeviceNames);
|
||||||
this._syncDeviceNames();
|
|
||||||
|
|
||||||
if (wrapper instanceof NMConnectionSection) {
|
device.connect('notify::interface', () => {
|
||||||
this._connections.forEach(connection => {
|
this._deviceChanged(device, false);
|
||||||
wrapper.checkConnection(connection);
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_deviceChanged(device, skipSyncDeviceNames) {
|
||||||
|
let wrapper = device._delegate;
|
||||||
|
|
||||||
|
if (!skipSyncDeviceNames)
|
||||||
|
this._syncDeviceNames();
|
||||||
|
|
||||||
|
if (wrapper instanceof NMConnectionSection) {
|
||||||
|
this._connections.forEach(connection => {
|
||||||
|
wrapper.checkConnection(connection);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user