xref: /plan9/sys/src/libip/parseether.c (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1*3e12c5d1SDavid du Colombier #include <u.h>
2*3e12c5d1SDavid du Colombier #include <libc.h>
3*3e12c5d1SDavid du Colombier 
4*3e12c5d1SDavid du Colombier int
parseether(uchar * to,char * from)5*3e12c5d1SDavid du Colombier parseether(uchar *to, char *from)
6*3e12c5d1SDavid du Colombier {
7*3e12c5d1SDavid du Colombier 	char nip[4];
8*3e12c5d1SDavid du Colombier 	char *p;
9*3e12c5d1SDavid du Colombier 	int i;
10*3e12c5d1SDavid du Colombier 
11*3e12c5d1SDavid du Colombier 	p = from;
12*3e12c5d1SDavid du Colombier 	for(i = 0; i < 6; i++){
13*3e12c5d1SDavid du Colombier 		if(*p == 0)
14*3e12c5d1SDavid du Colombier 			return -1;
15*3e12c5d1SDavid du Colombier 		nip[0] = *p++;
16*3e12c5d1SDavid du Colombier 		if(*p == 0)
17*3e12c5d1SDavid du Colombier 			return -1;
18*3e12c5d1SDavid du Colombier 		nip[1] = *p++;
19*3e12c5d1SDavid du Colombier 		nip[2] = 0;
20*3e12c5d1SDavid du Colombier 		to[i] = strtoul(nip, 0, 16);
21*3e12c5d1SDavid du Colombier 		if(*p == ':')
22*3e12c5d1SDavid du Colombier 			p++;
23*3e12c5d1SDavid du Colombier 	}
24*3e12c5d1SDavid du Colombier 	return 0;
25*3e12c5d1SDavid du Colombier }
26