Ignore:
Timestamp:
12/29/12 10:03:12 (11 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Moved the storage of the error code to where it belongs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/xplcommon/posix/Acceptor.cc

    r6 r14  
    3434#include "ServerSocket.h"
    3535
    36 #include <cerrno>
    37 
    3836#include <poll.h>
    3937#include <sys/socket.h>
     
    5755    if (acceptedFD>=0) return true;
    5856
    59     socklen_t addrlen = addressLength;
    60     int result = ::accept(socket.fd,
    61                           reinterpret_cast<struct ::sockaddr*>(address),
    62                           &addrlen);
     57    size_t addrlen = addressLength;
     58    int result = socket.accept(reinterpret_cast<struct ::sockaddr*>(address),
     59                               (address==0) ? 0 : &addrlen);
    6360    if (result<0) {
    64         if (errno==EAGAIN || errno==EWOULDBLOCK) {
     61        if (socket.failed()) {
     62            socket.events &= ~POLLIN;
     63        } else {
    6564            socket.events |= POLLIN;
    66         } else {
    67             socket.events &= ~POLLIN;
    68             setErrorCode(errno);
    6965        }
    7066        return false;
Note: See TracChangeset for help on using the changeset viewer.