sad se koristi ip umjesto ifconfig
authorIvan Rako <ivan.rako@srce.hr>
Mon, 2 Jul 2018 21:21:23 +0000 (23:21 +0200)
committerIvan Rako <ivan.rako@srce.hr>
Mon, 2 Jul 2018 21:21:23 +0000 (23:21 +0200)
debian/changelog
functions.sh

index acfdf58..81e05f2 100644 (file)
@@ -2,7 +2,7 @@ carnet-tools-cn (3.2.0) stable; urgency=low
 
   * Minimalne izmjene u paketu za Debian stretch
   * Izmjene u funkcijama cp_get_ifaddr i cp_get_ifmask zbog drugacijeg
-    outputa naredbe ifconfig
+    outputa naredbe ifconfig - sad se koristi naredba ip
 
  -- Ivan Rako <Ivan.Rako@CARNet.hr>  Fri, 27 Apr 2018 09:28:03 +0200
 
index 37bd113..7f03924 100644 (file)
@@ -5,6 +5,7 @@ if [ -z "$_CP_INIT_ECHO_RETURN" ]; then
 fi
 
 # by ddzeko & ico, Fri, 18 Mar 2005 14:44:08 +0100
+# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200
 cp_get_ifaddr() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
 
@@ -21,14 +22,16 @@ cp_get_ifaddr() {
     [ -z "$interface" ] && interface=lo
   fi
 
-  if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  #if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  if ! ip addr show $interface 2> /dev/null >> /dev/null; then
     echo "cp_get_ifaddr: $interface: No such interface" 1>&2
     CP_ECHO_RETURN="$echo_return"
     return 2
   fi
 
   #ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf("%s\n",substr($2,index($2,":")+1)) }'`"
-  ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf($2) }'`"
+  #ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf($2) }'`"
+  ifaddr="`ip -o -4 addr show $interface scope global | awk '{print $4;}' | cut -d/ -f 1 | head -1`"
 
   if [ -z $ifaddr ]; then
     echo "cp_get_ifaddr: $interface: No ip address found" 1>&2
@@ -42,10 +45,11 @@ cp_get_ifaddr() {
 }
 
 # by ddzeko & ico, Fri, 18 Mar 2005 14:44:08 +0100
+# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200
 cp_get_ifmask() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
 
-  local ifmask interface echo_return
+  local ifmask interface echo_return cidr
   echo_return="$CP_ECHO_RETURN" # since we're making our own calls
   # in our own way we need to set CP_ECHO_RETURN the way we want it
   # but preserving initial state so it could be used afterwards
@@ -58,14 +62,17 @@ cp_get_ifmask() {
     [ -z "$interface" ] && interface=lo
   fi
 
-  if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  #if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  if ! ip addr show $interface 2> /dev/null >> /dev/null; then
     echo "cp_get_ifmask: $interface: No such interface" 1>&2
     CP_ECHO_RETURN="$echo_return"
     return 1
   fi
 
   #ifmask="`/sbin/ifconfig $interface | awk '/Mask/{if($3~/Mask/)a=$3;else if ($4~/Mask/)a=$4;printf ("%s\n", substr(a,index(a,":")+1))}'`"
-  ifmask="`/sbin/ifconfig $interface | awk '/netmask /{ printf($4) }'`"
+  #ifmask="`/sbin/ifconfig $interface | awk '/netmask /{ printf($4) }'`"
+  cidr="`ip -o -4 addr show $interface scope global | awk '{print $4;}'`"
+  ifmask="`ipcalc -nb 161.53.0.188/28 | awk '/^Netmask:/{print $2}'`"
 
   if [ -z "$ifmask" ]; then
     echo "cp_get_ifmask: $interface: No netmask found" 1>&2
@@ -79,6 +86,7 @@ cp_get_ifmask() {
 }
 
 # by ddzeko, Mon, 21 Mar 2005 07:00:22 +0100
+# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200
 cp_get_ifdefault() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
 
@@ -91,14 +99,16 @@ cp_get_ifdefault() {
   RET=""
   case $1 in
     dev)
-      RET=`route -n | awk 'BEGIN {m = 2^32}
-                           /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $8; m = $5}}
-                             END {print r}'`
+      #RET=`route -n | awk 'BEGIN {m = 2^32}
+      #                    /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $8; m = $5}}
+      #                       END {print r}'`
+      RET=`ip route | grep ^default | awk '{print $5}'`
       ;;
     addr)
-      RET=`route -n | awk 'BEGIN {m = 2^32}
-                           /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $2; m = $5}}
-                                    END {print r}'`
+      #RET=`route -n | awk 'BEGIN {m = 2^32}
+      #                    /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $2; m = $5}}
+      #                             END {print r}'`
+      RET=`ip route | grep ^default | awk '{print $3}'`
       ;;
     *)
       echo "cp_get_ifdefault: Argument required (dev or addr)" >&2
@@ -113,6 +123,7 @@ cp_get_ifdefault() {
 }
 
 # by ico, Tue, 15 Mar 2005 14:04:21 +0100
+# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200
 cp_get_netaddr() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
 
@@ -129,7 +140,8 @@ cp_get_netaddr() {
     [ -z "$interface" ] && interface=lo
   fi
 
-  if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  #if ! ifconfig $interface 2> /dev/null >> /dev/null; then
+  if ! ip addr show $interface 2> /dev/null >> /dev/null; then
     echo "cp_get_netaddr: $interface: No such interface" 1>&2
     CP_ECHO_RETURN="$echo_return"
     return 1