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

test

parent 34d7d54c
Loading
Loading
Loading
Loading
+19 −21
Original line number Diff line number Diff line
@@ -179,18 +179,16 @@ size_t netplus::tcp::sendData(void* data, unsigned long size,int flags){
    buf.buf = (char*)data;
    buf.len = size;

    DWORD dwBytes = 0;
    DWORD dwFlags = 0;

    SOCKET rval=::WSASend(_Socket,&buf,1,&dwBytes,flags,&_Overlapped,nullptr);
SEND:
    SOCKET rval=::WSASend(_Socket,&buf,1,nullptr,flags,&_Overlapped,nullptr);

    if(rval == SOCKET_ERROR){
        int etype=NetException::Error;
        if(GetLastError() == WSA_IO_PENDING)
            etype=NetException::Note;

        exception[etype] << "Socket senddata failed on Socket: " << (int) _Socket
                                       << " ErrorMsg: " <<  GetLastError();
        DWORD lerror=GetLastError();
        if (lerror == WSA_IO_PENDING)
            goto SEND;
        exception[NetException::Error] << "Socket senddata failed on Socket: " << (int) _Socket
                                       << " ErrorMsg: " << lerror;
        throw exception;
    }
    return (size_t)rval;
@@ -207,26 +205,26 @@ size_t netplus::tcp::recvData(void* data, unsigned long size,int flags){
    if (flags < 0)
        flags = WSA_FLAG_OVERLAPPED;

    WSABUF buf;
    WSABUF buf{0};

    buf.buf = (char*)data;
    buf.len =        size;

    DWORD dwBytes = 0;
    DWORD dwFlags = 0;

    int recvsize=::WSARecv(_Socket, &buf, 1, &dwBytes,(LPDWORD) &flags, &_Overlapped, nullptr);
RECV:
    int recvsize=::WSARecv(_Socket, &buf, 1,nullptr,(LPDWORD) &flags, &_Overlapped, nullptr);
    
    if(recvsize<0){
        int etype=NetException::Error;
    if(recvsize==SOCKET_ERROR){
        DWORD lerror = GetLastError();
        if (lerror == WSA_IO_PENDING)
            goto RECV;

        if(GetLastError() == WSA_IO_PENDING)
            etype=NetException::Note;

        exception[etype] << "Socket recvdata failed on Socket: " << (int)_Socket
                                       << " ErrorMsg: " <<  GetLastError();
        exception[NetException::Error] << "Socket recvdata failed on Socket: " << (int)_Socket
                                       << " ErrorMsg: " << lerror;
        throw exception;
    }

    return (size_t)recvsize;
}