# HG changeset patch # User benoit # Date 1184842130 0 # Node ID ab05e25d2df277849296504c3bd886049890fdc7 # Parent 1d4b38ae5f1bc2bbf7756cb642d043fe1d1204ae use sscanf to parse address diff -r 1d4b38ae5f1b -r ab05e25d2df2 os_support.c --- a/os_support.c Wed Jul 18 11:56:36 2007 +0000 +++ b/os_support.c Thu Jul 19 10:48:50 2007 +0000 @@ -41,19 +41,10 @@ int inet_aton (const char * str, struct in_addr * add) { - const char * pch = str; unsigned int add1 = 0, add2 = 0, add3 = 0, add4 = 0; - add1 = atoi(pch); - pch = strpbrk(pch,"."); - if (!pch) return 0; - add2 = atoi(pch); - pch = strpbrk(pch,"."); - if (!pch) return 0; - add3 = atoi(pch); - pch = strpbrk(pch,"."); - if (!pch) return 0; - add4 = atoi(pch); + if (sscanf(str, "%d.%d.%d.%d", &add1, &add2, &add3, &add4) != 4) + return 0; if (!add1 || (add1|add2|add3|add4) > 255) return 0;