//(key "[\w]+" {[\s\d\w\-;"=]+[\s]+};) public static DhcpdConfigurationModel ParseKeySecret(DhcpdConfigurationModel dhcpdConfigurationModel, string text) { var regex = new Regex("(key \"[\\w]+\" {[\\s\\d\\w\\-;\"=]+[\\s]+};)"); var matchedGroups = regex.Match(text).Groups; var capturedText = matchedGroups[1].Value; dhcpdConfigurationModel.KeyName = CaptureGroup(capturedText, "key \"([\\w]+)\""); dhcpdConfigurationModel.KeySecret = CaptureGroup(capturedText, "secret \"([\\s\\S]*)\";"); return(dhcpdConfigurationModel); }
public static void Save(DhcpdConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); if (File.Exists(CfgFile)) { File.Copy(CfgFile, CfgFileBackup, true); } FileWithAcl.WriteAllText(CfgFile, text, "644", "root", "wheel"); ConsoleLogger.Log("[dhcpd] configuration saved"); }
public void Save(DhcpdConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); if (File.Exists(_cfgFile)) { File.Copy(_cfgFile, _cfgFileBackup, true); } File.WriteAllText(_cfgFile, text); ConsoleLogger.Log("[dhcpd] configuration saved"); }
public DhcpdConfiguration() { IoDir.CreateDirectory(Parameter.AntdCfgServices); if (!File.Exists(_cfgFile)) { _serviceModel = new DhcpdConfigurationModel(); } else { try { var text = File.ReadAllText(_cfgFile); var obj = JsonConvert.DeserializeObject <DhcpdConfigurationModel>(text); _serviceModel = obj; } catch (Exception) { _serviceModel = new DhcpdConfigurationModel(); } } }
private static DhcpdConfigurationModel Parse(string text) { var model = new DhcpdConfigurationModel { IsActive = false }; var allow = DhcpdParser.ParseAllow(text); model.Allow = allow; model = DhcpdParser.ParseParameters(model, text); model = DhcpdParser.ParseKeySecret(model, text); var reservations = DhcpdParser.ParseReservation(text); model.Reservations = reservations; var classes = DhcpdParser.ParseClass(text); model.Classes = classes; var subnets = DhcpdParser.ParseSubnet(text); model.Subnets = subnets; return(model); }
public static DhcpdConfigurationModel ParseParameters(DhcpdConfigurationModel dhcpdConfigurationModel, string text) { dhcpdConfigurationModel.UpdateStaticLeases = CaptureGroup(text, "update-static-leases[\\s]+([\\w\\-]+);"); dhcpdConfigurationModel.UpdateConflictDetection = CaptureGroup(text, "update-conflict-detection[\\s]+([\\w\\-]+);"); dhcpdConfigurationModel.UseHostDeclNames = CaptureGroup(text, "use-host-decl-names[\\s]+([\\w\\-]+);"); dhcpdConfigurationModel.DoForwardUpdates = CaptureGroup(text, "do-forward-updates[\\s]+([\\w\\-]+);"); dhcpdConfigurationModel.DoReverseUpdates = CaptureGroup(text, "do-reverse-updates[\\s]+([\\w\\-]+);"); dhcpdConfigurationModel.LogFacility = CaptureGroup(text, "log-facility[\\s]+([\\w\\d\\-]+);"); dhcpdConfigurationModel.DefaultLeaseTime = CaptureGroup(text, "default-lease-time[\\s]+([\\d]+);"); dhcpdConfigurationModel.MaxLeaseTime = CaptureGroup(text, "max-lease-time[\\s]+([\\d]+);"); dhcpdConfigurationModel.OptionRouters = CaptureGroup(text, "option[\\s]+routers[\\s]+([\\w\\d\\-\\s.=\"]+);"); dhcpdConfigurationModel.OptionLocalProxy = CaptureGroup(text, "option[\\s]+local-proxy-config[\\s]+code[\\s]+([\\w\\d\\-\\s.=\"]+);"); dhcpdConfigurationModel.OptionDomainName = CaptureGroup(text, "option[\\s]+domain-name[\\s]+([\\w\\d\\-\\s.=\"]+);"); dhcpdConfigurationModel.ZoneName = CaptureGroup(text, "zone[\\s]+([\\w.\\d]+)[\\s]+{"); dhcpdConfigurationModel.ZonePrimaryAddress = CaptureGroup(text, "zone[\\s]+[\\w.\\d]+[\\s]+{[\\s]+primary[\\s]+([.\\d]+);"); dhcpdConfigurationModel.ZonePrimaryKey = CaptureGroup(text, "zone[\\s]+[\\w.\\d]+[\\s]+{[\\s]+primary[\\s]+[.\\d]+;[\\s]+key[\\s]+([\\w\\d]+);"); dhcpdConfigurationModel.DdnsUpdateStyle = CaptureGroup(text, "ddns-update-style[\\s]+([\\w]+);"); dhcpdConfigurationModel.DdnsUpdates = CaptureGroup(text, "ddns-updates[\\s]+([\\w]+);"); dhcpdConfigurationModel.DdnsDomainName = CaptureGroup(text, "ddns-domainname[\\s]+\"([\\w\\d.]+)\";"); dhcpdConfigurationModel.DdnsRevDomainName = CaptureGroup(text, "ddns-rev-domainname[\\s]+\"([\\w\\d.\\-]+)\";"); return(dhcpdConfigurationModel); }
public AntdDhcpdModule() { Get["/dhcpd"] = x => { var dhcpdIsActive = DhcpdConfiguration.IsActive(); var model = new PageDhcpdModel { DhcpdIsActive = dhcpdIsActive, DhcpdOptions = DhcpdConfiguration.Get() ?? new DhcpdConfigurationModel(), DhcpdClass = DhcpdConfiguration.Get()?.Classes, DhcpdReservation = DhcpdConfiguration.Get()?.Reservations }; return(JsonConvert.SerializeObject(model)); }; Post["/dhcpd/set"] = x => { DhcpdConfiguration.Set(); return(HttpStatusCode.OK); }; Post["/dhcpd/restart"] = x => { DhcpdConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/dhcpd/stop"] = x => { DhcpdConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/dhcpd/enable"] = x => { DhcpdConfiguration.Enable(); DhcpdConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/dhcpd/disable"] = x => { DhcpdConfiguration.Disable(); DhcpdConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/dhcpd/options"] = x => { string allow = Request.Form.Allow; string updateStaticLeases = Request.Form.UpdateStaticLeases; string updateConflictDetection = Request.Form.UpdateConflictDetection; string useHostDeclNames = Request.Form.UseHostDeclNames; string doForwardUpdates = Request.Form.DoForwardUpdates; string doReverseUpdates = Request.Form.DoReverseUpdates; string logFacility = Request.Form.LogFacility; string option = Request.Form.Option; string zoneName = Request.Form.ZoneName; string zonePrimaryAddress = Request.Form.ZonePrimaryAddress; string ddnsUpdateStyle = Request.Form.DdnsUpdateStyle; string ddnsUpdates = Request.Form.DdnsUpdates; string ddnsDomainName = Request.Form.DdnsDomainName; string ddnsRevDomainName = Request.Form.DdnsRevDomainName; string defaultLeaseTime = Request.Form.DefaultLeaseTime; string maxLeaseTime = Request.Form.MaxLeaseTime; string keyName = Request.Form.KeyName; string keySecret = Request.Form.KeySecret; string ipFamily = Request.Form.IpFamily; string ipMask = Request.Form.IpMask; string optionRouters = Request.Form.OptionRouters; string ntpServers = Request.Form.NtpServers; string timeServers = Request.Form.DoForTimeServerswardUpdates; string domainNameServers = Request.Form.DomainNameServers; string broadcastAddress = Request.Form.BroadcastAddress; string subnetMask = Request.Form.SubnetMask; var model = new DhcpdConfigurationModel { Allow = allow.SplitToList().Select(_ => _.Trim()).ToList(), UpdateStaticLeases = updateStaticLeases, UpdateConflictDetection = updateConflictDetection, UseHostDeclNames = useHostDeclNames, DoForwardUpdates = doForwardUpdates, DoReverseUpdates = doReverseUpdates, LogFacility = logFacility, ZoneName = zoneName, ZonePrimaryAddress = zonePrimaryAddress, DdnsUpdateStyle = ddnsUpdateStyle, DdnsUpdates = ddnsUpdates, DdnsDomainName = ddnsDomainName, DdnsRevDomainName = ddnsRevDomainName, DefaultLeaseTime = defaultLeaseTime, MaxLeaseTime = maxLeaseTime, KeyName = keyName, KeySecret = keySecret }; DhcpdConfiguration.Save(model); return(HttpStatusCode.OK); }; Post["/dhcpd/class"] = x => { string name = Request.Form.Name; string macVendor = Request.Form.MacVendor; var model = new DhcpdClass { Name = name, VendorMacAddress = macVendor }; DhcpdConfiguration.AddClass(model); return(HttpStatusCode.OK); }; Post["/dhcpd/class/del"] = x => { string guid = Request.Form.Guid; DhcpdConfiguration.RemoveClass(guid); return(HttpStatusCode.OK); }; Post["/dhcpd/pool"] = x => { //string option = Request.Form.Option; //var model = new DhcpdPool { // Options = option.SplitToList().Select(_ => _.Trim()).ToList() //}; //DhcpdConfiguration.AddPool(model); return(HttpStatusCode.OK); }; Post["/dhcpd/pool/del"] = x => { string guid = Request.Form.Guid; //DhcpdConfiguration.RemovePool(guid); return(HttpStatusCode.OK); }; Post["/dhcpd/reservation"] = x => { string hostName = Request.Form.HostName; string macAddress = Request.Form.MacAddress; string ipAddress = Request.Form.IpAddress; var model = new DhcpdReservation { HostName = hostName, MacAddress = macAddress, IpAddress = ipAddress }; DhcpdConfiguration.AddReservation(model); return(HttpStatusCode.OK); }; Post["/dhcpd/reservation/del"] = x => { string guid = Request.Form.Guid; DhcpdConfiguration.RemoveReservation(guid); return(HttpStatusCode.OK); }; }