In source/smbd/server.c sys_select() is called with FD_SETSIZE which is fixed set to 1024. My colleague Sebastian Krahmer saw this while poking around in smbd with the debugger. From the current code it looks easy to calculate the highest numbered descriptor.
Created attachment 781 [details] Calculate max fd while opening fds and use it as first art to sys_select()
Correct - applied. Good patch, thanks ! Jeremy.
Created attachment 795 [details] Use also maxfd for nmbd instead of FD_SETSIZE
Reopen as FD_SETSIZE is also used in the select() of nmbd.
Applied nmbd patch. Thanks, Jeremy.
I have to bother again. a) wrepld/server.c has the same fixed FD_SETSIZE usage. b) I've missed one FD_SET in smbd/server.c c) The int maxfd of listen_for_packets() nmbd/nmbd_packets.c must be a static int. We also could remove check_set_maxfd() as I found the MAX() define.
Created attachment 796 [details] Fix wrepeld sys_select() call; ensure to count maxfd in smbd/server.c correct; use static int for maxfd in nmbd
Applied (with addition of missing "MAX" macro :-). Jeremy.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.