diff --git a/src/configs/sub/GroupUpdater.cpp b/src/configs/sub/GroupUpdater.cpp index a443435..e875ece 100644 --- a/src/configs/sub/GroupUpdater.cpp +++ b/src/configs/sub/GroupUpdater.cpp @@ -469,8 +469,22 @@ namespace Subscription { auto bean = ent->SocksHTTPBean(); bean->username = Node2QString(proxy["username"]); bean->password = Node2QString(proxy["password"]); - if (Node2Bool(proxy["tls"])) bean->stream->security = "tls"; - if (Node2Bool(proxy["skip-cert-verify"])) bean->stream->allow_insecure = true; + if (type == "http") { + if (Node2Bool(proxy["tls"])) bean->stream->security = "tls"; + if (Node2Bool(proxy["skip-cert-verify"])) bean->stream->allow_insecure = true; + bean->stream->sni = FIRST_OR_SECOND(Node2QString(proxy["sni"]), Node2QString(proxy["servername"])); + bean->stream->alpn = Node2QStringList(proxy["alpn"]).join(","); + bean->stream->utlsFingerprint = Node2QString(proxy["client-fingerprint"]); + if (bean->stream->utlsFingerprint.isEmpty()) { + bean->stream->utlsFingerprint = Configs::dataStore->utlsFingerprint; + } + + auto reality = NodeChild(proxy, {"reality-opts"}); + if (reality.is_mapping()) { + bean->stream->reality_pbk = Node2QString(reality["public-key"]); + bean->stream->reality_sid = Node2QString(reality["short-id"]); + } + } } else if (type == "trojan" || type == "vless") { needFix = true; auto bean = ent->TrojanVLESSBean();