Changeset 3260 for trunk/src


Ignore:
Timestamp:
Mar 28, 2000, 7:13:06 PM (25 years ago)
Author:
sandervl
Message:

socket error fixes

Location:
trunk/src/wsock32
Files:
3 edited

Legend:

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

    r3229 r3260  
    1 /* $Id: asyncapi.cpp,v 1.3 2000-03-24 19:28:03 sandervl Exp $ */
     1/* $Id: asyncapi.cpp,v 1.4 2000-03-28 17:13:05 sandervl Exp $ */
    22
    33/*
     
    461461                int selecterr = sock_errno();
    462462                dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr));
     463                if(selecterr && selecterr < SOCBASEERR) {
     464                        selecterr += SOCBASEERR;
     465                }
    463466                switch(selecterr)
    464467                {
    465468                case SOCEINTR:
     469                        state = ioctl(s, FIOBSTATUS, (char *)&tmp, sizeof(tmp));
     470                        dprintf(("SOCEINTR; state = %x", state));
    466471                        goto asyncloopstart;    //so_cancel was called
    467472
  • trunk/src/wsock32/wsa.cpp

    r3229 r3260  
    1 /* $Id: wsa.cpp,v 1.3 2000-03-24 19:28:08 sandervl Exp $ */
     1/* $Id: wsa.cpp,v 1.4 2000-03-28 17:13:06 sandervl Exp $ */
    22
    33/*
     
    157157//******************************************************************************
    158158//******************************************************************************
    159 ODINFUNCTION2(int,__WSAFDIsSet,SOCKET, s,
    160                                   ws_fd_set*,set)
     159ODINFUNCTION2(int,__WSAFDIsSet,SOCKET, s, ws_fd_set*,set)
    161160{
    162161  int i = set->fd_count;
     
    173172 int loc_errno = sock_errno();
    174173
     174    //Warp 4 returns errors with base 0
     175    if(loc_errno && loc_errno < SOCBASEERR) {
     176        loc_errno += SOCBASEERR;
     177    }
    175178    switch(loc_errno)
    176179    {
     
    215218        case SOCEHOSTUNREACH:   return WSAEHOSTUNREACH;
    216219        case SOCENOTEMPTY:      return WSAENOTEMPTY;
    217 #ifdef EPROCLIM
    218         case SOCEPROCLIM:       return WSAEPROCLIM;
    219 #endif
    220 #ifdef EUSERS
    221         case SOCEUSERS:         return WSAEUSERS;
    222 #endif
    223 #ifdef EDQUOT
    224         case SOCEDQUOT:         return WSAEDQUOT;
    225 #endif
    226 #ifdef ESTALE
    227         case SOCESTALE:         return WSAESTALE;
    228 #endif
    229 #ifdef EREMOTE
    230         case SOCEREMOTE:        return WSAEREMOTE;
    231 #endif
     220        case SOCENXIO:
     221        case SOCESRCH:
     222        case SOCEOS2ERR:        return WSAEFAULT;
    232223
    233224        /* just in case we ever get here and there are no problems */
  • trunk/src/wsock32/wsock32.cpp

    r3233 r3260  
    1 /* $Id: wsock32.cpp,v 1.25 2000-03-24 23:14:29 sandervl Exp $ */
     1/* $Id: wsock32.cpp,v 1.26 2000-03-28 17:13:06 sandervl Exp $ */
    22
    33/*
     
    262262   // map BSD error codes
    263263   if(ret == SOCKET_ERROR) {
    264         if(sock_errno() == SOCEINPROGRESS) {
     264        int sockerror = sock_errno();
     265        if(sockerror && sockerror < SOCBASEERR) {
     266                sockerror += SOCBASEERR;
     267        }
     268        if(sockerror == SOCEINPROGRESS) {
    265269                WSASetLastError(WSAEWOULDBLOCK);
    266270        }
    267271        else
    268         if (sock_errno() == SOCEOPNOTSUPP) {
     272        if(sockerror == SOCEOPNOTSUPP) {
    269273                WSASetLastError(WSAEINVAL);
    270274        }
     
    324328
    325329   // Map EOPNOTSUPP to EINVAL
    326    if(ret == SOCKET_ERROR && sock_errno() == SOCEOPNOTSUPP)
     330   int sockerror = sock_errno();
     331   if(sockerror && sockerror < SOCBASEERR) {
     332        sockerror += SOCBASEERR;
     333   }
     334
     335   if(ret == SOCKET_ERROR && sockerror == SOCEOPNOTSUPP)
    327336        WSASetLastError(WSAEINVAL);
    328337   else
Note: See TracChangeset for help on using the changeset viewer.