From bb1abb2b213adceb606ff458e3786c8c2ea4dc8a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 19 Feb 2015 14:02:07 +0000 Subject: [ipv4] Rewrite inet_aton() The implementation of inet_aton() has an unknown provenance. Rewrite this code to avoid potential licensing uncertainty. Also move the code from core/misc.c to its logical home in net/ipv4.c, and add a few extra test cases. Signed-off-by: Michael Brown --- src/core/misc.c | 23 ----------------------- 1 file changed, 23 deletions(-) (limited to 'src/core') diff --git a/src/core/misc.c b/src/core/misc.c index eaceddf..84cfcd8 100644 --- a/src/core/misc.c +++ b/src/core/misc.c @@ -10,29 +10,6 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include -/************************************************************************** -INET_ATON - Convert an ascii x.x.x.x to binary form -**************************************************************************/ -int inet_aton ( const char *cp, struct in_addr *inp ) { - const char *p = cp; - const char *digits_start; - unsigned long ip = 0; - unsigned long val; - int j; - for(j = 0; j <= 3; j++) { - digits_start = p; - val = strtoul(p, ( char ** ) &p, 10); - if ((p == digits_start) || (val > 255)) return 0; - if ( ( j < 3 ) && ( *(p++) != '.' ) ) return 0; - ip = (ip << 8) | val; - } - if ( *p == '\0' ) { - inp->s_addr = htonl(ip); - return 1; - } - return 0; -} - unsigned int strtoul_charval ( unsigned int charval ) { if ( charval >= 'a' ) { -- cgit v1.1