Ignore:
Timestamp:
Mar 24, 2000, 12:07:23 AM (25 years ago)
Author:
sandervl
Message:

bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wsock32/new/asyncapi.cpp

    r3205 r3210  
    1 /* $Id: asyncapi.cpp,v 1.2 2000-03-23 19:21:53 sandervl Exp $ */
     1/* $Id: asyncapi.cpp,v 1.3 2000-03-23 23:07:22 sandervl Exp $ */
    22
    33/*
     
    150150
    151151   if(!pThreadParm->fCancelled) {
     152        dprintf(("WSAsyncThreadProc %x %x %x %x", pThreadParm->hwnd, pThreadParm->msg, pThreadParm->hAsyncTaskHandle, lParam));
    152153        PostMessageA(pThreadParm->hwnd, pThreadParm->msg,
    153154                     (WPARAM)pThreadParm->hAsyncTaskHandle, lParam);
     
    396397   event = WSAMAKESELECTREPLY(event, socket_error);
    397398
     399   dprintf(("AsyncNotifyEvent %x %x %x %x", pThreadParm->u.asyncselect.s, pThreadParm->hwnd, pThreadParm->msg, event));
    398400   PostMessageA(pThreadParm->hwnd, pThreadParm->msg, (WPARAM)pThreadParm->u.asyncselect.s,
    399401               (LPARAM)event);
     
    414416   {
    415417asyncloopstart:
    416         i         = 0;
    417         noread    = nowrite = noexcept = -1;
     418        i      = 0;
     419        noread = nowrite = noexcept = -1;
    418420
    419421        //break if user cancelled request
     
    437439                sockets[noread] = s;
    438440        }
    439         if(lEventsPending & (FD_WRITE | FD_CONNECT)) {
     441        if((lEventsPending & FD_CONNECT) ||
     442          ((lEventsPending & FD_WRITE) &&
     443           (!(ioctl(s, FIOBSTATUS, (char *)&tmp, sizeof(tmp)) & SS_CANTSENDMORE))))
     444        {
    440445                nowrite = i++;
    441446                sockets[nowrite] = s;
     
    446451        }
    447452
    448         dprintf(("WSAsyncSelectThreadProc %x wrs=%d, rds=%d, oos =%d, pending = %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending));
     453//        dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending));
    449454
    450455        ret = select((int *)sockets, nr(noread), nr(nowrite), nr(noexcept), -1);
    451456        if(ret == SOCKET_ERROR) {
    452457                int selecterr = sock_errno();
     458                dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr));
    453459                switch(selecterr)
    454460                {
     
    490496                                ret = getsockopt(s, SOL_SOCKET, SO_ERROR,
    491497                                                 (char *) &sockoptval, &sockoptlen);
    492                                 if(sockoptval == (WSAECONNREFUSED-WSABASEERR)) {
     498                                if(sockoptval == WSAECONNREFUSED) {
    493499                                        AsyncNotifyEvent(pThreadParm, FD_CONNECT, WSAECONNREFUSED);
    494500                                }
Note: See TracChangeset for help on using the changeset viewer.