From 0f24b32b7e1cf573a72d113a74adb1ac0eaaab39 Mon Sep 17 00:00:00 2001 From: Hork Date: Fri, 10 May 2019 13:09:31 +0800 Subject: [PATCH] Override inbounds. --- src/utils.cpp | 22 ++++++++++++++++++++-- src/utils.h | 1 + src/vmess.cpp | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 8554c8d0..572fa2bc 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -11,8 +11,8 @@ QJsonObject switchJsonArrayObject(QJsonObject obj, QString value) { QJsonObject returnObj; returnObj = obj.value(value).isNull() - ? obj.value(value).toObject() - : obj.value(value).toArray().first().toObject(); + ? obj.value(value).toObject() + : obj.value(value).toArray().first().toObject(); return returnObj; } @@ -63,3 +63,21 @@ void alterMessage(QString title, QString text) { QMessageBox::critical(nullptr, title, text, QMessageBox::Ok | QMessageBox::Default, 0); } + +void overrideInbounds(QString path) +{ + QFile confFile(path); + confFile.open(QIODevice::ReadOnly); + QByteArray conf = confFile.readAll(); + confFile.close(); + QJsonDocument v2conf(QJsonDocument::fromJson(conf)); + QJsonObject rootObj = v2conf.object(); + QJsonArray modifiedIn = getInbounds(); + rootObj.remove("inbounds"); + rootObj.insert("inbounds", QJsonValue(modifiedIn)); + v2conf.setObject(rootObj); + conf = v2conf.toJson(QJsonDocument::Indented); + confFile.open(QIODevice::WriteOnly | QIODevice::Truncate); + confFile.write(conf); + confFile.close(); +} diff --git a/src/utils.h b/src/utils.h index 3bd9bedc..d23fbeda 100644 --- a/src/utils.h +++ b/src/utils.h @@ -8,5 +8,6 @@ QJsonObject loadRootObjFromConf(); QJsonArray getInbounds(); bool testCoreFiles(); void alterMessage(QString title, QString text); +void overrideInbounds(QString path); #endif // UTILS_H diff --git a/src/vmess.cpp b/src/vmess.cpp index 526a45b7..e8ee3ee7 100644 --- a/src/vmess.cpp +++ b/src/vmess.cpp @@ -45,6 +45,7 @@ void vmess::on_buttonBox_accepted() if(QFile::exists(QCoreApplication::applicationDirPath() + "/config.json.tmp")) { importConf *im = new importConf(this->parentWidget()); if (validationCheck(QCoreApplication::applicationDirPath() + "/config.json.tmp")) { + overrideInbounds(QCoreApplication::applicationDirPath() + "/config.json.tmp"); im->savefromFile("config.json.tmp", alias); } QFile::remove("config.json.tmp");