aboutsummaryrefslogtreecommitdiff
path: root/networking/libiproute/ll_addr.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/libiproute/ll_addr.c')
-rw-r--r--networking/libiproute/ll_addr.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/networking/libiproute/ll_addr.c b/networking/libiproute/ll_addr.c
index e732efdb2..f50e37193 100644
--- a/networking/libiproute/ll_addr.c
+++ b/networking/libiproute/ll_addr.c
@@ -43,6 +43,8 @@ const char *ll_addr_n2a(unsigned char *addr, int alen, int type, char *buf, int
43 43
44int ll_addr_a2n(unsigned char *lladdr, int len, char *arg) 44int ll_addr_a2n(unsigned char *lladdr, int len, char *arg)
45{ 45{
46 int i;
47
46 if (strchr(arg, '.')) { 48 if (strchr(arg, '.')) {
47 inet_prefix pfx; 49 inet_prefix pfx;
48 if (get_addr_1(&pfx, arg, AF_INET)) { 50 if (get_addr_1(&pfx, arg, AF_INET)) {
@@ -54,26 +56,24 @@ int ll_addr_a2n(unsigned char *lladdr, int len, char *arg)
54 } 56 }
55 memcpy(lladdr, pfx.data, 4); 57 memcpy(lladdr, pfx.data, 4);
56 return 4; 58 return 4;
57 } else { 59 }
58 int i;
59 60
60 for (i=0; i<len; i++) { 61 for (i = 0; i < len; i++) {
61 int temp; 62 int temp;
62 char *cp = strchr(arg, ':'); 63 char *cp = strchr(arg, ':');
63 if (cp) { 64 if (cp) {
64 *cp = 0; 65 *cp = 0;
65 cp++; 66 cp++;
66 } 67 }
67 if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) { 68 if (sscanf(arg, "%x", &temp) != 1 || (temp < 0 || temp > 255)) {
68 bb_error_msg("\"%s\" is invalid lladdr", arg); 69 bb_error_msg("\"%s\" is invalid lladdr", arg);
69 return -1; 70 return -1;
70 } 71 }
71 lladdr[i] = temp; 72 lladdr[i] = temp;
72 if (!cp) { 73 if (!cp) {
73 break; 74 break;
74 }
75 arg = cp;
76 } 75 }
77 return i+1; 76 arg = cp;
78 } 77 }
78 return i+1;
79} 79}