Loading src/linux/event.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ namespace netplus { NetException exception; _ServerSocket->setnonblocking(); _ServerSocket->listen(); _ServerSocket->bind(); struct poll_event setevent = (struct poll_event){ 0 Loading src/linux/socket.cpp +63 −37 Original line number Diff line number Diff line Loading @@ -72,14 +72,15 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket if(sockopts == -1) sockopts=SO_REUSEADDR; _Maxconnections=maxconnections; struct sockaddr_un usock{0}; usock.sun_family = AF_UNIX; _SocketPtr = new struct sockaddr_un; memset(_SocketPtr,0,sizeof(struct sockaddr_un)); ((struct sockaddr_un *)_SocketPtr)->sun_family = AF_UNIX; if(!uxsocket){ exception[NetException::Critical] << "Can't copy Server UnixSocket"; throw exception; } _UxPath=uxsocket; memcpy(usock.sun_path,uxsocket,strlen(uxsocket)+1); memcpy(((struct sockaddr_un *)_SocketPtr)->sun_path,uxsocket,strlen(uxsocket)+1); if ((_Socket=::socket(AF_UNIX,SOCK_STREAM, IPPROTO_TCP)) < 0){ exception[NetException::Critical] << "Can't create Socket UnixSocket"; Loading @@ -87,11 +88,6 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket } setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); if (::bind(_Socket,((const struct sockaddr *)&usock), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : socket() { Loading @@ -102,18 +98,16 @@ netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading @@ -125,7 +119,11 @@ netplus::tcp::~tcp(){ ::close(_Socket); if(!_UxPath.empty()){ unlink(_UxPath.c_str()); delete (struct sockaddr_un*)_SocketPtr; }else{ delete (struct sockaddr_in*)_SocketPtr; } } netplus::tcp::tcp() : socket(){ Loading Loading @@ -157,6 +155,15 @@ netplus::socket *netplus::tcp::accept(){ return csock; } void netplus::tcp::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } unsigned int netplus::tcp::sendData(socket* socket, void* data, unsigned long size){ return sendData(socket,data,size,0); } Loading Loading @@ -207,6 +214,14 @@ unsigned int netplus::tcp::recvData(socket* socket, void* data, unsigned long si return recvsize; } void netplus::tcp::connect(const char* addr, int port){ inet_pton(AF_INET, "127.0.0.1", (struct sockaddr *)_SocketPtr); } void netplus::tcp::connect(const char* path){ } void netplus::tcp::getAddress(std::string &addr){ char ipaddr[512]; struct sockaddr_in sockaddr; Loading @@ -223,14 +238,16 @@ netplus::udp::udp(const char* uxsocket,int maxconnections,int sockopts) : socket if(sockopts == -1) sockopts=SO_REUSEADDR; _Maxconnections=maxconnections; struct sockaddr_un usock{0}; usock.sun_family = AF_UNIX; _SocketPtr = new struct sockaddr_un; memset(_SocketPtr,0,sizeof(struct sockaddr_un)); ((struct sockaddr_un *)_SocketPtr)->sun_family = AF_UNIX; if(!uxsocket){ exception[NetException::Critical] << "Can't copy Server UnixSocket"; throw exception; } _UxPath=uxsocket; memcpy(usock.sun_path,uxsocket,strlen(uxsocket)+1); memcpy(((struct sockaddr_un *)_SocketPtr)->sun_path,uxsocket,strlen(uxsocket)+1); if ((_Socket=::socket(AF_UNIX,SOCK_STREAM, IPPROTO_UDP)) < 0){ exception[NetException::Critical] << "Can't create Socket UnixSocket"; Loading @@ -239,10 +256,6 @@ netplus::udp::udp(const char* uxsocket,int maxconnections,int sockopts) : socket setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); if (::bind(_Socket,((const struct sockaddr *)&usock), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } netplus::udp::udp(const char* addr, int port,int maxconnections,int sockopts) : socket() { Loading @@ -253,18 +266,16 @@ netplus::udp::udp(const char* addr, int port,int maxconnections,int sockopts) : _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_UDP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading Loading @@ -308,6 +319,15 @@ netplus::socket *netplus::udp::accept(){ return csock; } void netplus::udp::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } unsigned int netplus::udp::sendData(socket* socket, void* data, unsigned long size){ return sendData(socket,data,size,0); } Loading Loading @@ -377,18 +397,16 @@ netplus::ssl::ssl(const char *addr,int port,int maxconnections,int sockopts,cons _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading Loading @@ -421,6 +439,14 @@ netplus::socket *netplus::ssl::accept(){ return csock; } void netplus::ssl::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } void netplus::ssl::listen(){ NetException httpexception; if(::listen(_Socket,_Maxconnections) < 0){ Loading src/socket.h +16 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ namespace netplus { virtual socket *accept()=0; virtual void bind()=0; virtual void listen()=0; virtual int getMaxconnections()=0; Loading @@ -51,6 +52,9 @@ namespace netplus { virtual unsigned int recvData(socket *socket,void *data,unsigned long size)=0; virtual unsigned int recvData(socket *socket,void *data,unsigned long size,int flags)=0; virtual void connect(const char *addr,int port)=0; virtual void connect(const char *path)=0; virtual void getAddress(std::string &addr)=0; int _Socket; Loading @@ -67,6 +71,7 @@ namespace netplus { ~tcp(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -76,6 +81,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading @@ -93,6 +101,7 @@ namespace netplus { ~udp(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -102,6 +111,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading @@ -117,6 +129,7 @@ namespace netplus { ~ssl(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -126,6 +139,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading Loading
src/linux/event.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ namespace netplus { NetException exception; _ServerSocket->setnonblocking(); _ServerSocket->listen(); _ServerSocket->bind(); struct poll_event setevent = (struct poll_event){ 0 Loading
src/linux/socket.cpp +63 −37 Original line number Diff line number Diff line Loading @@ -72,14 +72,15 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket if(sockopts == -1) sockopts=SO_REUSEADDR; _Maxconnections=maxconnections; struct sockaddr_un usock{0}; usock.sun_family = AF_UNIX; _SocketPtr = new struct sockaddr_un; memset(_SocketPtr,0,sizeof(struct sockaddr_un)); ((struct sockaddr_un *)_SocketPtr)->sun_family = AF_UNIX; if(!uxsocket){ exception[NetException::Critical] << "Can't copy Server UnixSocket"; throw exception; } _UxPath=uxsocket; memcpy(usock.sun_path,uxsocket,strlen(uxsocket)+1); memcpy(((struct sockaddr_un *)_SocketPtr)->sun_path,uxsocket,strlen(uxsocket)+1); if ((_Socket=::socket(AF_UNIX,SOCK_STREAM, IPPROTO_TCP)) < 0){ exception[NetException::Critical] << "Can't create Socket UnixSocket"; Loading @@ -87,11 +88,6 @@ netplus::tcp::tcp(const char* uxsocket,int maxconnections,int sockopts) : socket } setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); if (::bind(_Socket,((const struct sockaddr *)&usock), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : socket() { Loading @@ -102,18 +98,16 @@ netplus::tcp::tcp(const char* addr, int port,int maxconnections,int sockopts) : _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading @@ -125,7 +119,11 @@ netplus::tcp::~tcp(){ ::close(_Socket); if(!_UxPath.empty()){ unlink(_UxPath.c_str()); delete (struct sockaddr_un*)_SocketPtr; }else{ delete (struct sockaddr_in*)_SocketPtr; } } netplus::tcp::tcp() : socket(){ Loading Loading @@ -157,6 +155,15 @@ netplus::socket *netplus::tcp::accept(){ return csock; } void netplus::tcp::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } unsigned int netplus::tcp::sendData(socket* socket, void* data, unsigned long size){ return sendData(socket,data,size,0); } Loading Loading @@ -207,6 +214,14 @@ unsigned int netplus::tcp::recvData(socket* socket, void* data, unsigned long si return recvsize; } void netplus::tcp::connect(const char* addr, int port){ inet_pton(AF_INET, "127.0.0.1", (struct sockaddr *)_SocketPtr); } void netplus::tcp::connect(const char* path){ } void netplus::tcp::getAddress(std::string &addr){ char ipaddr[512]; struct sockaddr_in sockaddr; Loading @@ -223,14 +238,16 @@ netplus::udp::udp(const char* uxsocket,int maxconnections,int sockopts) : socket if(sockopts == -1) sockopts=SO_REUSEADDR; _Maxconnections=maxconnections; struct sockaddr_un usock{0}; usock.sun_family = AF_UNIX; _SocketPtr = new struct sockaddr_un; memset(_SocketPtr,0,sizeof(struct sockaddr_un)); ((struct sockaddr_un *)_SocketPtr)->sun_family = AF_UNIX; if(!uxsocket){ exception[NetException::Critical] << "Can't copy Server UnixSocket"; throw exception; } _UxPath=uxsocket; memcpy(usock.sun_path,uxsocket,strlen(uxsocket)+1); memcpy(((struct sockaddr_un *)_SocketPtr)->sun_path,uxsocket,strlen(uxsocket)+1); if ((_Socket=::socket(AF_UNIX,SOCK_STREAM, IPPROTO_UDP)) < 0){ exception[NetException::Critical] << "Can't create Socket UnixSocket"; Loading @@ -239,10 +256,6 @@ netplus::udp::udp(const char* uxsocket,int maxconnections,int sockopts) : socket setsockopt(_Socket,SOL_SOCKET,sockopts,&optval, sizeof(optval)); if (::bind(_Socket,((const struct sockaddr *)&usock), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } netplus::udp::udp(const char* addr, int port,int maxconnections,int sockopts) : socket() { Loading @@ -253,18 +266,16 @@ netplus::udp::udp(const char* addr, int port,int maxconnections,int sockopts) : _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_UDP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading Loading @@ -308,6 +319,15 @@ netplus::socket *netplus::udp::accept(){ return csock; } void netplus::udp::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } unsigned int netplus::udp::sendData(socket* socket, void* data, unsigned long size){ return sendData(socket,data,size,0); } Loading Loading @@ -377,18 +397,16 @@ netplus::ssl::ssl(const char *addr,int port,int maxconnections,int sockopts,cons _Socket = ::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in address; memset(&address, 0, sizeof(address)); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(port); _SocketPtr = new struct sockaddr_in; memset(_SocketPtr, 0, sizeof(struct sockaddr_in)); ((struct sockaddr_in*)_SocketPtr)->sin_family = AF_INET; ((struct sockaddr_in*)_SocketPtr)->sin_addr.s_addr = INADDR_ANY; ((struct sockaddr_in*)_SocketPtr)->sin_port = htons(port); int optval = 1; setsockopt(_Socket, SOL_SOCKET, sockopts,&optval,sizeof(optval)); ::bind(_Socket,((const struct sockaddr *)&address),sizeof(address)); if(_Socket <0){ exception[NetException::Critical] << "Could not bind serversocket"; throw exception; Loading Loading @@ -421,6 +439,14 @@ netplus::socket *netplus::ssl::accept(){ return csock; } void netplus::ssl::bind(){ NetException exception; if (::bind(_Socket,((const struct sockaddr *)_SocketPtr), sizeof(struct sockaddr_un)) < 0){ exception[NetException::Error] << "Can't bind Server UnixSocket"; throw exception; } } void netplus::ssl::listen(){ NetException httpexception; if(::listen(_Socket,_Maxconnections) < 0){ Loading
src/socket.h +16 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ namespace netplus { virtual socket *accept()=0; virtual void bind()=0; virtual void listen()=0; virtual int getMaxconnections()=0; Loading @@ -51,6 +52,9 @@ namespace netplus { virtual unsigned int recvData(socket *socket,void *data,unsigned long size)=0; virtual unsigned int recvData(socket *socket,void *data,unsigned long size,int flags)=0; virtual void connect(const char *addr,int port)=0; virtual void connect(const char *path)=0; virtual void getAddress(std::string &addr)=0; int _Socket; Loading @@ -67,6 +71,7 @@ namespace netplus { ~tcp(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -76,6 +81,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading @@ -93,6 +101,7 @@ namespace netplus { ~udp(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -102,6 +111,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading @@ -117,6 +129,7 @@ namespace netplus { ~ssl(); socket *accept(); void bind(); void listen(); int getMaxconnections(); Loading @@ -126,6 +139,9 @@ namespace netplus { unsigned int recvData(socket *socket,void *data,unsigned long size); unsigned int recvData(socket *socket,void *data,unsigned long size,int flags); void connect(const char *addr,int port); void connect(const char *path); void getAddress(std::string &addr); private: Loading