resolver.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef MAINSERVER_H
  2. #define MAINSERVER_H
  3. #include <QObject>
  4. #include <QTcpServer>
  5. #include <QHostAddress>
  6. #include <QSharedPointer>
  7. const size_t ADDRIPV6_SIZE = 16;
  8. typedef std::array<uint8_t, ADDRIPV6_SIZE> Address;
  9. class Resolver : public QObject
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit Resolver(const QString&, quint16, QObject* parent = nullptr);
  14. void closeSocketViaDescriptor(int id);
  15. QSharedPointer<QTcpSocket> getSocketViaDescriptor(int id);
  16. private slots:
  17. void slotNewUser();
  18. void slotReadyClient();
  19. void slotClientDisconnected();
  20. private:
  21. QTcpServer* m_tcpServer;
  22. QHostAddress m_address;
  23. quint16 m_port;
  24. QMap<int, QSharedPointer<QTcpSocket>> m_sockets;
  25. void convertStrToRaw(const QString& str, Address& array);
  26. QString getBase32(const Address& rawAddr);
  27. QString decodeMeshToIP(const QString& meshname);
  28. std::string pickupStringForMeshname(std::string str);
  29. QString getAddress(const Address& rawAddr);
  30. void startPage(QSharedPointer<QTextStream>, bool);
  31. void startPageWithMessage(const QString &, QSharedPointer<QTextStream>, const QString&, bool);
  32. void processPage(const QString&, QSharedPointer<QTextStream>, bool);
  33. void toMeship(const QString&, QSharedPointer<QTextStream>, bool);
  34. void toIp(const QString&, QSharedPointer<QTextStream>, bool);
  35. void toRealResolv(const QString&, QSharedPointer<QTextStream>, bool);
  36. };
  37. #endif // MAINSERVER_H