With the change that was made to these functions where the state of the socket option is determined by our own mask rather than querying the socket, makes an assuption about the initial state of the socket. Since the mask is initialized to 0 when the socket is created, the assumption is made that the initial state is off. Is this always true for every socket option? This kind of assuption seems a little dangerous. With this change, NetWare is currently failing to respond to about half of the requests made to the web server. From what I can tell so far, the failure is because a socket is determined to already be in a blocking state when the call is make to set it to blocking. When in fact, the socket is really in a nonblocking state and the mask is not insync with the real state only because it was never initialized. Don't we need to first query the socket to determine its initial state and then base the mask off of the results of the query? Or bite the bullet and make the requested call rather than trying to short circuit the process?
Brad Brad Nicholes Senior Software Engineer Novell, Inc., a leading provider of Net business solutions http://www.novell.com
