Commit 4222a8b2 authored by jan.koester's avatar jan.koester
Browse files

test

parent 068e2c25
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ namespace netplus {
                ccon->csock=std::make_unique<ssl>( srv->_cert,-1);
            }

            _ServerSocket->accept(ccon->csock);
            _ServerSocket->accept(ccon->csock,true);

            if (!ccon || !ccon->csock) {
                // connection already closed/cleaned up
+3 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ int netplus::tcp::getMaxconnections(){
    return _Maxconnections;
}

void netplus::tcp::accept(std::unique_ptr<socket> &csock){
void netplus::tcp::accept(std::unique_ptr<socket> &csock,bool nonblock){
    NetException exception;

    copyAddrInfo(&csock->_SocketInfo,_SocketInfo,_SocketInfoLen);
@@ -170,6 +170,8 @@ void netplus::tcp::accept(std::unique_ptr<socket> &csock){
        exception[etype] << "Can't accept on Socket: " << errstr;
        throw exception;
    }
    if(nonblock)
        csock->setNonBlock();
}

void netplus::tcp::bind(){
+3 −2
Original line number Diff line number Diff line
@@ -154,7 +154,7 @@ int netplus::udp::getMaxconnections(){
    return _Maxconnections;
}

void netplus::udp::accept(std::unique_ptr<socket> &csock){
void netplus::udp::accept(std::unique_ptr<socket> &csock,bool nonblock){
    NetException exception;

    ((struct addrinfo *)(csock->_SocketInfo))->ai_addr=(struct sockaddr*) malloc(((struct addrinfo *)(_SocketInfo))->ai_addrlen);
@@ -171,7 +171,8 @@ void netplus::udp::accept(std::unique_ptr<socket> &csock){
        exception[etype] << "Can't accept on Socket: " << errstr;
        throw exception;
    }

    if(nonblock)
        csock->setNonBlock();
}

void netplus::udp::bind(){
+4 −4
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ namespace netplus {

		void                     setTimeout(int usec);

		virtual void             accept(std::unique_ptr<socket>& csock) = 0;
		virtual void             accept(std::unique_ptr<socket>& csock,bool nonblock) = 0;
#ifdef Windows 
		virtual void             accept(LPFN_ACCEPTEX lpfnAcceptEx, std::unique_ptr<socket>& csock, buffer& data) = 0;
		virtual void			 sendDataWSA(buffer& data, int flags) = 0;
@@ -213,7 +213,7 @@ namespace netplus {
		void          recvDataWSA(buffer& data, int flags);
		void          prime_read(buffer& data);
#endif
		void          accept(std::unique_ptr <socket>& csock);
		void          accept(std::unique_ptr <socket>& csock,bool nonblock);
		void          bind();
		void          listen();
		void          setNonBlock();
@@ -243,7 +243,7 @@ namespace netplus {
			int sockopts);
		~udp();

		void          accept(std::unique_ptr<socket>& csock);
		void          accept(std::unique_ptr<socket>& csock,bool nonblock);
#ifdef Windows
		void          accept(LPFN_ACCEPTEX lpfnAcceptEx, std::unique_ptr<socket>& csock, buffer& data);
		void          sendDataWSA(buffer& data, int flags);
@@ -280,7 +280,7 @@ namespace netplus {

		ssl(const netplus::x509cert& cert,const std::string& addr, int port, int maxconnections, int sockopts);

		void accept(std::unique_ptr<socket>& csock) override;
		void accept(std::unique_ptr<socket>& csock,bool nonblock) override;
		void handshake_after_accept();
		void connect(std::unique_ptr<socket>& srvsock) override;

+2 −4
Original line number Diff line number Diff line
@@ -999,12 +999,10 @@ std::vector<uint8_t> netplus::ssl::_calculateHMAC(



void netplus::ssl::accept(std::unique_ptr<socket> &csock)
void netplus::ssl::accept(std::unique_ptr<socket> &csock,bool nonblock)
{
    // 1) Accept underlying TCP connection
    tcp::accept(csock);

     csock->setTimeout(10000);
    tcp::accept(csock,nonblock);

    // If accept failed or returned invalid socket
    if (!csock || csock->fd() < 0) {
Loading