Session.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <algorithm>
  3. #include <functional>
  4. #include <memory>
  5. #include <vector>
  6. #include "ApResolve.h"
  7. #include "AuthChallenges.h"
  8. #include "ConstantParameters.h"
  9. #include "Logger.h"
  10. #include "LoginBlob.h"
  11. #include "Packet.h"
  12. #include "PlainConnection.h"
  13. #include "ShannonConnection.h"
  14. #include "Utils.h"
  15. #include "protobuf/mercury.pb.h"
  16. #define LOGIN_REQUEST_COMMAND 0xAB
  17. #define AUTH_SUCCESSFUL_COMMAND 0xAC
  18. #define AUTH_DECLINED_COMMAND 0xAD
  19. namespace cspot {
  20. class Session {
  21. protected:
  22. std::unique_ptr<cspot::AuthChallenges> challenges;
  23. std::shared_ptr<cspot::PlainConnection> conn;
  24. std::shared_ptr<LoginBlob> authBlob;
  25. std::string deviceId = "142137fd329622137a14901634264e6f332e2411";
  26. public:
  27. Session();
  28. ~Session();
  29. std::shared_ptr<cspot::ShannonConnection> shanConn;
  30. void connect(std::unique_ptr<cspot::PlainConnection> connection);
  31. void connectWithRandomAp();
  32. void close();
  33. virtual bool triggerTimeout() = 0;
  34. std::vector<uint8_t> authenticate(std::shared_ptr<LoginBlob> blob);
  35. };
  36. } // namespace cspot