add chain.Chainable interface
This commit is contained in:
@ -53,8 +53,8 @@ func buildService(cfg *config.Config) (services []*service.Service) {
|
||||
listener.LoggerOption(listenerLogger),
|
||||
)
|
||||
|
||||
if chainable, ok := ln.(listener.Chainable); ok {
|
||||
chainable.Chain(chains[svc.Chain])
|
||||
if chainable, ok := ln.(chain.Chainable); ok {
|
||||
chainable.WithChain(chains[svc.Chain])
|
||||
}
|
||||
|
||||
if err := ln.Init(metadata.MapMetadata(svc.Listener.Metadata)); err != nil {
|
||||
@ -67,11 +67,14 @@ func buildService(cfg *config.Config) (services []*service.Service) {
|
||||
})
|
||||
|
||||
h := registry.GetHandler(svc.Handler.Type)(
|
||||
handler.ChainOption(chains[svc.Chain]),
|
||||
handler.BypassOption(bypasses[svc.Bypass]),
|
||||
handler.LoggerOption(handlerLogger),
|
||||
)
|
||||
|
||||
if chainable, ok := h.(chain.Chainable); ok {
|
||||
chainable.WithChain(chains[svc.Chain])
|
||||
}
|
||||
|
||||
if forwarder, ok := h.(handler.Forwarder); ok {
|
||||
forwarder.Forward(forwarderFromConfig(svc.Forwarder))
|
||||
}
|
||||
@ -162,6 +165,8 @@ func logFromConfig(cfg *config.LogConfig) logger.Logger {
|
||||
|
||||
var out io.Writer = os.Stderr
|
||||
switch cfg.Output {
|
||||
case "none":
|
||||
return logger.Nop()
|
||||
case "stdout", "":
|
||||
out = os.Stdout
|
||||
case "stderr":
|
||||
|
@ -1,5 +1,5 @@
|
||||
log:
|
||||
output: stderr # stderr, stdout, /path/to/file
|
||||
output: stderr # none, stderr, stdout, /path/to/file
|
||||
level: debug # debug, info, warn, error, fatal
|
||||
format: json # text, json
|
||||
|
||||
|
@ -1,47 +1,40 @@
|
||||
services:
|
||||
- name: service-0
|
||||
url: tcp://:8080/:8081?abc=def&true=true&n=123
|
||||
addr: :8080
|
||||
url: ss://abc:123@:18338/:18338
|
||||
addr: :18338
|
||||
chain: chain-0
|
||||
listener:
|
||||
type: tcp
|
||||
metadata:
|
||||
abc: def
|
||||
"n": "123"
|
||||
"true": "true"
|
||||
users:
|
||||
- abc:123
|
||||
handler:
|
||||
type: tcp
|
||||
metadata:
|
||||
abc: def
|
||||
"n": "123"
|
||||
"true": "true"
|
||||
users:
|
||||
- abc:123
|
||||
forwarder:
|
||||
targets:
|
||||
- :8081
|
||||
- :18338
|
||||
chains:
|
||||
- name: chain-0
|
||||
hops:
|
||||
- name: hop-0
|
||||
nodes:
|
||||
- name: node-0
|
||||
url: auto://:1081?n=123t
|
||||
addr: :1081
|
||||
url: socks://abc:123@:11080?type=abc&key=value
|
||||
addr: :11080
|
||||
dialer:
|
||||
type: auto
|
||||
type: tcp
|
||||
metadata:
|
||||
"n": 123t
|
||||
key: value
|
||||
type: abc
|
||||
user:
|
||||
- abc:123
|
||||
connector:
|
||||
type: auto
|
||||
type: socks
|
||||
metadata:
|
||||
"n": 123t
|
||||
- name: hop-1
|
||||
nodes:
|
||||
- name: node-0
|
||||
url: auto://:1082
|
||||
addr: :1082
|
||||
dialer:
|
||||
type: auto
|
||||
metadata: {}
|
||||
connector:
|
||||
type: auto
|
||||
metadata: {}
|
||||
key: value
|
||||
type: abc
|
||||
user:
|
||||
- abc:123
|
||||
|
Reference in New Issue
Block a user