question about change in inet_ntoa.c

ithilgore ithilgore.fbsd at gmail.com
Sat Feb 23 00:41:04 UTC 2008


ithilgore wrote:
>
> I was looking at the differences between some old FreeBSD code
> and the one of 7.0-RC1 and was wondering about a change
> in inet_ntoa.c
>
> /***** 7.0-RC1 **************/
>
>    sprintf(buf, "%d.%d.%d.%d",
>        ucp[0] & 0xff,
>        ucp[1] & 0xff,
>        ucp[2] & 0xff,
>        ucp[3] & 0xff);
>
>
> /****** 4.11-RELEASE ***********/
>
>
> static const char fmt[] = "%u.%u.%u%u";
> if ((size_t)snprintf(dst, size, fmt, src[0], src[1], src[2], src[3])
>    >= size) {
> ....
> ....
>
> Was there a specific purpose of changing the more easy and simple way
> of %u  instead of the combination of %d and and-ing with 0xff  ??
> It essentially gives the same result but increases overhead (i think) 
> in the more
> recent version.
>
>
I just noticed I made a mistake. The second code is libc's version of 
inet_ntoa.
But the question still counts. Why not use the plain simpler version of 
libc ?



More information about the freebsd-net mailing list