From 127adad17730b8a86ef1f055a282a8f6b17e893f Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Tue, 13 Dec 2022 18:30:26 +0900 Subject: [PATCH] clash format trojan ws grpc --- sub/GroupUpdater.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sub/GroupUpdater.cpp b/sub/GroupUpdater.cpp index 106d17c..d618b30 100644 --- a/sub/GroupUpdater.cpp +++ b/sub/GroupUpdater.cpp @@ -267,6 +267,23 @@ namespace NekoRay::sub { bean->stream->network = Node2QString(proxy["network"], "tcp"); bean->stream->sni = FIRST_OR_SECOND(Node2QString(proxy["sni"]), Node2QString(proxy["servername"])); if (Node2Bool(proxy["skip-cert-verify"])) bean->stream->allow_insecure = true; + + // opts + auto ws = NodeChild(proxy, {"ws-opts", "ws-opt"}); + if (ws.IsMap()) { + auto headers = ws["headers"]; + for (auto header: headers) { + if (Node2QString(header.first).toLower() == "host") { + bean->stream->host = Node2QString(header.second); + } + } + bean->stream->path = Node2QString(ws["path"]); + } + + auto grpc = NodeChild(proxy, {"grpc-opts", "grpc-opt"}); + if (grpc.IsMap()) { + bean->stream->path = Node2QString(grpc["grpc-service-name"]); + } } else if (type == "vmess") { needFix = true; auto bean = ent->VMessBean(); @@ -278,6 +295,7 @@ namespace NekoRay::sub { if (Node2Bool(proxy["tls"])) bean->stream->security = "tls"; if (Node2Bool(proxy["skip-cert-verify"])) bean->stream->allow_insecure = true; + // opts auto ws = NodeChild(proxy, {"ws-opts", "ws-opt"}); if (ws.IsMap()) { auto headers = ws["headers"];