Changeset 3210 for trunk/src


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

bugfixes

Location:
trunk/src/wsock32/new
Files:
2 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                                }
  • trunk/src/wsock32/new/wsock32.cpp

    r3205 r3210  
    1 /* $Id: wsock32.cpp,v 1.17 2000-03-23 19:21:54 sandervl Exp $ */
     1/* $Id: wsock32.cpp,v 1.18 2000-03-23 23:07:23 sandervl Exp $ */
    22
    33/*
     
    232232   }
    233233   ret = soclose(s);
    234 
    235234   //Close WSAAsyncSelect thread if one was created for this socket
    236    WSAAsyncSelect(s, 0, 0, 0);
    237    
     235   FindAndSetAsyncEvent(s, 0, 0, 0);
     236 
    238237   if(ret == SOCKET_ERROR) {
    239238        WSASetLastError(wsaErrno());
     
    862861                ret = setsockopt(s,level,optname, (char *)&size, sizeof(ULONG));
    863862                if(ret == SOCKET_ERROR && size > 65535) {
     863                        dprintf(("setsockopt: change size from %d to 65000", size));
    864864                        //SvL: Limit send & receive buffer length to 64k
    865865                        //     (only happens with 16 bits tcpip stack?)
Note: See TracChangeset for help on using the changeset viewer.