mesh/delivery-group group feat/sdk1 rejected: composed together: the checker's verdict at the members' heads (428d048dd50a): unit: git.novox.be/novox/mesh-sdk/…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: unit: git.novox.be/novox/mesh-sdk/go/process.TestStatePutWritesAKeyWhole: a Put through a short blackout: 0, mesh-mail's state send…
Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
39 lines
2.3 KiB
Go
39 lines
2.3 KiB
Go
package catalogue
|
|
|
|
// ResolverSeat is the machine's own resolver (novox/hq ADR 0247).
|
|
const ResolverSeat = "node-resolver"
|
|
|
|
// ResolverFile is the machine's resolver file: the uplink holder's, or the node-resolver holder's where
|
|
// one is held.
|
|
const ResolverFile = "/etc/resolv.conf"
|
|
|
|
// resolverVerbs is the contract every holder of node-resolver serves (novox/hq ADR 0247): what is routed
|
|
// where, route a set of domains, and take a route away. The same verbs are served on the machine itself to
|
|
// the modules there, so what a VPN pushed never crosses the bus to be routed; on the mesh they are the
|
|
// operator's way to read and correct the same.
|
|
func resolverVerbs() []Verb {
|
|
return []Verb{
|
|
{Name: "routes", Description: "What this machine's own resolver sends where: the mesh's resolvers, " +
|
|
"which answer every name not routed elsewhere, and each link given servers of its own with the " +
|
|
"domains routed to them. Also the resolver file's outside writes it kept, newest first: when, who " +
|
|
"wrote it as far as the file says, whether a module took it, and when the resolver's own file was " +
|
|
"put back.",
|
|
Input: schema(map[string]string{}, nil),
|
|
Replaces: []string{"resolvectl status", "resolvectl dns", "resolvectl domain"}},
|
|
{Name: "route", Description: "Send these domains, and every name under them, to these servers over " +
|
|
"this link — and only them: the link is never the machine's default route for names, and the " +
|
|
"mesh's own domain is refused. Replaces whatever the link was given before. A link that goes away " +
|
|
"takes its route with it.",
|
|
Input: schema(map[string]string{
|
|
"link": "the network link the servers are reached over, by name (a VPN's tunnel interface)",
|
|
"domains": "the domains to route there, separated by spaces or commas",
|
|
"servers": "the servers' addresses, separated by spaces or commas",
|
|
}, []string{"link", "domains", "servers"}),
|
|
Replaces: []string{"resolvectl dns", "resolvectl domain", "resolvectl default-route"}},
|
|
{Name: "unroute", Description: "Take one link's route away: its domains go back to the mesh's " +
|
|
"resolvers. Nothing changes when the link has none.",
|
|
Input: schema(map[string]string{"link": "the network link, by name"}, []string{"link"}),
|
|
Replaces: []string{"resolvectl revert"}},
|
|
}
|
|
}
|