From 8a411bf1c9215e075b755f2bcb40b3a033a53b91 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 26 Feb 2007 15:30:18 +0000 Subject: 23190: tweak _net_interfaces for Linux --- Completion/Unix/Type/_net_interfaces | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'Completion/Unix/Type/_net_interfaces') diff --git a/Completion/Unix/Type/_net_interfaces b/Completion/Unix/Type/_net_interfaces index dc7898c3d..682d8c5a8 100644 --- a/Completion/Unix/Type/_net_interfaces +++ b/Completion/Unix/Type/_net_interfaces @@ -14,8 +14,19 @@ case $OSTYPE in ;; darwin*|freebsd*|dragonfly*) intf=( $(ifconfig -l) ) ;; irix*) intf=( ${${${(f)"$(/usr/etc/netstat -i)"}%% *}[2,-1]} ) ;; - linux*) intf=( /proc/sys/net/ipv4/conf/*~*(all|default)(N:t) ) ;; - *) intf=( $(ifconfig -a|sed -n 's/^\([^ :]*\).*/\1/p') ) ;; + + *) + # Make sure ifconfig is in the path. + local PATH=$PATH + PATH=/sbin:$PATH + intf=( $(ifconfig -a 2>/dev/null | sed -n 's/^\([^ :]*\).*/\1/p') ) + if [[${#intf} -eq 0 && -d /proc/sys/net/ipv4/conf ]]; then + # On linux we used to use the following as the default. + # However, we now use ifconfig since it finds additional devices such + # as tunnels. So only do this if that didn't work. + intf=( /proc/sys/net/ipv4/conf/*~*(all|default)(N:t) ) + fi + ;; esac _wanted interfaces expl 'network interface' \ -- cgit 1.4.1