question about change in inet_ntoa.c

Giorgos Keramidas keramida at ceid.upatras.gr
Tue Feb 26 04:18:18 UTC 2008


On 2008-02-23 02:37, ithilgore <ithilgore.fbsd at gmail.com> wrote:
>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 ?

I don't see ucp[] in RELENG_6, RELENG_7 or CURRENT.  Where did you get
the version shown as `7.0-RC1' above?



More information about the freebsd-net mailing list