resolver.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. void disableAPI();
  17. void disableWebPage();
  18. void disableResolv();
  19. private slots:
  20. void slotNewUser();
  21. void slotReadyClient();
  22. void slotClientDisconnected();
  23. private:
  24. QTcpServer* m_tcpServer;
  25. QHostAddress m_address;
  26. quint16 m_port;
  27. QMap<int, QSharedPointer<QTcpSocket>> m_sockets;
  28. void convertStrToRaw(const QString& str, Address& array);
  29. QString getBase32(const Address& rawAddr);
  30. QString decodeMeshToIP(const QString& meshname);
  31. std::string pickupStringForMeshname(std::string str);
  32. QString getAddress(const Address& rawAddr);
  33. void startPage(QSharedPointer<QTextStream>, bool);
  34. void startPageWithMessage(const QString &, QSharedPointer<QTextStream>, const QString&, bool);
  35. void processPage(const QString&, QSharedPointer<QTextStream>, bool);
  36. void toMeship(const QString&, QSharedPointer<QTextStream>, bool);
  37. void toIp(const QString&, QSharedPointer<QTextStream>, bool);
  38. void toRealResolv(const QString&, QSharedPointer<QTextStream>, bool);
  39. void toVersion(const QString&, QSharedPointer<QTextStream>, bool);
  40. bool m_NoApi;
  41. bool m_NoHttp;
  42. bool m_NoResolve;
  43. };
  44. #endif // MAINSERVER_H