| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Taking an additional reference is potentially harmful, because it
means that a pending DAD keeps NMDevice alive.
That brings up issues with the lifetime and the signal-handler.
There are at least three solutions (which all have downsides):
- register arping_data->device with g_object_add_weak_pointer().
- disconnect the signal when cleaning up the arping_manager.
- ensure we don't take an addtional reference and add a code
comment about that.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Leaked the list
|
|
|
|
|
|
|
| |
Ensure that the arping manager is also reset by using
nm_arping_manager_free().
Also, dispose() must clear the dangling pointer arping.announce.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The AddressInfo item is stored in priv->addresses,
and thus has a smaller lifetime then the NMArpingManager.
No need to take an additional reference -- actually it could
be bad because it extends the lifetime of the instance.
|
|
|
|
| |
Use slice allocator.
|
| |
|
|
|
|
|
|
|
| |
Add a new object which implements the logic for announcing IP
addresses and detecting duplicates using arping.
Based-on-patch-by: Jiří Klimeš <jklimes@redhat.com>
|
| |
|
|
|
|
| |
ARPING_WAIT is used for DAD by Red Hat initscrips (ifup-eth).
|
|
|
|
|
|
|
|
|
| |
The property is used to control duplicate address detection:
* -1 means default value
* 0 means no DAD is performed
* > 0 means timeout (in milliseconds) for arping responses
[bgalvani: moved setting from NMSettingIP4Config]
|
|\
| |
| |
| | |
https://bugzilla.redhat.com/show_bug.cgi?id=1286105
|
| |
| |
| |
| | |
https://bugzilla.redhat.com/show_bug.cgi?id=1286105
|
|/
|
|
|
| |
nm_device_reactivate_ip6_config() will be used to reconfigure IPv6
addressing when a VLAN interface changes MAC.
|
|
|
|
| |
Fixes: 278fd4fb0fde3f290e366dab91fb6a49f9ff186c
|
| |
|
| |
|
|\
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=760450
|
| |
| |
| |
| |
| |
| |
| | |
properties
Change the meaning of unrealize_notify() similar to realize_start_notify(),
which only resets device properites during unrealize.
|
| |
| |
| |
| | |
unrealize_notify()
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The idea of NMDevice:realize() was to
(1) update the device properties
(2) fail realization if some critical properties are missing
(1) is already done during nm_device_setup_start().
(2) was only implemented by NMDeviceVlan:realize(), but it
basically was just checking whether such a platform device exists.
Other implementations don't do that either and it opens up for a race
when the device gets deleted externally.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Extract a function update_properties() similar to other device
implementations. It reads the device specific data from platform
and raises property-changed notifications.
update_properties() is now called by realize_start_notify().
NMDeviceVlan:realize() -- which previously implemented something like
update_properties() -- now does nothing. Note that previously
realize() might have failed, but this is different from other device
implementations and it was unclear what a failure really meant.
Ok, it might fail because the link was not found in the platform cache.
But other implementations don't check that either, so why vlan? And
how to handle that properly anyway?
Therefore realize()'s implementation is no longer needed because
nm_device_realize() already calls realize_start_setup(), which
calls realize_start_notify() and update_properties().
update_connection() no longer refreshes the device properties.
Instead it only modifies the passed-in NMConnection. It's a bit
ugly that update_connection() uses both cached properties from
NMDeviceVlan (vlan_id) and platform properties (xgress maps).
Also, update_connection() doesn't return early on error but continues
trying to update the NMConnection. The reason is that update_connection()
cannot return a failure status.
|
| |
| |
| |
| | |
plnk->id is unsigned. It cannot be negative.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The virtual function NMDevice:realize() is only called by
nm_device_realize() and immediately followed by nm_device_setup_start().
Devices already overwrite setup_start_notify() to update their properties.
No need to duplicate that in realize().
|
| |
| |
| |
| |
| |
| |
| | |
All implementations of NMDevice:setup_start() in derived classes
invoke the parent implementation first. Enforce that by moving
NMDevice:setup_start() to realize_start_setup() and only notify
derived classes afterwards via NMDevice:realize_start_notify().
|
| | |
|
| |
| |
| |
| |
| | |
Don't call the virtual function directly. Instead add
a wrapper function.
|
|/ |
|
|\
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=758463
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reapplying a connection should not be done by iterating over and
(unsorted) @diffs array. Instead the order matters! E.g. first layer 2
before IP settings. Thus extracting those individual updates on a per-setting
base to different reapply_*() functions is more complicated, albeit incorrect
in complex cases. We need full control over how to reapply changes, one
after the other.
Also, once we start applying changes, we cannot really abort on error.
We can only continue best-effort and hope for the best.
Also, always reapply certain settings, even if the configuration doesn't
change. That means, if the user externally deletes a static IP address,
he can call reapply() to restore it. Even though he doesn't provide a
different setting to apply.
Also revert the changes to nm_device_reapply_settings_immediately().
Effectively there is little code that can be reused.
Add audit logging.
|
| | |
|
| |
| |
| |
| | |
Reuse some code with the immediate reapply mechanism.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Client support for O.FD.NM.Device.Reapply().
|
| |
| |
| |
| | |
Client support for O.FD.NM.Device.Reapply().
|
| |
| |
| |
| |
| | |
The introspection data and daemon stub. There's no settings that can be
reapplied at the moment.
|
|/
|
|
|
| |
Split it up and move upwards. It will be useful for runtime reconfig of
IPv4 configuration.
|