Merge pull request #998 from throneproj/dev

upstream
This commit is contained in:
parhelia512 2025-12-02 08:35:11 +08:00 committed by GitHub
commit 0b93bd8725
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,7 +42,7 @@ namespace Configs {
BuildResult uTLS::Build()
{
auto obj = ExportToJson();
if ((obj.isEmpty() || obj["enabled"].toBool() == false) && !dataStore->utlsFingerprint.isEmpty()) {
if ((obj.isEmpty() || obj["enabled"].toBool() == false || fingerPrint.isEmpty()) && !dataStore->utlsFingerprint.isEmpty()) {
obj["enabled"] = true;
obj["fingerprint"] = dataStore->utlsFingerprint;
}
@ -301,11 +301,43 @@ namespace Configs {
}
BuildResult TLS::Build()
{
auto obj = ExportToJson();
if (!obj.isEmpty() && obj["enabled"].toBool()) {
if (dataStore->skip_cert) obj["insecure"] = true;
QJsonObject object;
if (!enabled) return {};
object["enabled"] = enabled;
if (disable_sni) object["disable_sni"] = disable_sni;
if (!server_name.isEmpty()) object["server_name"] = server_name;
if (insecure) object["insecure"] = insecure;
if (!alpn.isEmpty()) {
object["alpn"] = QListStr2QJsonArray(alpn);
}
return {ExportToJson(), ""};
if (!min_version.isEmpty()) object["min_version"] = min_version;
if (!max_version.isEmpty()) object["max_version"] = max_version;
if (!cipher_suites.isEmpty()) {
object["cipher_suites"] = QListStr2QJsonArray(cipher_suites);
}
if (!curve_preferences.isEmpty()) {
object["curve_preferences"] = QListStr2QJsonArray(curve_preferences);
}
if (!certificate.isEmpty()) {
object["certificate"] = QListStr2QJsonArray(certificate);
}
if (!certificate_path.isEmpty()) object["certificate_path"] = certificate_path;
if (!certificate_public_key_sha256.isEmpty()) {
object["certificate_public_key_sha256"] = QListStr2QJsonArray(certificate_public_key_sha256);
}
if (!client_certificate.isEmpty()) object["client_certificate"] = QListStr2QJsonArray(client_certificate);
if (!client_certificate_path.isEmpty()) object["client_certificate_path"] = client_certificate_path;
if (!client_key.isEmpty()) {
object["client_key"] = QListStr2QJsonArray(client_key);
}
if (!client_key_path.isEmpty()) object["client_key_path"] = client_key_path;
if (fragment) object["fragment"] = fragment;
if (!fragment_fallback_delay.isEmpty()) object["fragment_fallback_delay"] = fragment_fallback_delay;
if (record_fragment) object["record_fragment"] = record_fragment;
if (ech->enabled) object["ech"] = ech->Build().object;
if (utls->enabled) object["utls"] = utls->Build().object;
if (reality->enabled) object["reality"] = reality->Build().object;
return {object, ""};
}
}