public async Task <string> Handle(SNMPConfiguration configuration) { var settings = await settingsRepository.GetSettings(); settings.SNMPConfiguration = configuration; bash.Install("snmpd"); bash.Install("snmp"); bash.Install("libsnmp-dev"); var snmpd = await File.ReadAllTextAsync(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "snmpd.conf")); snmpd = snmpd.FormatWith(configuration); var snmpdPath = "/etc/snmp/snmpd.conf"; bash.Execute("/etc/init.d/snmpd stop"); if (File.Exists(snmpdPath)) { File.Copy(snmpdPath, $"/etc/snmp/snmpd_{DateTime.Now.Ticks}.bak"); } using StreamWriter stream = File.CreateText(snmpdPath); await stream.WriteAsync(snmpd); bash.Execute("/etc/init.d/snmpd start"); await settingsRepository.SaveSettings(settings); return(null); }
private void OnShowSNMPItemClick(object sender, EventArgs e) { SNMPConfiguration snmp = controller.ConfigController.GetCurrentConfiguration().snmp; if (!string.IsNullOrEmpty(snmp.snmplog)) { FileInfo fi = new FileInfo(Path.Combine(Utils.GetTempPath(), snmp.snmplog)); string argument = "/select, \"" + fi.FullName + "\""; Process.Start("explorer.exe", argument); } }
public void ChangeSNMPConfig(SNMPConfiguration config) { if (!_config.snmp.Equals(config)) { _config.snmp = config; SaveConfig(_config); if (SNMPConfigChanged != null) { SNMPConfigChanged.Invoke(this, new EventArgs()); } } }
public async Task <IActionResult> SetupSNMP(SNMPConfiguration configuration) { try { await _services.Handle(configuration); } catch (ProcessException ex) { ViewData["Error"] = ex.Message; } return(View(configuration)); }
private void OkButton_Click(object sender, EventArgs e) { try { SNMPConfiguration snmp = new SNMPConfiguration { enabled = EnableCheckBox.Checked, snmplog = SNMPLogFileTextBox.Text.Trim(), snmpperiod = (int)SNMPPeriodNumericUpDown.Value }; controller.ConfigController.ChangeSNMPConfig(snmp); this.Close(); } catch (Exception ex) { Logging.LogUsefulException(ex); MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
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()); }
public static string BuildArguments(SNMPConfiguration snmp, Server server) { return(BuildArguments(snmp, server, null, null)); }