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/Connector.cc

    r6 r14  
    3434#include "ClientSocket.h"
    3535
    36 #include <cerrno>
    37 
    3836#include <poll.h>
    3937#include <sys/socket.h>
     
    5351    const struct sockaddr* addr = getAddress(addrlen);
    5452
    55     int result = ::connect(socket.fd, addr, addrlen);
    56     if (result<0) {
    57         if (errno==EINPROGRESS) {
    58             connecting = true;
    59             socket.events |= POLLOUT;
    60         } else {
    61             setErrorCode(errno);
    62         }
     53    if (socket.connect(addr, addrlen)) {
     54        connected = true;
     55        return true;
     56    } else if (socket.failed()) {
     57        return false;
    6358    } else {
    64         connected = true;
     59        connecting = true;
     60        socket.events |= POLLOUT;
     61        return false;
    6562    }
    66 
    67     return result==0;
    6863}
    6964
     
    8075    socklen_t len = sizeof(error);
    8176    if (getsockopt(socket.fd, SOL_SOCKET, SO_ERROR, &error, &len)<0) {
    82         setErrorCode(errno);
     77        socket.setErrorCodeFromErrno();
    8378    } else {
    8479        if (error==0) {
    8580            connected = true;
    8681        } else {
    87             setErrorCode(error);
     82            socket.setErrorCode(error);
    8883        }
    8984    }
Note: See TracChangeset for help on using the changeset viewer.