private static string BuildArguments(Server server, string localaddr, string remoteaddr) { if (string.IsNullOrEmpty(localaddr)) { localaddr = server.localaddr; } if (string.IsNullOrEmpty(remoteaddr)) { remoteaddr = server.remoteaddr; } StringBuilder arguments = new StringBuilder(); if (server.mode == kcptun_mode.manual_all) { arguments.Append($" -l \"{localaddr}\""); arguments.Append($" -r \"{remoteaddr}\""); arguments.Append($" {server.extend_arguments}"); } else { MyEnumConverter cryptConverter = new MyEnumConverter(typeof(kcptun_crypt)); MyEnumConverter modeConverter = new MyEnumConverter(typeof(kcptun_mode)); arguments.Append($" -l \"{localaddr}\""); arguments.Append($" -r \"{remoteaddr}\""); arguments.Append($" --crypt {cryptConverter.ConvertToString(server.crypt)}"); if (server.crypt != kcptun_crypt.none) { arguments.Append($" --key \"{server.key}\""); } arguments.Append($" --mode {modeConverter.ConvertToString(server.mode)}"); arguments.Append($" --conn {server.conn}"); arguments.Append($" --mtu {server.mtu}"); arguments.Append($" --sndwnd {server.sndwnd}"); arguments.Append($" --rcvwnd {server.rcvwnd}"); if (server.nocomp) { arguments.Append($" --nocomp"); } arguments.Append($" --datashard {server.datashard}"); arguments.Append($" --parityshard {server.parityshard}"); arguments.Append($" --dscp {server.dscp}"); if (server.mode == kcptun_mode.manual) { arguments.Append($" --nodelay {server.nodelay}"); arguments.Append($" --resend {server.resend}"); arguments.Append($" --nc {server.nc}"); arguments.Append($" --interval {server.interval}"); } else { /*do nothing*/ } if (!string.IsNullOrEmpty(server.extend_arguments)) { arguments.Append($" {server.extend_arguments}"); } } return(arguments.ToString().Trim()); }
private static string BuildArguments(SNMPConfiguration snmp, Server server, string localaddr, string remoteaddr) { if (string.IsNullOrEmpty(localaddr)) { localaddr = server.localaddr; } if (string.IsNullOrEmpty(remoteaddr)) { remoteaddr = server.remoteaddr; } StringBuilder arguments = new StringBuilder(); if (server.mode == kcptun_mode.manual_all) { arguments.Append($" --localaddr \"{localaddr}\""); arguments.Append($" --remoteaddr \"{remoteaddr}\""); arguments.Append($" {server.extend_arguments}"); } else { MyEnumConverter cryptConverter = new MyEnumConverter(typeof(kcptun_crypt)); MyEnumConverter modeConverter = new MyEnumConverter(typeof(kcptun_mode)); arguments.Append($" --localaddr \"{localaddr}\""); arguments.Append($" --remoteaddr \"{remoteaddr}\""); if (server.conn >= 0) { arguments.Append($" --conn {server.conn}"); } arguments.Append($" --crypt {cryptConverter.ConvertToString(server.crypt)}"); if (server.crypt != kcptun_crypt.none) { arguments.Append($" --key \"{server.key}\""); } if (server.nocomp) { arguments.Append($" --nocomp"); } arguments.Append($" --mode {modeConverter.ConvertToString(server.mode)}"); if (server.mode == kcptun_mode.manual) { if (server.nodelay >= 0) { arguments.Append($" --nodelay {server.nodelay}"); } if (server.resend >= 0) { arguments.Append($" --resend {server.resend}"); } if (server.nc >= 0) { arguments.Append($" --nc {server.nc}"); } if (server.interval >= 0) { arguments.Append($" --interval {server.interval}"); } } if (server.datashard >= 0) { arguments.Append($" --datashard {server.datashard}"); } if (server.parityshard >= 0) { arguments.Append($" --parityshard {server.parityshard}"); } if (server.sndwnd >= 0) { arguments.Append($" --sndwnd {server.sndwnd}"); } if (server.rcvwnd >= 0) { arguments.Append($" --rcvwnd {server.rcvwnd}"); } if (server.mtu >= 0) { arguments.Append($" --mtu {server.mtu}"); } if (server.dscp >= 0) { arguments.Append($" --dscp {server.dscp}"); } if (server.autoexpire >= 0) { arguments.Append($" --autoexpire {server.autoexpire}"); } if (server.sockbuf >= 0) { arguments.Append($" --sockbuf {server.sockbuf}"); } arguments.Append($" --acknodelay={server.acknodelay.ToString().ToLower()}"); if (server.keepalive >= 0) { arguments.Append($" --keepalive {server.keepalive}"); } if (!string.IsNullOrEmpty(server.extend_arguments)) { arguments.Append($" {server.extend_arguments}"); } } if (snmp != null && snmp.enabled) { arguments.Append($" --snmplog=\"{snmp.snmplog}\""); arguments.Append($" --snmpperiod {snmp.snmpperiod}"); } return(arguments.ToString().Trim()); }