alpn settings

This commit is contained in:
arm64v8a
2022-08-13 13:53:16 +08:00
parent fd849f781b
commit 6931b4c8e1
9 changed files with 76 additions and 40 deletions

View File

@@ -17,30 +17,34 @@ namespace NekoRay::fmt {
if (network == "ws") {
QJsonObject ws;
if (!path.isEmpty()) ws["path"] = path;
if (!host.isEmpty()) ws["headers"] = QJsonObject{{"Host", host}};
if (!path.trimmed().isEmpty()) ws["path"] = path;
if (!host.trimmed().isEmpty()) ws["headers"] = QJsonObject{{"Host", host}};
streamSettings["wsSettings"] = ws;
} else if (network == "h2") {
QJsonObject h2;
if (!path.isEmpty()) h2["path"] = path;
if (!host.isEmpty()) h2["host"] = QList2QJsonArray(host.split(","));
if (!path.trimmed().isEmpty()) h2["path"] = path;
if (!host.trimmed().isEmpty()) h2["host"] = QList2QJsonArray(host.split(","));
streamSettings["httpSettings"] = h2;
} else if (network == "grpc") {
QJsonObject grpc;
if (!path.isEmpty()) grpc["serviceName"] = path;
if (!path.trimmed().isEmpty()) grpc["serviceName"] = path;
streamSettings["grpcSettings"] = grpc;
}
if (security == "tls") {
QJsonObject tls;
if (!sni.isEmpty()) tls["serverName"] = sni;
if (allow_insecure || dataStore->skip_cert) tls["allowInsecure"] = true;
if (!certificate.isEmpty())
if (!sni.trimmed().isEmpty()) tls["serverName"] = sni;
if (!certificate.trimmed().isEmpty()) {
tls["certificates"] = QJsonArray{
QJsonObject{
{"certificate", certificate},
},
};
}
if (!alpn.trimmed().isEmpty()) {
tls["alpn"] = QList2QJsonArray(alpn.split(","));
}
streamSettings["tlsSettings"] = tls;
}
@@ -94,7 +98,7 @@ namespace NekoRay::fmt {
servers.push_back(server);
settings["servers"] = servers;
if (!plugin.isEmpty()) {
if (!plugin.trimmed().isEmpty()) {
settings["plugin"] = SubStrBefore(plugin, ";");
settings["pluginOpts"] = SubStrAfter(plugin, ";");
}