diff --git a/DeviceActivate/NetraLib/src/Netra.cpp b/DeviceActivate/NetraLib/src/Netra.cpp index a67282c..61b9beb 100644 --- a/DeviceActivate/NetraLib/src/Netra.cpp +++ b/DeviceActivate/NetraLib/src/Netra.cpp @@ -473,7 +473,7 @@ namespace QCL ReadFile::~ReadFile() { - std::lock_guard lock(mtx_); + // std::lock_guard lock(mtx_); Close(); } diff --git a/DeviceActivate/bin/init b/DeviceActivate/bin/init index f5008a3..a8d35ec 100755 Binary files a/DeviceActivate/bin/init and b/DeviceActivate/bin/init differ diff --git a/DeviceActivate/src/main.cpp b/DeviceActivate/src/main.cpp index 197eeb3..59e3cee 100644 --- a/DeviceActivate/src/main.cpp +++ b/DeviceActivate/src/main.cpp @@ -70,14 +70,14 @@ bool checkUUID() bool flag = false; // 读取文件 - ReadFile *rf = new ReadFile(envPath); - if (rf->Open() == false) + ReadFile rf(envPath); + if (rf.Open() == false) { cerr << "文件打开失败" << endl; } // 读取文本每一行 - auto lines = rf->ReadLines(); + auto lines = rf.ReadLines(); for (auto &ii : lines) { if (ii.find("ServerPwd:null") != string::npos) @@ -88,6 +88,8 @@ bool checkUUID() else flag = true; } + + rf.Close(); return flag; } @@ -107,8 +109,33 @@ void messageCallback(mqtt::const_message_ptr msg) { // 接受UUID,保存至配置文件中,退出程序,调用设备验证程序 auto res = nlohmann::json::parse(buffer); // 准备解析接受到的秘钥 - auto pwd = res["Data"]; + auto pwd = res["Data"]; cout << pwd << endl; + // 写入文件 + ReadFile rf(envPath); + + auto lines = rf.ReadLines(); + + for (auto &ii : lines) + { + if (ii.find("ServerPwd:null") != string::npos) + ii = format("ServerPwd:{}", pwd); + } + rf.Close(); + + thread([lines]() + { + WriteFile wf(envPath); + string out; + out.resize(1024); + for (size_t i = 0; i < lines.size(); ++i) + { + out += lines[i]; + if (i + 1 < lines.size()) + out += "\n"; + } + wf.overwriteText(out); }) + .detach(); } }