1N/A/*********************************************************************** 1N/A* This software is part of the ast package * 1N/A* Copyright (c) 1985-2011 AT&T Intellectual Property * 1N/A* and is licensed under the * 1N/A* Common Public License, Version 1.0 * 1N/A* by AT&T Intellectual Property * 1N/A* A copy of the License is available at * 1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 1N/A* Information and Software Systems Research * 1N/A* Glenn Fowler <gsf@research.att.com> * 1N/A* David Korn <dgk@research.att.com> * 1N/A* Phong Vo <kpv@research.att.com> * 1N/A***********************************************************************/ 1N/A * convert string to ipv6 network byte order ip address 1N/A * with optional prefix bits 1N/A * pointer to first unused char placed in *e, even on error 1N/A * return 0:ok <0:error 1N/A register unsigned char* z;
1N/A static unsigned char lex[
256];
1N/A for (c = 0; c <
sizeof(
lex); ++c)
1N/A switch (c =
lex[*((
unsigned char*)s++)])
1N/A if ((c =
lex[*((
unsigned char*)++s)]) >=
16)
1N/A *b++ = ((a >>
8) &
0xf) *
100 + ((a >>
4) &
0xf) *
10 + (a &
0xf);
1N/A switch (c =
lex[*((
unsigned char*)s++)])
1N/A if ((c =
lex[*((
unsigned char*)++s)]) >=
16)
1N/A while ((c =
lex[*((
unsigned char*)s++)]) <
10)
1N/A *e = (
char*)(s -
1);