PosixSslServerSocket::PosixSslServerSocket( const unsigned int port, SSL_CTX * sslContext ) : ServerSocket(port) { initialize(); setFileDescriptor(-1); setSslContext(sslContext); }
void PosixSslServerSocket::stopListening( void ) { if( isBound() ) { close(mFileDescriptor); setFileDescriptor(-1); SSL_CTX_free(mSslContext); mSslContext = nullptr; } }
PosixSslServerSocket::PosixSslServerSocket( const unsigned int port, const std::string & certificatFile, const std::string & keyFile ) : ServerSocket(port) { initialize(); setFileDescriptor(-1); loadCertificates(certificatFile,keyFile); }
bool PosixSslServerSocket::bindToPort( void ) { struct addrinfo hints; struct addrinfo * serverInfo; std::string portString; bool bound; int fd; if( isBound() ) { bound = true; } else { bound = false; memset(&hints,0,sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; portString = std::to_string(getPort()); if( getaddrinfo(nullptr,portString.c_str(),&hints,&serverInfo) == 0 ) { fd = socket(serverInfo->ai_family,serverInfo->ai_socktype, serverInfo->ai_protocol); if( fd >= 0 ) { int yes = 1; setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof yes); if( bind(fd,serverInfo->ai_addr,serverInfo->ai_addrlen) == 0 && listen(fd,256) == 0 ) { bound = true; FD_ZERO(&mRfds); FD_SET(fd,&mRfds); setFileDescriptor(fd); } } freeaddrinfo(serverInfo); } } return ( bound ); }
/*! Constructs a QDBusUnixFileDescriptor object by copying the \a fileDescriptor parameter. The original file descriptor is not touched and must be closed by the user. Note that the value returned by fileDescriptor() will be different from the \a fileDescriptor parameter passed. If the \a fileDescriptor parameter is not valid, isValid() will return false and fileDescriptor() will return -1. \sa setFileDescriptor(), fileDescriptor() */ QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(int fileDescriptor) : d(0) { if (fileDescriptor != -1) setFileDescriptor(fileDescriptor); }
void PosixTcpServerSocket::stopListening( void ) { if( isBound() ) { close(mFileDescriptor); setFileDescriptor(-1); } }
PosixTcpServerSocket::PosixTcpServerSocket( const unsigned int port ) : ServerSocket(port) { setFileDescriptor(-1); }