Commit 4125dd2e authored by jan.koester's avatar jan.koester
Browse files

optimations

parent 9e37cf66
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <unistd.h>
#include <signal.h>
#include <sys/epoll.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdint.h>
#include <mutex>
@@ -171,7 +172,7 @@ namespace netplus {
            }

            _ServerSocket->accept(ccon->csock);
            ccon->csock->setnonblocking();
            ccon->csock->setFlag(O_NONBLOCK);


            std::string ip;
@@ -406,7 +407,7 @@ EVENTLOOP:
        _Timeout=timeout;
        _ServerSocket=serversocket;
        _ServerSocket->bind();
        _ServerSocket->setnonblocking();
        _ServerSocket->setFlag(O_NONBLOCK);
        _ServerSocket->listen();
        threads=sysconf(_SC_NPROCESSORS_ONLN);
    }
+2 −2
Original line number Diff line number Diff line
@@ -66,9 +66,9 @@ netplus::socket::~socket(){
    free((void*)_SocketInfo);
}

void netplus::socket::setnonblocking(){
void netplus::socket::setFlag(int flag){
    int sockopts=fcntl(_Socket, F_GETFL, 0);
    if(fcntl( _Socket, F_SETFL,sockopts | O_NONBLOCK)<0){
    if(fcntl( _Socket, F_SETFL,sockopts | flag)<0){
        NetException exception;
        exception[NetException::Error] << "Could not set ClientSocket nonblocking!";
        throw exception;
+2 −11
Original line number Diff line number Diff line
@@ -99,8 +99,8 @@ netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) :
    }

    for (rp = result; rp != nullptr; rp = rp->ai_next) {
        _Socket = ::WSASocketW(rp->ai_family, rp->ai_socktype,
                           rp->ai_protocol,nullptr,0,sockopts);
        _Socket = ::socket(rp->ai_family, rp->ai_socktype,
                           rp->ai_protocol);
        if (_Socket == -1)
            continue;
        copyAddrInfo(&_SocketInfo,(ULONG_PTR)rp,sizeof(hints));
@@ -176,11 +176,6 @@ void netplus::tcp::bind(){
    }
}


size_t netplus::tcp::sendData(void* data, unsigned long size){
    return sendData(data,size,0);
}

size_t netplus::tcp::sendData(void* data, unsigned long size,int flags){

    NetException exception;
@@ -204,10 +199,6 @@ size_t netplus::tcp::sendData(void* data, unsigned long size,int flags){
}


size_t netplus::tcp::recvData(void* data, unsigned long size){
    return recvData(data,size,0);
}

size_t netplus::tcp::recvData(void* data, unsigned long size,int flags){
    NetException exception;

+2 −12
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ netplus::udp::udp(const char* addr, int port,int maxconnections,int sockopts) :
                           rp->ai_protocol);
        if (_Socket == -1)
            continue;
        copyAddrInfo(&_SocketInfo,(ULONG_PTR)rp);
        copyAddrInfo(&_SocketInfo,(ULONG_PTR)rp,sizeof(hints));
        break;
    }

@@ -177,11 +177,6 @@ void netplus::udp::bind(){
    }
}


size_t netplus::udp::sendData(void* data, unsigned long size){
    return sendData(data,size,0);
}

size_t netplus::udp::sendData(void* data, unsigned long size,int flags){

    NetException exception;
@@ -208,11 +203,6 @@ size_t netplus::udp::sendData(void* data, unsigned long size,int flags){
    return rval;
}


size_t netplus::udp::recvData(void* data, unsigned long size){
    return recvData(data,size,0);
}

size_t netplus::udp::recvData(void* data, unsigned long size,int flags){
    NetException exception;

@@ -241,7 +231,7 @@ size_t netplus::udp::recvData(void* data, unsigned long size,int flags){
void netplus::udp::connect(socket *ssock){
    NetException exception;

    copyAddrInfo(&_SocketInfo,ssock->_SocketInfo);
    copyAddrInfo(&_SocketInfo,ssock->_SocketInfo,ssock->_SocketInfoLen);

    if( (_Socket=::socket(((struct addrinfo*)_SocketInfo)->ai_family,SOCK_DGRAM,0) ) < 0 ){
        NetException exception;
+8 −16
Original line number Diff line number Diff line
@@ -58,10 +58,8 @@ namespace netplus {
            
            virtual int              getMaxconnections()=0;
            
            virtual size_t           sendData(void *data,unsigned long size)=0;
            virtual size_t           sendData(void* data, unsigned long size,int flags)=0;
            virtual size_t           recvData(void *data,unsigned long size)=0;
            virtual size_t           recvData(void* data, unsigned long size,int flags)=0;
            virtual size_t           sendData(void *data, unsigned long size,int flags=0)=0;
            virtual size_t           recvData(void *data, unsigned long size,int flags=0)=0;

            virtual void             connect(socket *csock)=0;

@@ -102,10 +100,8 @@ namespace netplus {

            int           getMaxconnections();
            
            size_t sendData(void *data,unsigned long size);
            size_t sendData(void *data,unsigned long size,int flags);
            size_t recvData(void *data,unsigned long size);
            size_t recvData(void *data,unsigned long size,int flags);
            size_t sendData(void *data,unsigned long size,int flags=0);
            size_t recvData(void *data,unsigned long size,int flags=0);

            virtual void connect(socket *csock);

@@ -134,10 +130,8 @@ namespace netplus {

            int           getMaxconnections();

            size_t sendData(void *data,unsigned long size);
            size_t sendData(void *data,unsigned long size,int flags);
            size_t recvData(void *data,unsigned long size);
            size_t recvData(void *data,unsigned long size,int flags);
            size_t sendData(void *data,unsigned long size,int flags=0);
            size_t recvData(void *data,unsigned long size,int flags=0);

            void connect(socket *csock);

@@ -165,12 +159,10 @@ namespace netplus {
            ssl&          operator=(int socket);
            int           getMaxconnections();
            
            size_t        sendData(void *data,unsigned long size);
            size_t        recvData(void *data,unsigned long size);
            size_t        sendData(void *data,unsigned long size,int flags=0);
            size_t        recvData(void *data,unsigned long size,int flags=0);
            
            void connect(socket *csock);

            void setnonblocking();
            void getAddress(std::string &addr);

        private:
Loading