Patch ifconfig from toolbox

ifconfig is frequently used although recently ip can replace it.
ifconfig in CPE is from android toolbox. Checked android repo,
it's not fixed in lollipop and is phased out in newest master repo.
This patch fixe two bugs:
1. ifconfig for non ip/netmask configured interface aborts.
2. ifconfig is hardcoded for little endian, will print reversed
   ip and netmask in big endian windcharger board.

bug=21891783

Change-Id: I72bca78b7605c30ef3b86373538081b4eb02ad37
diff --git a/ifconfig.c b/ifconfig.c
index 80c0e5c..b524647 100644
--- a/ifconfig.c
+++ b/ifconfig.c
@@ -61,7 +61,7 @@
 {
     struct ifreq ifr;
     int s;
-    unsigned int addr, mask, flags;
+    unsigned int flags;
     char astring[20];
     char mstring[20];
     char *updown, *brdcst, *loopbk, *ppp, *running, *multi;
@@ -82,16 +82,23 @@
 
     if (argc == 0) {
         if (ioctl(s, SIOCGIFADDR, &ifr) < 0) {
-            perror(ifr.ifr_name);
-            return -1;
-        } else
-            addr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr;
+            if (errno == EADDRNOTAVAIL || errno == EAFNOSUPPORT) {
+                bzero((char *)&ifr.ifr_addr, sizeof(ifr.ifr_addr));
+            } else {
+                perror(ifr.ifr_name);
+                return -1;
+            }
+        }
+        sprintf(astring, "%s",
+                inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
 
         if (ioctl(s, SIOCGIFNETMASK, &ifr) < 0) {
-            perror(ifr.ifr_name);
-            return -1;
-        } else
-            mask = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr;
+            if (errno != EADDRNOTAVAIL)
+                perror(ifr.ifr_name);
+            bzero((char *)&ifr.ifr_addr, sizeof(ifr.ifr_addr));
+        }
+        sprintf(mstring, "%s",
+                inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
 
         if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0) {
             perror(ifr.ifr_name);
@@ -99,16 +106,6 @@
         } else
             flags = ifr.ifr_flags;
 
-        sprintf(astring, "%d.%d.%d.%d",
-                addr & 0xff,
-                ((addr >> 8) & 0xff),
-                ((addr >> 16) & 0xff),
-                ((addr >> 24) & 0xff));
-        sprintf(mstring, "%d.%d.%d.%d",
-                mask & 0xff,
-                ((mask >> 8) & 0xff),
-                ((mask >> 16) & 0xff),
-                ((mask >> 24) & 0xff));
         printf("%s: ip %s mask %s flags [", ifr.ifr_name,
                astring,
                mstring