Contents of /trunk/dracut/patches/dracut-034-iface_has_link-fixup.patch
Parent Directory | Revision Log
Revision 2370 -
(show annotations)
(download)
Mon Jan 20 09:52:51 2014 UTC (10 years, 8 months ago) by niro
File size: 2154 byte(s)
Mon Jan 20 09:52:51 2014 UTC (10 years, 8 months ago) by niro
File size: 2154 byte(s)
-added upstream patches to fix networking
1 | From 7c8da72c11b74a1759e0ebbabe003d69a4459114 Mon Sep 17 00:00:00 2001 |
2 | From: Harald Hoyer <harald@redhat.com> |
3 | Date: Mon, 02 Dec 2013 09:36:42 +0000 |
4 | Subject: network/net-lib.sh:iface_has_link() fixup |
5 | |
6 | Just echo'ing the flags IFF_UP|IFF_RUNNING does _not_ reflect the |
7 | carrier state immediately. So wait for it to really show up. |
8 | --- |
9 | diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh |
10 | index 0aa312a..7544401 100644 |
11 | --- a/modules.d/40network/net-lib.sh |
12 | +++ b/modules.d/40network/net-lib.sh |
13 | @@ -28,30 +28,6 @@ iface_for_mac() { |
14 | done |
15 | } |
16 | |
17 | -iface_has_link() { |
18 | - local interface="$1" flags="" |
19 | - [ -n "$interface" ] || return 2 |
20 | - interface="/sys/class/net/$interface" |
21 | - [ -d "$interface" ] || return 2 |
22 | - flags=$(cat $interface/flags) |
23 | - echo $(($flags|0x41)) > $interface/flags # 0x41: IFF_UP|IFF_RUNNING |
24 | - [ "$(cat $interface/carrier)" = 1 ] || return 1 |
25 | - # XXX Do we need to reset the flags here? anaconda never bothered.. |
26 | -} |
27 | - |
28 | -find_iface_with_link() { |
29 | - local iface_path="" iface="" |
30 | - for iface_path in /sys/class/net/*; do |
31 | - iface=${iface_path##*/} |
32 | - str_starts "$iface" "lo" && continue |
33 | - if iface_has_link $iface; then |
34 | - echo "$iface" |
35 | - return 0 |
36 | - fi |
37 | - done |
38 | - return 1 |
39 | -} |
40 | - |
41 | # get the iface name for the given identifier - either a MAC, IP, or iface name |
42 | iface_name() { |
43 | case $1 in |
44 | @@ -483,3 +459,26 @@ type hostname >/dev/null 2>&1 || \ |
45 | hostname() { |
46 | cat /proc/sys/kernel/hostname |
47 | } |
48 | + |
49 | +iface_has_link() { |
50 | + local interface="$1" flags="" |
51 | + [ -n "$interface" ] || return 2 |
52 | + interface="/sys/class/net/$interface" |
53 | + [ -d "$interface" ] || return 2 |
54 | + linkup "$1" |
55 | + [ "$(cat $interface/carrier)" = 1 ] || return 1 |
56 | + # XXX Do we need to reset the flags here? anaconda never bothered.. |
57 | +} |
58 | + |
59 | +find_iface_with_link() { |
60 | + local iface_path="" iface="" |
61 | + for iface_path in /sys/class/net/*; do |
62 | + iface=${iface_path##*/} |
63 | + str_starts "$iface" "lo" && continue |
64 | + if iface_has_link $iface; then |
65 | + echo "$iface" |
66 | + return 0 |
67 | + fi |
68 | + done |
69 | + return 1 |
70 | +} |
71 | -- |
72 | cgit v0.9.2 |