Loading src/posix/socket.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -105,11 +105,15 @@ void netplus::socket::setTimeout(int sec){ } void netplus::socket::copyAddrInfo(ULONG_PTR *dest, ULONG_PTR src){ memcpy((void*)*(dest), (void*)src, sizeof(struct addrinfo)); memcpy((void*)*dest, (void*)src, sizeof(struct addrinfo)); ((struct addrinfo*)*dest)->ai_addr = (struct sockaddr*)malloc(((struct addrinfo*)src)->ai_addrlen); memset(((struct addrinfo*)*dest)->ai_addr,0,((struct addrinfo*)src)->ai_addrlen); memcpy((void*)((struct addrinfo*)*dest)->ai_addr, (void*)((struct addrinfo*)src)->ai_addr, ((struct addrinfo*)*(struct addrinfo**)dest)->ai_addrlen ((struct addrinfo*)(struct addrinfo*)*dest)->ai_addrlen ); ((struct addrinfo*)*dest)->ai_addrlen = ((struct addrinfo*)src)->ai_addrlen; } Loading src/posix/tcp.cpp +9 −4 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); _Type=sockettype::TCP; } #include <iostream> netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : socket() { NetException exception; _Maxconnections=maxconnections; Loading Loading @@ -155,7 +155,7 @@ void netplus::tcp::accept(socket *csock){ socklen_t len=0; *csock=::accept(_Socket,(struct sockaddr*)((struct addrinfo *)csock->_SocketInfo)->ai_addr,&len); *csock=::accept(_Socket,((struct addrinfo *)csock->_SocketInfo)->ai_addr,&((struct addrinfo *)csock->_SocketInfo)->ai_addrlen); if(csock->_Socket<0){ int etype=NetException::Error; Loading Loading @@ -263,6 +263,11 @@ void netplus::tcp::connect(socket *ssock){ void netplus::tcp::getAddress(std::string &addr){ if(!_SocketInfo) return; char ipaddr[INET6_ADDRSTRLEN]; addr=inet_ntop(((struct addrinfo*)_SocketInfo)->ai_family,((struct addrinfo*)_SocketInfo)->ai_addr, ipaddr, ((struct addrinfo*)_SocketInfo)->ai_addrlen); char buf[512]; addr=inet_ntop(((struct addrinfo*)_SocketInfo)->ai_family, &((struct addrinfo*)_SocketInfo)->ai_addr->sa_data+sizeof(struct sockaddr_storage) ,buf, ((struct addrinfo*)_SocketInfo)->ai_addrlen ); } Loading
src/posix/socket.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -105,11 +105,15 @@ void netplus::socket::setTimeout(int sec){ } void netplus::socket::copyAddrInfo(ULONG_PTR *dest, ULONG_PTR src){ memcpy((void*)*(dest), (void*)src, sizeof(struct addrinfo)); memcpy((void*)*dest, (void*)src, sizeof(struct addrinfo)); ((struct addrinfo*)*dest)->ai_addr = (struct sockaddr*)malloc(((struct addrinfo*)src)->ai_addrlen); memset(((struct addrinfo*)*dest)->ai_addr,0,((struct addrinfo*)src)->ai_addrlen); memcpy((void*)((struct addrinfo*)*dest)->ai_addr, (void*)((struct addrinfo*)src)->ai_addr, ((struct addrinfo*)*(struct addrinfo**)dest)->ai_addrlen ((struct addrinfo*)(struct addrinfo*)*dest)->ai_addrlen ); ((struct addrinfo*)*dest)->ai_addrlen = ((struct addrinfo*)src)->ai_addrlen; } Loading
src/posix/tcp.cpp +9 −4 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); _Type=sockettype::TCP; } #include <iostream> netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : socket() { NetException exception; _Maxconnections=maxconnections; Loading Loading @@ -155,7 +155,7 @@ void netplus::tcp::accept(socket *csock){ socklen_t len=0; *csock=::accept(_Socket,(struct sockaddr*)((struct addrinfo *)csock->_SocketInfo)->ai_addr,&len); *csock=::accept(_Socket,((struct addrinfo *)csock->_SocketInfo)->ai_addr,&((struct addrinfo *)csock->_SocketInfo)->ai_addrlen); if(csock->_Socket<0){ int etype=NetException::Error; Loading Loading @@ -263,6 +263,11 @@ void netplus::tcp::connect(socket *ssock){ void netplus::tcp::getAddress(std::string &addr){ if(!_SocketInfo) return; char ipaddr[INET6_ADDRSTRLEN]; addr=inet_ntop(((struct addrinfo*)_SocketInfo)->ai_family,((struct addrinfo*)_SocketInfo)->ai_addr, ipaddr, ((struct addrinfo*)_SocketInfo)->ai_addrlen); char buf[512]; addr=inet_ntop(((struct addrinfo*)_SocketInfo)->ai_family, &((struct addrinfo*)_SocketInfo)->ai_addr->sa_data+sizeof(struct sockaddr_storage) ,buf, ((struct addrinfo*)_SocketInfo)->ai_addrlen ); }