1 #include <u.h> 2 #include <libc.h> 3 #include "ip.h" 4 5 int 6 parseip(uchar *to, char *from) 7 { 8 int i; 9 char *p; 10 11 p = from; 12 memset(to, 0, 4); 13 for(i = 0; i < 4 && *p; i++){ 14 to[i] = strtoul(p, &p, 0); 15 if(*p == '.') 16 p++; 17 } 18 19 switch(CLASS(to)){ 20 case 0: /* class A - 1 byte net */ 21 case 1: 22 if(i == 3){ 23 to[3] = to[2]; 24 to[2] = to[1]; 25 to[1] = 0; 26 } else if (i == 2){ 27 to[3] = to[1]; 28 to[1] = 0; 29 } 30 break; 31 case 2: /* class B - 2 byte net */ 32 if(i == 3){ 33 to[3] = to[2]; 34 to[2] = 0; 35 } 36 break; 37 } 38 return 0; 39 } 40