Files
netch/Netch/Servers/VLESS/VLESSForm.cs
2022-06-10 15:35:46 +08:00

46 lines
2.0 KiB
C#

using Netch.Forms;
namespace Netch.Servers;
[Fody.ConfigureAwait(true)]
internal class VLESSForm : ServerForm
{
public VLESSForm(VLESSServer? server = default)
{
server ??= new VLESSServer();
Server = server;
CreateTextBox("Sni", "ServerName(Sni)", s => true, s => server.ServerName = s, server.ServerName);
CreateTextBox("UUID", "UUID", s => true, s => server.UserID = s, server.UserID);
CreateTextBox("EncryptMethod",
"Encrypt Method",
s => true,
s => server.EncryptMethod = !string.IsNullOrWhiteSpace(s) ? s : "none",
server.EncryptMethod);
CreateComboBox("TransferProtocol",
"Transfer Protocol",
VLESSGlobal.TransferProtocols,
s => server.TransferProtocol = s,
server.TransferProtocol);
CreateComboBox("PacketEncoding",
"Packet Encoding",
VMessGlobal.PacketEncodings,
s => server.PacketEncoding = s,
server.PacketEncoding);
CreateComboBox("FakeType", "Fake Type", VLESSGlobal.FakeTypes, s => server.FakeType = s, server.FakeType);
CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host);
CreateTextBox("Path", "Path", s => true, s => server.Path = s, server.Path);
CreateComboBox("QUICSecurity", "QUIC Security", VLESSGlobal.QUIC, s => server.QUICSecure = s, server.QUICSecure);
CreateTextBox("QUICSecret", "QUIC Secret", s => true, s => server.QUICSecret = s, server.QUICSecret);
CreateComboBox("UseMux",
"Use Mux",
new List<string> { "", "true", "false" },
s => server.UseMux = s switch { "" => null, "true" => true, "false" => false, _ => null },
server.UseMux?.ToString().ToLower() ?? "");
CreateComboBox("TLSSecure", "TLS Secure", VLESSGlobal.TLSSecure, s => server.TLSSecureType = s, server.TLSSecureType);
}
protected override string TypeName { get; } = "VLESS";
}