Changeset 1344


Ignore:
Timestamp:
Apr 7, 2004, 1:25:56 AM (22 years ago)
Author:
bird
Message:

#732: SOL_SOCKET+SO_ERROR needed error number wrapping.

Location:
branches/GCC_3-2-2_BETA4_BRANCH/src/emx/src/libsocket
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/GCC_3-2-2_BETA4_BRANCH/src/emx/src/libsocket/getsockopt.c

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.2.2.1
    r1343 r1344  
    4646        rc = __libsocket_getsockopt(pFHSocket->iSocket, level, optname, optval, optlen);
    4747        if (rc >= 0)
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
    4868            LIBCLOG_RETURN_INT(rc);
     69
    4970        __libsocket_setLibcErrno();
    5071    }
  • branches/GCC_3-2-2_BETA4_BRANCH/src/emx/src/libsocket/setsockopt.c

    • Property cvs2svn:cvs-rev changed from 1.2 to 1.2.2.1
    r1343 r1344  
    3838int setsockopt(int socket, int level, int optname, const void *optval, int optlen)
    3939{
    40     LIBCLOG_ENTER("socket=%d level=%#x optname=%#x optval=%p optlen=%p\n",
     40    LIBCLOG_ENTER("socket=%d level=%#x optname=%#x optval=%p optlen=%\n",
    4141                  socket, level, optname, optval, optlen);
    4242    PLIBCSOCKETFH   pFHSocket = __libsocket_FH(socket);
     
    4444    {
    4545        int rc;
    46         rc = __libsocket_setsockopt(pFHSocket->iSocket, level, optname, optval, optlen);
     46        if (    level == SOL_SOCKET
     47            &&  optname == SO_ERROR
     48            &&  optlen == 4
     49            &&  optval)
     50        {
     51            int err = *(int*)optval;
     52            if (err > 0 && err <= 1000)
     53                err += EOS2_TCPIP_OFFSET;
     54            LIBCLOG_MSG("err: %d\n", err);
     55            rc = __libsocket_setsockopt(pFHSocket->iSocket, SOL_SOCKET, SO_ERROR, &err, 4);
     56        }
     57        else
     58            rc = __libsocket_setsockopt(pFHSocket->iSocket, level, optname, optval, optlen);
    4759        if (rc >= 0)
    4860            LIBCLOG_RETURN_INT(rc);
Note: See TracChangeset for help on using the changeset viewer.