[3/4] udev: network-hotplug-bridges: Silence a warning when interfaces have gone away

Message ID 20241017145416.25394-3-michael.tremer@ipfire.org
State New
Headers
Series [1/4] hostapd: Enable logging to syslog |

Commit Message

Michael Tremer Oct. 17, 2024, 2:54 p.m. UTC
  It can happen that udev has an event for an interface in the queue that
has already gone away - or even just being renamed.

Then reading the MAC address fails. Because the shell expands the
"$(<...)" statement before running the whole line, the read check is
useless.

Because the code would get too complicated otherwise, I decided to use
cat. Not cool, but this does the job.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
---
 config/udev/network-hotplug-bridges | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

diff --git a/config/udev/network-hotplug-bridges b/config/udev/network-hotplug-bridges
index 9fded1fd0..39faeb5a9 100644
--- a/config/udev/network-hotplug-bridges
+++ b/config/udev/network-hotplug-bridges
@@ -42,7 +42,7 @@  detect_zone() {
 		local slave
 		for slave in $(get_value "${zone}_SLAVES"); do
 			# Compare if the mac address matches or if the name matches
-			if [ -r "/sys/class/net/${INTERFACE}/address" -a "$(</sys/class/net/${INTERFACE}/address)" = "${slave}" ] || [ "${INTERFACE}" = "${slave}" ]; then
+			if [ "$(cat /sys/class/net/${INTERFACE}/address 2>/dev/null)" = "${slave}" ] || [ "${INTERFACE}" = "${slave}" ]; then
 				echo "${zone}"
 				return 0
 			fi