libbind / FD_SETSIZE question (on Windows)

Stefan Puiu stefanpuiu at itcnetworks.ro
Thu Jan 27 10:31:37 UTC 2005



Danny, first of all, I haven't redefined FD_SETSIZE. I've only changed 
the value of highestFD in res_send.c on Windows.

Looking at res_send.c, I see that highestFD is only used to decide 
whether a socket descriptor is valid or not - if the descriptor is above 
highestFD, two of the functions fail and set errno to ENOTSOCK. This 
doesn't affect FD_SETSIZE in any way, or at least not in a way I can see 
- the consequences you're talking about might make sense if FD_SETSIZE 
were redefined.

Danny Mayer wrote:

>At 09:11 AM 1/26/2005, Stefan Puiu wrote:
>  
>
>>Does it look ok to you? I've used 0xFFFFFFFF as highestFD, since I'm not 
>>aware of a Windows #define for the maximum socket descriptor value.
>>    
>>
>
>You really DON'T want to do this. FD_SETSIZE is used for a number of arrays.
>You'd end up with a HUGE memory problem for arrays that are sparsely
>populated. You really don't want to step through an array like that.
>It's one of the reasons that socket-handling was totally redesign in BIND 9.3.0
>(and 9.2.4) for Windows. The overhead was outrageous. You need to understand
>that FD_SETSIZE is used in different ways on Unix and may have different
>uses depending on the assumptions made.
>
>Danny
>
>
>
>  
>



More information about the bind-users mailing list