summaryrefslogtreecommitdiffstats
path: root/src/connections/ethernet-iproute
diff options
context:
space:
mode:
authorJim Pryor <profjim@jimpryor.net>2009-08-11 14:05:13 +0200
committerJames Rayner <james@archlinux.org>2009-08-15 04:28:30 +0200
commite27d094577f874613c49cc3d93796162230ca2c8 (patch)
treefbd7cb78b7c6d11b6d12febce6a9f99581a64a67 /src/connections/ethernet-iproute
parent2282776f1dd928b6c5f56e30cbf2c52a4f26303d (diff)
downloadnetctl-e27d094577f874613c49cc3d93796162230ca2c8.tar.gz
netctl-e27d094577f874613c49cc3d93796162230ca2c8.tar.xz
start consolidation of ifconfig/ip/set_interface
* try to factor all the ifconfig/ip set dev code to single location (currently networks/set_interface, though I recommend a different name for this function because it's too close in name and different in functionality from set_iface, set_profile). * added "forcedown" option to set_interface, meaning "just go down don't worry about 'nodown' quirks" * even with "forcedown", this factoring would introduce "ip addr flush dev $INTERFACE" calls to existing code. I assume that's harmless? or even beneficial? * one code block (in ethernet_iproute) had stdout,stderr of the down calls redirected to /dev/null. I've moved that to set_interface, so now everyone's getting that behavior. I assume that's appropriate... * now no more calls to "ip" or "ifconfig" outside of set_interface, except the checks for NO-CARRIER after ethernet*/set_interface up. They might also be moved to network/set_interface? * as of this commit, all the set_interface calls are now using ip instead of ifconfig. A subsequent commit will isolate the ip-use to ethernet-iproute and the ifconfig-use to ethernet. * ALERT: attend to wireless_down, it seems to be calling set_interface down twice (once in ethernet_down, once in itself). And neither this commit nor the code it's patching respects quirk nodown in the ethernet_down block. Signed-off-by: Jim Pryor <profjim@jimpryor.net>
Diffstat (limited to 'src/connections/ethernet-iproute')
-rw-r--r--src/connections/ethernet-iproute15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/connections/ethernet-iproute b/src/connections/ethernet-iproute
index 046b9a0..c50fd7d 100644
--- a/src/connections/ethernet-iproute
+++ b/src/connections/ethernet-iproute
@@ -4,8 +4,7 @@
report_iproute()
{
report_fail "$*"
- ip addr flush $INTERFACE &>/dev/null
- quirk "nodown" || ip link set $INTERFACE down &>/dev/null
+ set_interface down "$INTERFACE"
exit 1
}
@@ -19,9 +18,9 @@ ethernet_up() {
fi
report_debug ethernet_iproute_up ifup
- set_interface up $INTERFACE
+ set_interface up "$INTERFACE"
- if ip link show $INTERFACE | fgrep -q "NO-CARRIER"; then
+ if ip link show dev "$INTERFACE" | fgrep -q "NO-CARRIER"; then
report_iproute "No connection"
fi
@@ -37,7 +36,9 @@ ethernet_up() {
fi
if ! wpa_check "$INTERFACE"; then
- ip link set $INTERFACE down
+ # ignore quirk nodown---is that appropriate? or should we just use report_iproute?
+ # this adds a flush call as well---is that appropriate?
+ set_interface forcedown "$INTERFACE"
report_fail "WPA Authentication/Association Failed"
return 1
fi
@@ -120,7 +121,9 @@ ethernet_down() {
fi
report_debug ethernet_iproute_down if_down
- set_interface down $INTERFACE
+ # ignore quirk nodown---is that appropriate?
+ # this adds a flush call as well---is that appropriate?
+ set_interface forcedown "$INTERFACE"
}