[JDEV] Minor 'bug'let ?

Dirk-Willem van Gulik dirk.vangulik at jrc.it
Tue Jan 5 13:46:16 CST 1999


Though I admit that I do not completely understand the code; a minor
buglet showed up on FreeBSD (if you optimize and non-null your structs).

Sorry for the structure, but I could not find a CVS to diff against.

In 	.../common/io.c

+               read_fd_set = active_fd_set;
        	/* first time through we initialize the IO routine */
                if(!first)
                {
                        DBUG("IO: waiting ","")
-                	read_fd_set = active_fd_set;
                        h_err(select(FD_SETSIZE, &read_fd_set,
&write_fd_set, NULL, NULL),"select");

                        DBUG("IO: select returned","")
                        FD_ZERO(&active_fd_set);
                } else {

Otherwise if the read_fd_set happens to contani cruft, the accept
further down is triggered tooo easily.

Secondly, given that the active_fd_set is (re)build each time; it
is worthwhile to keep a maxfd; rather than FD_SETSIZE; at least
on FreeBSD that makes a speed difference.

Thirdly setting TCP_NODELAY and alllowing for port REUSE might be
nice. 
        if( (setsockopt(c->id,SOL_SOCKET,SO_REUSEADDR,(const char
*)&one,sizeof(one))) <0)
        if( (setsockopt(c->id,IPPROTO_TCP,TCP_NODELAY,(const void
*)&one,sizeof(one))) <0) 

DW
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Dirk.VanGulik.vcf
Type: text/x-vcard
Size: 477 bytes
Desc: Card for Dirk-Willem van Gulik
URL: <https://www.jabber.org/jdev/attachments/19990105/dbd1e56c/attachment-0002.vcf>


More information about the JDev mailing list