Dev Scribe
b0408e4d1c
cli: add network fallback and explicit-only Internal Domain modes
...
Internal Domains now support three modes. "os" is unchanged.
"resolvers" becomes explicit resolver with network fallback: the
configured resolvers are tried first, and a timeout, unreachable
resolver, SERVFAIL or NXDOMAIN hands the query to matching VPN DNS
servers, then domain-less VPN DNS servers, then the OS resolver's LAN
nameservers through the new LanOnlyQueryCtx. "resolvers_only" keeps
the previous strict behavior. Down fallback-mode resolvers are skipped
and re-checked in the background at most every 30s. Generated upstreams
are identified by the UpstreamConfig.InternalDomain marker instead of
the internal_ key prefix.
Master adaptations: the fallback state lives on proxyRequest and is
applied in tryUpstreams, shouldContinueWithNextUpstream and
handleAllUpstreamsFailure instead of v1.0's monolithic proxy loop.
Resolver construction uses master's context-aware NewResolver, and the
background re-check marks its context private so transport errors that
name the resolver stay at debug. Tests use master's zap JSON capture
and VPN manager logger.
2026-10-07 14:24:00 +07:00
..
2024-02-07 14:40:18 +07:00
2026-10-07 14:15:54 +07:00
2026-10-07 14:15:54 +07:00
2026-10-07 14:16:47 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:19 +07:00
2026-10-07 14:15:54 +07:00
2026-10-07 14:18:04 +07:00
2026-10-07 14:17:46 +07:00
2026-10-07 14:17:46 +07:00
2026-10-07 14:18:04 +07:00
2026-09-23 14:46:38 +07:00
2026-09-18 13:37:27 +07:00
2025-02-18 20:25:13 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-07-13 21:50:02 +07:00
2026-08-14 15:27:54 +07:00
2026-09-04 16:46:55 +07:00
2026-09-03 13:57:38 +07:00
2026-10-07 14:24:00 +07:00
2026-09-22 21:07:51 +07:00
2026-04-30 19:19:18 +07:00
2026-09-04 16:47:29 +07:00
2026-09-04 16:47:29 +07:00
2026-04-30 19:19:18 +07:00
2026-10-07 14:18:22 +07:00
2026-08-24 15:18:01 +07:00
2026-09-03 13:57:38 +07:00
2026-04-30 19:19:18 +07:00
2026-07-14 23:20:27 +07:00
2026-09-04 16:46:55 +07:00
2026-09-04 16:46:55 +07:00
2026-08-14 15:30:05 +07:00
2026-08-14 15:30:05 +07:00
2026-07-14 23:20:27 +07:00
2026-09-22 21:07:51 +07:00
2026-09-03 13:57:38 +07:00
2026-08-24 15:16:12 +07:00
2026-09-03 13:57:38 +07:00
2026-09-03 13:57:38 +07:00
2026-09-03 13:57:38 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:18:22 +07:00
2026-09-28 14:44:47 +07:00
2026-09-22 21:07:51 +07:00
2026-09-28 14:44:47 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-08-14 15:29:06 +07:00
2026-09-22 21:07:51 +07:00
2026-09-28 15:07:03 +07:00
2026-08-12 14:05:18 +07:00
2026-09-21 19:06:13 +07:00
2026-08-14 15:29:06 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-23 14:46:38 +07:00
2026-10-07 14:16:23 +07:00
2026-09-03 13:58:24 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:24:00 +07:00
2026-09-22 21:08:04 +07:00
2026-09-28 14:44:47 +07:00
2026-09-28 14:44:47 +07:00
2026-09-25 13:20:27 +07:00
2026-09-28 14:44:47 +07:00
2026-09-24 14:19:43 +07:00
2026-09-24 14:19:43 +07:00
2026-09-02 16:54:35 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:49 +07:00
2026-09-25 13:20:49 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:49 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:49 +07:00
2026-09-28 14:44:47 +07:00
2026-09-25 13:20:49 +07:00
2026-09-25 13:21:03 +07:00
2026-09-28 14:44:47 +07:00
2026-09-02 16:54:35 +07:00
2026-09-25 13:20:49 +07:00
2026-09-02 16:54:35 +07:00
2026-08-04 14:12:15 +07:00
2026-08-28 14:01:23 +07:00
2026-08-28 14:01:23 +07:00
2026-08-28 14:01:23 +07:00
2026-08-28 14:02:24 +07:00
2026-08-28 14:02:24 +07:00
2026-10-07 14:18:04 +07:00
2026-09-23 14:46:38 +07:00
2026-09-04 16:46:55 +07:00
2026-09-04 16:46:55 +07:00
2026-04-30 19:19:19 +07:00
2026-04-30 19:19:18 +07:00
2026-08-24 15:18:01 +07:00
2026-08-12 14:32:13 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:24:00 +07:00
2026-10-07 14:24:00 +07:00
2026-10-07 14:24:00 +07:00
2026-10-07 14:24:00 +07:00
2026-09-23 14:46:38 +07:00
2026-09-03 13:57:38 +07:00
2026-08-14 15:29:32 +07:00
2026-09-28 14:44:47 +07:00
2026-09-28 14:44:47 +07:00
2026-09-28 14:44:47 +07:00
2026-09-28 14:44:47 +07:00
2026-08-24 15:17:25 +07:00
2026-09-23 14:46:38 +07:00
2026-10-07 14:16:23 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:16:23 +07:00
2026-10-07 14:16:23 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:16:23 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:16:23 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-10-07 14:18:22 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-04-30 19:19:19 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:18:22 +07:00
2023-12-13 14:53:29 +07:00
2026-09-23 15:17:26 +07:00
2026-08-24 15:17:03 +07:00
2026-09-22 21:07:51 +07:00
2026-08-24 15:14:59 +07:00
2026-09-22 21:07:51 +07:00
2026-09-25 13:21:03 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:16:23 +07:00
2026-09-22 21:07:51 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-09-23 14:46:38 +07:00
2026-09-25 13:21:03 +07:00
2026-09-25 13:21:03 +07:00
2026-09-23 14:46:38 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:16:23 +07:00
2026-10-07 14:16:23 +07:00
2026-09-18 13:36:47 +07:00
2026-09-22 21:07:51 +07:00
2026-09-18 13:36:47 +07:00
2026-09-18 13:36:47 +07:00
2026-09-18 13:36:47 +07:00
2026-09-22 21:07:51 +07:00
2026-09-23 14:46:38 +07:00
2026-04-30 19:19:18 +07:00
2025-02-18 20:25:13 +07:00
2026-08-12 14:32:13 +07:00
2026-08-12 14:32:13 +07:00
2026-08-12 14:32:13 +07:00
2026-09-21 19:06:13 +07:00
2026-07-13 20:18:26 +07:00
2026-07-13 20:18:26 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2023-08-15 18:22:38 +07:00
2026-09-22 21:18:41 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-25 13:20:27 +07:00
2026-09-18 13:36:47 +07:00
2026-09-18 13:36:47 +07:00
2026-08-12 14:05:18 +07:00
2026-08-12 14:05:18 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-09-04 16:46:55 +07:00
2024-05-09 18:39:30 +07:00
2026-04-30 19:19:18 +07:00
2026-09-23 14:46:38 +07:00
2026-04-30 19:19:18 +07:00
2026-07-15 23:50:19 +07:00
2026-04-30 19:19:18 +07:00
2026-10-07 14:24:00 +07:00
2026-04-30 19:19:18 +07:00
2026-09-04 16:46:55 +07:00
2026-09-04 16:46:55 +07:00
2026-10-07 14:17:46 +07:00
2026-10-07 14:17:46 +07:00
2026-09-04 16:46:55 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:24:00 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-10-07 14:24:00 +07:00
2026-10-07 14:24:00 +07:00
2026-09-22 21:07:51 +07:00
2026-09-23 14:46:38 +07:00
2026-09-23 14:46:38 +07:00
2026-09-23 14:46:38 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-09-23 14:46:38 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2025-05-15 17:00:59 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2026-04-30 19:19:18 +07:00
2025-03-26 23:18:36 +07:00
2025-03-26 23:18:36 +07:00
2026-04-30 19:19:18 +07:00
2026-08-24 15:18:01 +07:00
2026-09-03 13:57:38 +07:00
2026-09-03 13:57:38 +07:00
2026-08-24 15:17:03 +07:00
2026-08-24 15:18:01 +07:00
2026-08-14 15:30:05 +07:00
2026-08-14 15:30:05 +07:00
2026-09-03 13:57:38 +07:00
2026-09-03 13:57:38 +07:00
2026-09-22 21:07:51 +07:00
2026-08-24 15:16:12 +07:00
2026-08-14 15:29:06 +07:00
2026-09-03 13:57:38 +07:00
2026-09-23 14:46:38 +07:00
2026-09-18 13:35:00 +07:00
2026-09-18 13:35:00 +07:00
2026-09-22 21:07:51 +07:00
2026-09-22 21:07:51 +07:00
2026-07-14 23:20:27 +07:00
2026-10-07 14:24:00 +07:00
2026-09-22 21:07:51 +07:00
2026-09-23 15:17:38 +07:00
2026-09-23 14:46:38 +07:00
2026-09-28 14:44:47 +07:00
2026-09-22 21:07:51 +07:00
2026-09-28 14:44:47 +07:00
2024-02-07 14:40:18 +07:00