File indexing completed on 2024-05-12 04:58:53

0001 /**
0002  * SPDX-FileCopyrightText: 2015 Vineet Garg <grg.vineet@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #include "server.h"
0008 
0009 #include "kdeconnectconfig.h"
0010 #include "lanlinkprovider.h"
0011 
0012 #include <QSslError>
0013 #include <QSslKey>
0014 #include <QSslSocket>
0015 
0016 Server::Server(QObject *parent)
0017     : QTcpServer(parent)
0018 {
0019     connect(this, &QTcpServer::acceptError, this, &Server::errorFound);
0020 }
0021 
0022 void Server::incomingConnection(qintptr socketDescriptor)
0023 {
0024     QSslSocket *serverSocket = new QSslSocket(parent());
0025     if (serverSocket->setSocketDescriptor(socketDescriptor)) {
0026         QObject::connect(this, &Server::closed, serverSocket, &QSslSocket::abort);
0027         addPendingConnection(serverSocket);
0028     } else {
0029         qWarning() << "setSocketDescriptor failed" << serverSocket->errorString();
0030         delete serverSocket;
0031     }
0032 }
0033 
0034 QSslSocket *Server::nextPendingConnection()
0035 {
0036     return qobject_cast<QSslSocket *>(QTcpServer::nextPendingConnection());
0037 }
0038 
0039 void Server::errorFound(QAbstractSocket::SocketError socketError)
0040 {
0041     qDebug() << "error:" << socketError;
0042 }
0043 
0044 void Server::close()
0045 {
0046     QTcpServer::close();
0047     Q_EMIT closed();
0048 }
0049 
0050 #include "moc_server.cpp"