Commit d8a30e40 authored by jan.koester's avatar jan.koester
Browse files

now better

parent 1beb369c
Loading
Loading
Loading
Loading
+451 −492

File changed.

Preview size limit exceeded, changes collapsed.

+11 −5
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ socket::socket() {
    _Socket = -1;
    _Type   = -1;
    _Extension = 0;

    std::memset(&_Addr, 0, sizeof(_Addr));
    _AddrLen = sizeof(_Addr);
}
@@ -55,11 +54,18 @@ SOCKET socket::fd() {
    return _Socket;
}

void socket::close() {
void netplus::socket::close() {
    if (_Socket < 0) return;
    ::shutdown(_Socket, SHUT_RDWR);
    ::close(_Socket);
    _Socket = -1;

    int fd = _Socket;
    _Socket = -1; // prevent double close races early

    ::shutdown(fd, SHUT_RDWR);

    int rc;
    do {
        rc = ::close(fd);
    } while (rc < 0 && errno == EINTR);
}

void socket::setFlag(int flag, int value) {
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace netplus {

tcp::tcp() : socket() {
    _Socket = -1;
    _Socket = ::socket(0,SOCK_STREAM,IPPROTO_TCP);
    _Type   = sockettype::TCP;
}

+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace netplus {

udp::udp() : socket() {
    _Socket = -1;
    _Socket = _Socket = ::socket(0,SOCK_DGRAM,IPPROTO_UDP);
    _Type = sockettype::UDP;
}

+0 −1
Original line number Diff line number Diff line
@@ -148,7 +148,6 @@ namespace netplus {
	class socket {
	public:
		socket();

		socket(socket& socket) = delete;
		socket& operator=(const socket& socket) = delete;

Loading