@pageState.DhcpUnavailableReason
+DHCP-specific options are not available, but you can view the effective config below.
+Use the editor below for full dnsmasq flexibility. The workflow UI appears underneath.
+/etc/ethers and
+ treats its entries like dhcp-host mappings for DHCP clients.
+ Path: @_status.LeasesPath (read-only).
- } - @if (!_status.LeasesPathConfigured) - { -Leases not configured (no dhcp-leasefile in config).
- } - else if (!_status.LeasesPathExists) - { -Leases file not found: @_status.LeasesPath. DHCP may be disabled or path may be wrong.
- } - else if (_leases == null) - { -Could not read leases file.
- } - else if (_leases.Count == 0) - { -No leases yet. Leases appear here when DHCP clients obtain an address; use Refresh to update.
-@pageState.LeasesUnavailableReason
+Path: @_status.LeasesPath (read-only).
+ } + @if (!_status.LeasesPathConfigured) + { +Leases not configured (no dhcp-leasefile in config).
+ } + else if (!_status.LeasesPathExists) + { +Leases file not found: @_status.LeasesPath. DHCP may be disabled or path may be wrong.
+ } + else if (_leases == null) + { +Could not read leases file.
+ } + else if (_leases.Count == 0) + { +No leases yet. Leases appear here when DHCP clients obtain an address; use Refresh to update.
+Hosts editing is unavailable: managed hosts path is not configured. Set Dnsmasq:MainConfigPath (and optionally Dnsmasq:ManagedHostsFileName) so the app can create and edit the managed hosts file.
+@pageState.ManagedHostsUnavailableReason
+Dnsmasq loads these addn-hosts files: @RenderAddnHostsList()
@@ -42,30 +65,254 @@ elseSave changes via the toolbar above.
+No hosts entries found.
} - } + else if (VisibleGroups.Count == 0) + { +No rows match the current search.
+ } + else + { +| Address | +Names | +Effective names | +Status | +
|---|---|---|---|
|
+
+
+
+ @group.Title
+ @if (group.GroupContainsEditableRows)
+ {
+ Editable
+ }
+ @if (!group.IsActive)
+ {
+ Inactive
+ }
+ @if (!string.IsNullOrWhiteSpace(group.Subtitle))
+ {
+ @group.Subtitle
+ }
+
+ |
+ |||
| + + | ++ + | +@string.Join(", ", HostsEffectiveNames.Expand(ParseNamesList(_editNames), pageState.ExpandHostsEnabled, pageState.ExpansionDomain)) | +
+
+ Editable
+ @if (row.IsComment)
+ {
+ Commented
+ }
+
+
+
+
+
+ |
+
@row.Address |
+ @string.Join(", ", row.Names) | ++ @if (row.EffectiveNames.Count != row.Names.Count) + { + @string.Join(", ", row.EffectiveNames) + } + else + { + @string.Join(", ", row.EffectiveNames) + } + | +
+
+ @if (!row.IsActive)
+ {
+ Inactive
+ }
+ @if (row.IsComment)
+ {
+ Commented
+ }
+ @if (row.IsEditable)
+ {
+ Editable
+ }
+ else
+ {
+ Read-only
+ }
+ @if (row.IsEditable && string.IsNullOrEmpty(_editingRowId))
+ {
+
+ }
+
+ |
+
@pageState.ExpansionDomain.
+ Simple hostnames (without dots) will be expanded to include the domain suffix.
+ The Effective names column shows how dnsmasq will resolve each entry.
+