X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=sh-lib;h=4d858a9f730ce4bd2db8343b3a9879bea317d360;hb=e87c25a435dccc3ef23453ae9ad096c0fc6b2686;hp=640a5b663542c0152a09c305f0a8f24c4e12fac7;hpb=bcc521c8bd1604f59cc9bc8c0ef9749f621de7c5;p=grml-shlib.git diff --git a/sh-lib b/sh-lib index 640a5b6..4d858a9 100644 --- a/sh-lib +++ b/sh-lib @@ -25,6 +25,9 @@ SYSLOG__="YES" CMD_LINE__="" # /proc/cmdline +LANG__="$LANG" +LC_ALL__="$LC_ALL" + # CONFIG FUNCTIONS {{{ @@ -34,6 +37,10 @@ function setExitFunction { EXIT_FUNCTION__="$1"; } function disableSyslog { SYSLOG__="NO"; } function enableSyslog { SYSLOG__="YES"; } + +function saveLang { LANG__="$LANG"; LC_ALL__="$LC_ALL"; } +function restoreLang { LANG="$LANG__"; LC_ALL="$LC_ALL__"; } +function setCLang { saveLang; LANG="C"; LC_ALL="C"; } # }}} @@ -421,19 +428,41 @@ function netValidIp return $ret_ } +function netGetIfaces +{ + local error_function_=${1:-"eprint"} # function to call on error + local message_="$2" # user supplied error message + local if_='' + local ret_='' + + #ip a|grep 'inet ' |awk '$NF !~ /lo/{print $NF}' + if_="`ip a|grep 'inet ' |awk '{print $NF}'`" + ret_=$? + if [ -z "$if_" ]; then + if [ -z "$message_" ]; then + "$error_function_" "no interfaces found" $ret_ + else + "$error_function_" "$message_" $ret_ + fi + return 1 + fi + dprint "interfaces found" $ret_ + echo "$if_" +} + # FIXME function netGetDefaultGateway { local error_function_=${1:-"eprint"} # function to call on error local message_="$2" # user supplied error message - local LANG=C - local LC_ALL=C local ip_='' local ret_='' + setCLang ip_=`route -n | awk '/^0\.0\.0\.0/{print $2; exit}'` ret_=$? + restoreLang if [ -z "$ip_" ]; then if [ -z "$message_" ]; then "$error_function_" "no default gateway found" $ret_ @@ -454,13 +483,13 @@ function netGetNetmask local error_function_=${2:-"eprint"} # function to call on error local message_="$3" # user supplied error message - local LANG=C - local LC_ALL=C local nm_='' local ret_='' + setCLang nm_=`ifconfig "$iface_" | awk '/[Mm]ask/{FS="[: ]*"; $0=$0; print $8; exit}'` ret_=$? + restoreLang if [ -z "$nm_" ]; then if [ -z "$message_" ]; then "$error_function_" "could not find a netmask for \"$iface_\"" $ret_ @@ -481,14 +510,14 @@ function netGetIp local error_function_=${2:-"eprint"} # function to call on error local message_="$3" # user supplied error message - local LANG=C - local LC_ALL=C local ip_="" local ret_="" + setCLang #ip_=`ip addr list eth0 |mawk '/inet/{split($2,A,"/"); print A[1]}'` ip_=`ifconfig "$iface_" | awk '/[Ii]net [Aa]ddr/{FS="[: ]*"; $0=$0; print $4; exit}'` ret_=$? + restoreLang if [ -z "$ip_" ]; then if [ -z "$message_" ]; then "$error_function_" "no ip for \"$iface_\" found" $ret_ @@ -515,7 +544,9 @@ function netGetNameservers return 1 fi + setCLang ns_=`awk '/^nameserver/{printf "%s ",$2}' $file_` + restoreLang if [ -z "$ns_" ]; then if [ -z "$message_" ]; then "$error_function_" "no nameservers found" $ret_