bugs in HTHost.c

Hi,

as pointed out in some earlier mails, 
http://lists.w3.org/Archives/Public/www-lib/2001JanMar/0143.html
there are some bugs in HTHost.s. They are related to missing unregistration
of HTEvent_CLOSE events on windows. The windows implementation always
registers for HTEvent_CLOSE for each connection. Thus, we need always to
unregister that event before setting host->registersFor to zero. There are 3
code segements that need to be changed from 

	HTEvent_unregister(HTChannel_socket(host->channel), HTEvent_READ);
	HTEvent_unregister(HTChannel_socket(host->channel), HTEvent_WRITE);
	host->registeredFor = 0;


to:

	HTEvent_unregister(HTChannel_socket(host->channel), HTEvent_READ);
	HTEvent_unregister(HTChannel_socket(host->channel), HTEvent_WRITE);
#ifdef WWW_WIN_ASYNC
	HTEvent_unregister(HTChannel_socket(host->channel), HTEvent_CLOSE);
#endif /* WWW_WIN_ASYNC */
	host->registeredFor = 0;


They are in the following procedures 

HTHost_clearChannel (HTHost * host, int status)
HTHost_recoverPipe (HTHost * host)
HTHost_register (HTHost * host, HTNet * net, HTEventType type)

Regards,

Jens

Received on Sunday, 25 March 2001 16:47:31 UTC