feat: add per-hop pool references in listener chains
Allow listeners to mix named pools in a single chain using pool:name syntax. Bare "pool" continues to use the listener's default pool. Replaces pool_hops field with pool_seq list; pool_hops is now a backward-compatible property. Each hop draws from its own pool and failure reporting targets the correct source pool. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -177,6 +177,36 @@ listeners:
|
||||
- pool
|
||||
```
|
||||
|
||||
### Per-hop pool references
|
||||
|
||||
Use `pool:name` to draw from a specific named pool at that hop position.
|
||||
Bare `pool` uses the listener's `pool:` default. This lets a single listener
|
||||
mix pools in one chain.
|
||||
|
||||
```yaml
|
||||
listeners:
|
||||
- listen: 0.0.0.0:1080
|
||||
pool: clean # default for bare "pool"
|
||||
chain:
|
||||
- socks5://10.200.1.13:9050
|
||||
- pool:clean # explicit: from clean pool
|
||||
- pool:mitm # explicit: from mitm pool
|
||||
|
||||
- listen: 0.0.0.0:1081
|
||||
pool: clean
|
||||
chain:
|
||||
- socks5://10.200.1.13:9050
|
||||
- pool # bare: uses default "clean"
|
||||
- pool:mitm # explicit: from mitm pool
|
||||
```
|
||||
|
||||
| Syntax | Resolves to |
|
||||
|--------|-------------|
|
||||
| `pool` | Listener's `pool:` value, or `"default"` if unset |
|
||||
| `pool:name` | Named pool `name` (case-sensitive) |
|
||||
| `pool:` | Same as bare `pool` (empty name = default) |
|
||||
| `Pool:name` | Prefix is case-insensitive; name is case-sensitive |
|
||||
|
||||
The `pool` keyword in a chain means "append a random alive proxy from the
|
||||
assigned pool". Multiple `pool` entries = multiple pool hops (deeper chaining).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user