//#include "LicenseCheck.h" //#include //#include // //#include //#include ////#include ////#include //#include //#include //#include //#include //#include // // //namespace zilliz { //namespace milvus { //namespace server { // //LicenseCheck::LicenseCheck() { // //} // //LicenseCheck::~LicenseCheck() { // StopCountingDown(); //} // //ServerError //LicenseCheck::LegalityCheck(const std::string &license_file_path) { // // int device_count; // LicenseLibrary::GetDeviceCount(device_count); // std::vector uuid_array; // LicenseLibrary::GetUUID(device_count, uuid_array); // // std::vector sha_array; // LicenseLibrary::GetUUIDSHA256(device_count, uuid_array, sha_array); // // int output_device_count; // std::map uuid_encryption_map; // time_t starting_time; // time_t end_time; // ServerError err = LicenseLibrary::LicenseFileDeserialization(license_file_path, // output_device_count, // uuid_encryption_map, // starting_time, // end_time); // if(err !=SERVER_SUCCESS) // { // std::cout << "License check error: 01" << std::endl; // return SERVER_UNEXPECTED_ERROR; // } // time_t system_time; // LicenseLibrary::GetSystemTime(system_time); // // if (device_count != output_device_count) { // std::cout << "License check error: 02" << std::endl; // return SERVER_UNEXPECTED_ERROR; // } // for (int i = 0; i < device_count; ++i) { // if (sha_array[i] != uuid_encryption_map[i]) { // std::cout << "License check error: 03" << std::endl; // return SERVER_UNEXPECTED_ERROR; // } // } // if (system_time < starting_time || system_time > end_time) { // std::cout << "License check error: 04" << std::endl; // return SERVER_UNEXPECTED_ERROR; // } // std::cout << "Legality Check Success" << std::endl; // return SERVER_SUCCESS; //} // //// Part 2: Timing check license // //ServerError //LicenseCheck::AlterFile(const std::string &license_file_path, // const boost::system::error_code &ec, // boost::asio::deadline_timer *pt) { // // ServerError err = LicenseCheck::LegalityCheck(license_file_path); // if(err!=SERVER_SUCCESS) { // std::cout << "license file check error" << std::endl; // exit(1); // } // // std::cout << "---runing---" << std::endl; // pt->expires_at(pt->expires_at() + boost::posix_time::hours(1)); // pt->async_wait(boost::bind(LicenseCheck::AlterFile, license_file_path, boost::asio::placeholders::error, pt)); // // return SERVER_SUCCESS; // //} // //ServerError //LicenseCheck::StartCountingDown(const std::string &license_file_path) { // // if (!LicenseLibrary::IsFileExistent(license_file_path)) { // std::cout << "license file not exist" << std::endl; // exit(1); // } // // //create a thread to run AlterFile // if(counting_thread_ == nullptr) { // counting_thread_ = std::make_shared([&]() { // boost::asio::deadline_timer t(io_service_, boost::posix_time::hours(1)); // t.async_wait(boost::bind(LicenseCheck::AlterFile, license_file_path, boost::asio::placeholders::error, &t)); // io_service_.run();//this thread will block here // }); // } // // return SERVER_SUCCESS; //} // //ServerError //LicenseCheck::StopCountingDown() { // if(!io_service_.stopped()) { // io_service_.stop(); // } // // if(counting_thread_ != nullptr) { // counting_thread_->join(); // counting_thread_ = nullptr; // } // // return SERVER_SUCCESS; //} // //} //} //}