- From: Deshakulakarni, Chandra <Chandra_Deshakulakarni@bmc.com>
- Date: Fri, 9 Mar 2001 09:32:52 -0600
- To: "'www-lib@w3.org'" <www-lib@w3.org>
This bug happens only on NT, when libraries were compiled with WWW_WIN_ASYNC flag defined. I was trying HTTP Get from a valid DNS hostname. But that host didn't have any running web-server. The HTTP Get was trying to get a document from the default HTTP port. This is in HTEvtLst.c ******************* HTEvtLst.c *************************************** #ifdef WWW_WIN_ASYNC /* Only responsible for WM_TIMER and WSA_AsyncSelect */ PRIVATE LRESULT CALLBACK AsyncWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { WORD event; SOCKET sock; HTEventType type; ms_t now = HTGetTimeInMillis(); /* timeout stuff */ if (uMsg == WM_TIMER) { HTTimer_dispatch((HTTimer *)wParam); return (0); } if (uMsg != HTwinMsg) /* not our async message */ return (DefWindowProc(hwnd, uMsg, wParam, lParam)); event = LOWORD(lParam); sock = (SOCKET)wParam; switch (event) { case FD_READ: type = HTEvent_READ; break; case FD_WRITE: type = HTEvent_WRITE; break; case FD_ACCEPT: type = HTEvent_ACCEPT; break; case FD_CONNECT: type = HTEvent_CONNECT; break; case FD_OOB: type = HTEvent_OOB; break; /* JK: was returning HTEvent_CLOSE before, and this was a source of errors, as libwww detects the socket shutdown with a call to recv */ case FD_CLOSE: type = HTEvent_READ; break; default: HTDEBUGBREAK("Unknown event %d\n" _ event); } if (HTEventList_dispatch((int)sock, type, now) != HT_OK) HTEndLoop = -1; return (0); } ******************* END ********************************************** The code here never checks for error condition, which can be obtained by WORD err = HIWORD(lParam); if ( err != 0 ) { /* May be end the loop or pass the error back to the calling application. */ } Since, there was no web server, in this case, returns an 'err' value of "ConnectionRefused". Since the error is never caught, code goes in an infinite loop. I couldn't figure out a way to gracefully report the error condition back to the calling program. I appreciate if anyone has a solution for this. Thanks, Chandra_Deshakulakarni@bmc.com
Received on Friday, 9 March 2001 10:34:45 UTC