summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ovs: merge branch 'bg/ovs-mac-pt2'th/nm-1-18Beniamino Galvani2020-08-173-48/+105
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1852106 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/557 (cherry picked from commit 15492e6c503be48b90602160c2099a965a00917b) (cherry picked from commit f819a7cabfed11e0f56302ee5ac9d1b8635581dc) (cherry picked from commit 8dc357dc11f735703965193a235b4a401bd38f31) (cherry picked from commit a9b3730bf296fbd3c2d553423a31bcd436f2df4b) (cherry picked from commit 3d349eb5fe106a67ace65c03e74adee4bf591a81)
| * device: don't reset the MAC without ifindexBeniamino Galvani2020-08-171-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | nm_device_cleanup() can be called when the device no longer has an ifindex. In such case, don't try to reset the MAC address as that would lead to an assertion failure. (cherry picked from commit 77b6ce7d04f6c88e78fb7f1972549956e00e1f4b) (cherry picked from commit 791a888cad3d260675781c0ed30acf13cc1194f7) (cherry picked from commit e1f76e70447049487b2d8240ce12007624ab3c29) (cherry picked from commit 5f22c06c53d9ae9003cd17603d6d6ff3e16f195b) (cherry picked from commit 6beaa83d32d4c2784771b114725c34056f7083bf)
| * ovs: also set cloned MAC address via netlinkBeniamino Galvani2020-08-171-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already set the MAC of OVS interfaces in the ovsdb. Unfortunately, vswitchd doesn't create the interface with the given MAC from the beginning, but first creates it with a random MAC and then changes it. This causes a race condition: as soon as NM sees the new link, it starts IP configuration on it and (possibly later) vswitchd will change the MAC. To avoid this, also set the desired MAC via netlink before starting IP configuration. https://bugzilla.redhat.com/show_bug.cgi?id=1852106 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/483 (cherry picked from commit 47ec3d14d49eb9e9db956b3efd495d5d696da996) (cherry picked from commit 60d10b146d57290f146536705d744e67925de90e) (cherry picked from commit 01399955906aa1b1e52998e8daf487b30fa6eb81) (cherry picked from commit 69c5c5e7670e8199829df308316d055be049c978) (cherry picked from commit 91d2b0fd5ae4960420da0321dd1b11f8333f7d4d)
| * ovs: set MAC address on the bridge for local interfacesBeniamino Galvani2020-08-171-37/+77
|/ | | | | | | | | | | | | | | | | | | | | | When a user creates a ovs-interface with the same name of the parent ovs-bridge, openvswitch considers the interface as the "local interface" [1] and assigns the MAC address of the bridge to the interface [2]. This is confusing for users, as the cloned MAC property is ignored in some cases, depending on the ovs-interface name. Instead, detect when the interface is local and set the MAC from the ovs-interface connection in the bridge table. [1] https://github.com/openvswitch/ovs/blob/v2.13.0/vswitchd/vswitch.xml#L2546 [2] https://github.com/openvswitch/ovs/blob/v2.13.0/vswitchd/bridge.c#L4744 (cherry picked from commit 5d4c8521a38c166a9a0aafe5be2bd0545084e154) (cherry picked from commit 7548c29a89e12349fdfe196e96d65a6abae74cb5) (cherry picked from commit 127294babc23782781c17192c52a2d57f7916170) (cherry picked from commit f54c5400c8e43e71fb7c4e1e705866862af69ccd) (cherry picked from commit 1a08885080855c3ee14f181c7bd236680663c97f)
* merge: branch 'bg/sleep-unmanaged-rh1855563'Beniamino Galvani2020-08-172-9/+27
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1855563 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/580 (cherry picked from commit 116c49fceb23e23ae61fbc24c3e5b5098a437e9d) (cherry picked from commit 90cb61f8fd2ff652feebc44802d15ca66631a8fe) (cherry picked from commit 2dae6833ad3424d1d5407baef177ea6febd51840) (cherry picked from commit 3c960a9f2b6a9311c60a0f8c82b1706e4ec02834) (cherry picked from commit f8f2326715b3c010d465b4b67689e2fd02682cc2)
| * policy: block connection from autoconnect in case of failed dependencyBeniamino Galvani2020-08-171-8/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A connection that fails due to dependency-failed is not able to reconnect until the master connection activates again; when this happens, the master clears the blocked reason for all its slaves in activate_slave_connections() and tries to reconnect them. For this to work, the slave should be marked as blocked when it fails with dependency-failed. (cherry picked from commit 725fed01cf7c8508cf426897340b2a4113406aab) (cherry picked from commit e1755048e35aca682c7d0d233122d4ddaf3bb089) (cherry picked from commit ecb134ac349a0bf6582833253b6d453d6bf997de) (cherry picked from commit bb4781cc581a3c9fcefbfc1ea0be5e95aa3e287b) (cherry picked from commit 70c642325f90f767954aa86079b1bc6a4946f15f)
| * manager: fix race condition when resuming from sleepBeniamino Galvani2020-08-171-1/+2
|/ | | | | | | | | | | | | | | | | | If the device state change (to disconnected or unmanaged) triggered by a sleep event happens after the wake, the devices becomes wrongly unmanaged and it's necessary to manually manage it again, or restart NM. During the wake event we should disconnect the device_sleep_cb() callback for all devices because we don't want to react to state changes anymore; in particular we don't need to detect when the device becomes disconnected to unmanage it. (cherry picked from commit fe2d93980bd5b61c55a8b65a55f7aad35042e691) (cherry picked from commit 971897195a8218cb0ec08ae95a7210fce73f0b03) (cherry picked from commit 7913275b02c60803f21609168f9c16d2f2a4be2f) (cherry picked from commit 6d0e8a2acfa6b7b6a2af1834d8873fc18fc2c55a) (cherry picked from commit 61c44dad91733bc09e20752915476a7678a73b90)
* device: restart DHCP only for devices that are active or activatingBeniamino Galvani2020-08-171-0/+4
| | | | | | | | | | | | | | | do_sleep_wake() tries to restart DHCP for all devices, even ones that are disconnecting. When a device is disconnecting, it still has a DHCP client instance but we shouldn't restart it because it makes no sense; and especially, the device could be already removed. https://bugzilla.redhat.com/show_bug.cgi?id=1852612 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/561 (cherry picked from commit 2c50438987527a30d99c07601b8f1d1c9557cdaf) (cherry picked from commit 53214901800ebcd1e1fabf98442983939af979bc) (cherry picked from commit ef755588ad55261c6ade4ba0278d51d777022183) (cherry picked from commit da54b35af3b0a5120b4703060ee0b95cbc4fd0bd) (cherry picked from commit b0be1285cceff5de2eef44a56abda6a98d51c91a)
* ovs: ignore failures of patch interfacesBeniamino Galvani2020-08-171-6/+31
| | | | | | | | | | | | | | | | | When there are two patch ports connected, each of them must reference the other; however they can't be created in a single transaction because they are part of different bridges (so, different connections). Therefore, the first patch that gets activated will always fail with "No usable peer $x exists in 'system' datapath" until the second patch exists. In theory we could also match the error message, however this doesn't seem very robust as the message may slightly change in the future. (cherry picked from commit ffeac35f0409516aa2302189cca3f0b72518466a) (cherry picked from commit 75cbf2173862a00ff44342a4a676aa1f6f9ac78d) (cherry picked from commit 399aad15bf53420cc015c7a920856f88d5584dfc) (cherry picked from commit 692689ead8aaf4f1441a82e546649d996bd812d4)
* ovsdb: retry calls in case of communication error with serverBeniamino Galvani2020-08-171-26/+55
| | | | | | | | | | | | | | | When the server is restarted the write to unix socket fails with EPIPE. In such case, don't fail all the calls in queue; instead, after a sync of the ovsdb state (through a monitor call), start processing the queue again, including the call that previously failed. Add a retry counter to avoid that calls are stuck in the queue forever in a hypothetical scenario in which the write always fails. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/459 (cherry picked from commit db37e530e8f03b7882997194bb325a206555c44d) (cherry picked from commit 54254bf6fe869b83189f43cdf13652c165d5aa71) (cherry picked from commit 166ad887f9d2fa361dcc6e0926e21e25c7a4ce2d)
* ovs: merge branch 'bg/ovs-interface-mtu-rh1808124'Beniamino Galvani2020-08-175-20/+130
|\ | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1807726 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/433 (cherry picked from commit 2da77547bafedd352d5c40f66ccd365c454c30d4) (cherry picked from commit f0b7cb60dd44060b10c9e2d64aeeba7d2143ca4d) (cherry picked from commit e62afcf0bd9172825294802ef13de8d55714ccc0)
| * ovs: set the MTU in ovsdb when changing platform MTU of ovs-interfaceBeniamino Galvani2020-08-173-4/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we change the the MTU of an ovs interface only through netlink, the change could be overridden by ovs-vswitchd at any time when other interfaces change. Set the MTU also in the ovsdb to prevent such changes. Note that if the MTU comes from the connection, we already set the ovsdb MTU at creation time and so this other update becomes useless. But it is needed when changing the MTU at runtime (reapply) or when the MTU comes from a different source (e.g. DHCP). (cherry picked from commit c2a97129453c49f86976b42c29b793a87d9d2e41) (cherry picked from commit e27a59c69e956961efe99f83068b760380b77066) (cherry picked from commit 99ef891db6a561d6b3dcaec9ead2b2158b43ae8d)
| * ovs: set MTU from connection when creating an internal interfaceBeniamino Galvani2020-08-171-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ovs-vswitchd.conf.db(5) man page says about the the mtu_request column in the Interface table: "Requested MTU (Maximum Transmission Unit) for the interface. A client can fill this column to change the MTU of an interface [...] If this is not set and if the interface has internal type, Open vSwitch will change the MTU to match the minimum of the other interfaces in the bridge." Therefore, if the connection specifies a MTU, set it early when adding the interface to the ovsdb so that it will not be changed to the minimum of other interfaces. (cherry picked from commit ad12f26312bb4ccc73076f39bd2a618094af6e7e) (cherry picked from commit 7311d5e2943931a70fb427096ea934072aed63b3) (cherry picked from commit b81370f70b538688a62ad4a29482dbf9b34c69bc)
| * ovs/ovsdb: support changing the MTU of an ovs interfaceBeniamino Galvani2020-08-172-16/+64
|/ | | | | | | | | Introduce a nm_ovsdb_set_interface_mtu() function to update the MTU of an ovs interface in the ovsdb. (cherry picked from commit a4c2c1a843ff1492c1bfae2455a334b0d1c8389c) (cherry picked from commit c1be15a66edf1ef1e7de1cc7a0f6e134b8dbdcb7) (cherry picked from commit 990f46505d6d9bd4de40db458978b6c94664de13)
* ovs: merge branch 'bg/ovs-deactivate-async-pt2'Beniamino Galvani2020-08-173-27/+84
|\ | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1787989 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/412 (cherry picked from commit e24fd884941d40209bf6c159be6a4cb61812572a) (cherry picked from commit 53b878818c4c08c5daa08095483c4c0e68f9b035) (cherry picked from commit 505aab90e0328d497f533f3ba8ea7e92bde144aa)
| * ovs: discard link updates when deactivatingBeniamino Galvani2020-08-173-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the ovs interface gets deactivated, it is released from the master port and we call nm_device_update_from_platform_link (dev, NULL) to ignore any later event for the interface. This is important especially because it sets a zero ifindex on the interface and so, later when the link disappears, we don't unmanage the device but directly remove it. However, since ovs commands are queued, the link could appear during the deactivation and we need to ignore such events. Add a new device method can_update_from_platform_link() for such purpose. (cherry picked from commit e9fc1dea437a3f78212143e8d2b14bcea8926f90) (cherry picked from commit c4eb0c6852d96b82081babe2c16a54df75717aba) (cherry picked from commit 34a9247a640504b15daeab578f569a4a151bfa7d)
| * ovs: rework asynchronous deactivation of ovs interfacesBeniamino Galvani2020-08-171-27/+59
|/ | | | | | | | | | | | | | | | | | | | | | Tracking the deletion of link by ifindex is difficult because the ifindex of the device is updated through delayed (idle) calls in NMDevice and so there is the possibility that at a certain time the device ifindex is not in sync with platform state. It seems simpler to watch instead the interface name. The ugly thing is that the interface name can be changed externally, but if users do that on an activating device they are looking for trouble. Also change the deactivate code to deal with the scenario where we already created the interface in the ovsdb but the link didn't show up yet. To ensure a proper cleanup we must wait that the link appears and then goes away; however the link may never appear if vswitchd sees only the last state in ovsdb, and so we must use a ugly timeout to avoid waiting forever. https://bugzilla.redhat.com/show_bug.cgi?id=1787989 (cherry picked from commit 9c49f8a87962d8009dc18973845a1c46aba38d00) (cherry picked from commit 2e5e409bf2cf825af46c46d110b0502050adcb3c) (cherry picked from commit 628706fab592f6c5611438a21742391ea1a2e8cc)
* ovs: wait that link disappears before continuing with deactivationBeniamino Galvani2020-08-171-0/+115
| | | | | | | | | | | | | | | | | | | | | | When we deactivate a virtual device, we usually schedule the deletion of the link in an idle handler. That action will be executed at a later time when the device is already in the disconnected state. Similarly, for ovs interfaces we send the deletion command to the ovsdb and then proceed to the disconnected state. However, in the first case there is the guarantee that the link will be deleted at some point, while for ovs interfaces it may happen that ovs decides to reuse the same link if there is an addition queued. Since reusing the same link confuses NM, let's implement deactivate_async() for ovs-interfaces and wait that the link actually goes away before proceeding. https://bugzilla.redhat.com/show_bug.cgi?id=1782701 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/402 (cherry picked from commit 623a1e1f993b3166509202bc580c30e3daf9c67b) (cherry picked from commit a1b0edd24b078294cd3959044a7ae35287d55f87) (cherry picked from commit cb7c7c29bdde6654b3a5d498c592033772592ad0)
* merge: branch 'lr/ovs-failures'Lubomir Rintel2020-08-173-31/+96
|\ | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/182 (cherry picked from commit d0f0d778f30c6dc95a0f7048beb91007425d33fa)
| * ovs/factory: fail the NMDevice if there's an error in OVSDBLubomir Rintel2020-08-171-1/+40
| | | | | | | | (cherry picked from commit 02950ec600d07647dadabdf08b151d5c4f5f8985)
| * ovs/ovsdb: track the devices before we signal additionLubomir Rintel2020-08-171-3/+3
| | | | | | | | | | | | | | | | This doesn't make any difference in practice, but it seems more correct. It would cause issues if we decided to remove an interface from the signal handler. (cherry picked from commit e948ce7debb4f2da2db9c19ab4f980eac5415b9d)
| * ovs/ovsdb: signal a failure when an error column is setLubomir Rintel2020-08-172-5/+24
| | | | | | | | | | | | | | | | | | When an interface (other OVS device types can not fail) encounters an error it indicates it by changing the error column. Watch for those changes so that we can eventually communicate them to the OVS factory to deal with them. (cherry picked from commit f2c066e1046cc8da5a277b1528a59bf2653e17c8)
| * ovs/ovsdb: fix signal handler argument typesLubomir Rintel2020-08-171-2/+2
| | | | | | | | (cherry picked from commit dedc0cba23b5d51773f88d8bc06424eb589083cd)
| * ovs/ovsdb: remove the device-changes signalLubomir Rintel2020-08-172-15/+0
| | | | | | | | | | | | | | It doesn't communicate anything about the nature of the change and indeed nothing uses it. (cherry picked from commit b1feebc43aafd5e40c371c2a971cdefd5f8acae6)
| * ovs/ovsdb: guard against OVSDB integrity issuesLubomir Rintel2020-08-171-9/+31
|/ | | | | | | | | Don't crash in situations, where the bridge or a port has a child with UUID we don't know. This could happen if we mess up the parsing of messages from OVSDB, but could also theoretically happen in OVSDB sends us bad data. (cherry picked from commit 99c7adc1e12862f22026bb8f806c9223db9a78ec)
* release: bump version to 1.18.9 (development)1.18.9-devThomas Haller2020-05-292-2/+2
|
* release: bump version to 1.18.81.18.8Thomas Haller2020-05-292-2/+2
|
* NEWS: updateThomas Haller2020-05-291-0/+13
|
* ifcfg-rh: merge branch 'th/ifcfg-rh-802-1x-pin'Thomas Haller2020-05-297-8/+28
|\ | | | | | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/520 (cherry picked from commit 266d054808df2ac3a779f83dd5a00d264345c99f) (cherry picked from commit 698acfef4bd6ba8484e79fd5901e5b064c29c296) (cherry picked from commit 4d1b316f91ab106052c9669ce2c1808c18413aa1) (cherry picked from commit a4e7994ac43f1f0c729d035adecd1cb2ac807d66)
| * ifcfg-rh: support persisting 802-1x.pin and pin-flags propertyThomas Haller2020-05-297-4/+24
| | | | | | | | | | | | | | (cherry picked from commit 655fd1ebd8c1f14dc658f728109bc41e9362d740) (cherry picked from commit 799cee50689a27d04fa5a0e84fa515a55eeea7a4) (cherry picked from commit 77e1132845c5b8514838418085d0ab9d109cee48) (cherry picked from commit 73865ffb0b89c3eb8a563832813f72f6a1641348)
| * libnm,ifcfg-rh: fix documentation for IEEE_8021X_SYSTEM_CA_CERTS in `man ↵Thomas Haller2020-05-291-2/+2
| | | | | | | | | | | | | | | | | | | | nm-settings-ifcfg-rh` Fixes: 2a4fb75d3b03 ('ifcfg: add support for "802-1x.system-ca-certs" setting') (cherry picked from commit b4537f2c03dbb433ecdec81c84f95f8e9f8727b3) (cherry picked from commit 5d8a0837b302b1043c77834b5cfe04d67a2cde96) (cherry picked from commit e11232de966f7f765ea9946d402c0e06839ffbd0) (cherry picked from commit e00e764167ad8a211e3ed84afbc1599758af99c3)
| * libnm,ifcfg-rh: fix documentation for IEEE_8021X_PASSWORD_RAW_FLAGS in `man ↵Thomas Haller2020-05-291-2/+2
|/ | | | | | | | | | nm-settings-ifcfg-rh` Fixes: a83ab252ee58 ('ifcfg-rh: add support for 802-1x.password-raw property') (cherry picked from commit 9fde21504e782b81cdd4c5d1f5068e33e532078e) (cherry picked from commit 36ddd266a5bddbc1f857131c36e4313ef635ad1b) (cherry picked from commit 52bb253f6b05815eeecbf3d3508fe1caa2cacb1d) (cherry picked from commit 3afbaeb5974bfb38aaefd441f6e40fbcc8140a8a)
* libnm,ifcfg-rh: merge branch 'th/ifcfg-rh-ca-path'Thomas Haller2020-05-276-20/+53
|\ | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1840210 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/448 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/518 (cherry picked from commit e0c220e7e96e74cd2acd9394c68b3e50ddd308f3) (cherry picked from commit 8affcc19b61fc3c516474ba075e61b82030feeb4) (cherry picked from commit 6066e163673e4bfac7d77d3133a4e425a902189c) (cherry picked from commit e18f4a3ca5a691312c5bce1d6f35ae23e757f64b)
| * libnm: update documentation for 802-1x ca-cert, ca-path and system-ca-certsThomas Haller2020-05-272-20/+38
| | | | | | | | | | | | | | (cherry picked from commit 4f21b14b90b49c02cab2b232a5be432a160be358) (cherry picked from commit 0d35d14faf3e547493c183a8776b2609f31908a7) (cherry picked from commit 1a989a98bf4c6674710abdd6ab90d8db02efc140) (cherry picked from commit 388f3e18a9b2e31954d7ea6dfb1125ec51e4b4cc)
| * ifcfg-rh: fix handling "802-1x.{phase2-,}ca-path" in ifcfg-rh settings pluginThomas Haller2020-05-272-0/+13
| | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1840210 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/448 (cherry picked from commit b6b6639c7c8fa667b8fcbc310b65d88124fdc260) (cherry picked from commit 67f1da27fe95fbe09999a953558a0b3e4dcfdd69) (cherry picked from commit 7a20dd4dbbd51081b598f4d42254190a03271471) (cherry picked from commit 97b12a3c3488abd5bd81b30559726bf220370510)
| * build: log system-ca-path configure setting in build scriptsThomas Haller2020-05-272-0/+2
|/ | | | | | | (cherry picked from commit f8dcb3fc474a4984c312b537a9d51fcfddc8283b) (cherry picked from commit f3f179728e60d4e3d4026ac829299170263822cd) (cherry picked from commit eb9767a6c8c15aa441b31a432bc72ba78505c6c3) (cherry picked from commit 359f7f3544a2757d0e11ec15f87fa962b0de19fa)
* ip-tunnel: merge branch 'bg/ip-tunnel-cloned-mac-rh1832170'Beniamino Galvani2020-05-153-4/+17
|\ | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1832170 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/503 (cherry picked from commit 2d8c87e22e66b9076c83dd25e17529c76d8986f4) (cherry picked from commit f50ed7a25ed4a966c574b1e037fd372cc595a522) (cherry picked from commit bef2f8a4dd329cd6314abf93a26d488ce69a6298) (cherry picked from commit b4fedfc57c7be1092eb35f2cde5d41094bcfb6ee)
| * ip-tunnel: set cloned-mac-address only for layer2 tunnel devicesBeniamino Galvani2020-05-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For ip-tunnel modes that encapsulate layer2 packets (gretap and ip6gretap) we allow the presence of an ethernet setting in the connection and honor the cloned-mac-address specified in it. For all other modes, the ethernet setting is removed during normalization, but a value different from 'preserve' could be set via global default. The kernel doesn't allow setting a MAC for layer3 devices, don't do it. (cherry picked from commit 0494a84878e696baccbf3b1d16089b92cb7c7835) (cherry picked from commit 78ed14166c04006aaa0e15a2930066ff212f088b) (cherry picked from commit d69d92c658eb0ca21f789c131b73dd2508570653) (cherry picked from commit 60b4bdafcf71a68abc08afd388b4ff405b12fb19)
| * libnm-core: add _nm_ip_tunnel_mode_is_layer2()Beniamino Galvani2020-05-152-3/+13
|/ | | | | | | (cherry picked from commit 48c93b3bba928b594a5e5dec6b51382fcff97701) (cherry picked from commit 5d2f2a65493401e4d793890a22ebe7731d2f88f9) (cherry picked from commit d0f275e7f51cf8b7a78f56cc547a0c0ee270b387) (cherry picked from commit db82b52dbd90dfc7bab265c50947747dd4c27c5f)
* acd: fix char buffer argument to _acd_event_to_string_buf()Thomas Haller2020-05-081-1/+1
| | | | | | | (cherry picked from commit 6e9967939b5b7dd6a49405d4d6018a528414ca4d) (cherry picked from commit 1e1ae9ba077a68b2e8be4e81e52ed4834d485027) (cherry picked from commit c0997fa4f351b8b9d65b46aaea09f28d8c0ed9f0) (cherry picked from commit 53cb8ce2459e564ec0f96cc49ba4e4c9b356f9aa)
* acd: avoid alloca() inside an unbounded loopThomas Haller2020-05-071-2/+16
| | | | | | | (cherry picked from commit b447c80ad811850b9540225a96cb5496f8210b34) (cherry picked from commit ecb9e0e3df33b3f7551d84270edbf617d697b1b5) (cherry picked from commit 198e233b918ddb36e58f66b95e4b05e0837ec184) (cherry picked from commit 78618ccbaf7259ae1d102e35c07d7fadb5a30078)
* libnm: fix gtk-doc annotations for nm_setting_match_get_interface_names()Thomas Haller2020-05-061-1/+2
| | | | | | | | | | Otherwise the function is not usable via generated bindings. Fixes: 9b9dce9486a8 ('all: add 'match' setting') (cherry picked from commit 180cda7632b194d15abea3f98b60b7b7e1ef26f7) (cherry picked from commit 805adec9ca6ddf726fc40aab1093da55193a8e5b) (cherry picked from commit b5a66b88b37aa32d450d672e71668a6b015f1818) (cherry picked from commit 2630758cb419dff1693b4c28d687877e660c1beb)
* all: merge branch 'th/strtoll-workaround'Thomas Haller2020-05-025-14/+174
|\ | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1797915 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/456 (cherry picked from commit d342fa267d59cd317cc3cc798824c70b1158ff61) (cherry picked from commit 85811e67ddcdeb47a88aca177c75436f75d5e79e) (cherry picked from commit 32e0bd7e72795f99d4258f4b7377b698554aa2a1)
| * all: use wrappers for g_ascii_strtoll(), g_ascii_strtoull(), g_ascii_strtod()Thomas Haller2020-05-022-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes these function may set errno to unexpected values like EAGAIN. This causes confusion. Avoid that by using our own wrappers that retry in that case. For example, in rhbz#1797915 we have failures like: errno = 0; v = g_ascii_strtoll ("10", 0, &end); if (errno != 0) g_assert_not_reached (); as g_ascii_strtoll() would return 10, but also set errno to EAGAIN. Work around that by using wrapper functions that retry. This certainly should be fixed in glib (or glibc), but the issues are severe enough to warrant a workaround. Note that our workarounds are very defensive. We only retry 2 times, if we get an unexpected errno value. This is in the hope to recover from a spurious EAGAIN. It won't recover from other errors. https://bugzilla.redhat.com/show_bug.cgi?id=1797915 (cherry picked from commit 7e49f4a199beb9b8012ec554c4a9ad1c851f7ff2) (cherry picked from commit eec2740d718db4c73bf4c31b97852ee83bb3dfa7) (cherry picked from commit 500f0b96ae93cc0dbcb63124c46956cf532031c3)
| * shared: add nm_g_ascii_strtoull() to workaround bugThomas Haller2020-05-022-0/+53
| | | | | | | | | | | | (cherry picked from commit 3b58c5fef490cfdae632f5007c77267e47971734) (cherry picked from commit 95565bef77ddfb36dd61b764a3d8c0b6cec21333) (cherry picked from commit d629db4a0e80752e031ca0f5c410ad4b59e9090a)
| * shared: add nm_g_ascii_strtod() to workaround bugThomas Haller2020-05-022-0/+40
| | | | | | | | | | | | (cherry picked from commit 35a9f632a81df40209e3d71f2328ccdfcf175aee) (cherry picked from commit f8cae1ed18ad5d29c246e9d9036f670badd28126) (cherry picked from commit 0de1c3a53a6196694cbe4ecb2dade727a7469e65)
| * shared: add nm_g_ascii_strtoll() to workaround bugThomas Haller2020-05-022-0/+70
| | | | | | | | | | | | (cherry picked from commit f4446e34c689d6bd81deb8bbab01387716db801f) (cherry picked from commit 6836679878889f882acd243b0c914865971edd4e) (cherry picked from commit 49c523cf1e4da6a14fb09d0877db44646df1c688)
| * device/bluetooth: avoid g_ascii_strtoull() to parse capabilitiesThomas Haller2020-05-021-1/+1
| | | | | | | | | | | | | | | | | | Avoid g_ascii_strtoull() calling directly. It has subtle issues, which is why we have a wrapper for it. (cherry picked from commit 659ac9cc1299399b34b4677a492c9943458e1b52) (cherry picked from commit 62469c1401dcbd155da5e03bf8cfd37986d6541f) (cherry picked from commit 386ea3ff26fe68105c4f72d1706b06a3a2dc4341)
| * ifupdown: use _nm_utils_ascii_str_to_int64() for converting netmask to stringThomas Haller2020-05-021-7/+4
|/ | | | | | (cherry picked from commit 3930ef194ec37d51eb74aed6e7e2ac403539bbfd) (cherry picked from commit 1a80179c60ea02af9da1ce454afbdc3cae023426) (cherry picked from commit 1a54909bb4161341272c761759ac8c35fa87a46c)
* vpn: clear host part of IPv6 routes received from VPN pluginThomas Haller2020-04-281-0/+2
| | | | | | | | | | | | | | | | | Kernel would reject adding a route with a destination host part not all zero. NetworkManager generally coerces such routes and there are assertions in place to ensure that. We forgot to ensure that for certain IPv6 routes from VPN plugins. This can cause an assertion failure and wrong behavior. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/425 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/482 (cherry picked from commit b437bb4a6e8f4b1ca8678e8727b02b21d4cb7562) (cherry picked from commit c7586e63885e1de9b80b9dc94feceea0f3fe4bf2) (cherry picked from commit 55c361453bd43df92141870728a43bdbaab0ff6d) (cherry picked from commit 75933cd6fff6917f72cea4f85e6ccb913df78e88)