#pragma once #include #include #include #include #include "ApResolve.h" #include "AuthChallenges.h" #include "ConstantParameters.h" #include "Logger.h" #include "LoginBlob.h" #include "Packet.h" #include "PlainConnection.h" #include "ShannonConnection.h" #include "Utils.h" #include "protobuf/mercury.pb.h" #define LOGIN_REQUEST_COMMAND 0xAB #define AUTH_SUCCESSFUL_COMMAND 0xAC #define AUTH_DECLINED_COMMAND 0xAD namespace cspot { class Session { protected: std::unique_ptr challenges; std::shared_ptr conn; std::shared_ptr authBlob; std::string deviceId = "142137fd329622137a14901634264e6f332e2411"; public: Session(); ~Session(); std::shared_ptr shanConn; void connect(std::unique_ptr connection); void connectWithRandomAp(); void close(); virtual bool triggerTimeout() = 0; std::vector authenticate(std::shared_ptr blob); }; } // namespace cspot