update cmd

This commit is contained in:
ginuerzh
2021-11-22 23:57:07 +08:00
parent fa8375f763
commit ece51cb0b8
18 changed files with 135 additions and 80 deletions

View File

@ -38,7 +38,10 @@ func buildService(cfg *config.Config) (services []*service.Service) {
for _, svc := range cfg.Services {
serviceLogger := log.WithFields(map[string]interface{}{
"service": svc.Name,
"kind": "service",
"service": svc.Name,
"listener": svc.Listener.Type,
"handler": svc.Handler.Type,
})
listenerLogger := serviceLogger.WithFields(map[string]interface{}{

View File

@ -5,6 +5,7 @@ import (
"strings"
"github.com/go-gost/gost/pkg/config"
"github.com/go-gost/gost/pkg/registry"
)
// normConfig normalizes the config.
@ -41,8 +42,36 @@ func normService(svc *config.ServiceConfig) {
md[k] = v[0]
}
}
if u.User != nil {
md["users"] = []interface{}{u.User.String()}
}
svc.Addr = u.Host
if h := registry.GetHandler(handler); h == nil {
handler = "auto"
}
if ln := registry.GetListener(listener); ln == nil {
listener = "tcp"
if handler == "ssu" {
listener = "udp"
}
}
if remotes := strings.Trim(u.EscapedPath(), "/"); remotes != "" {
svc.Forwarder = &config.ForwarderConfig{
Targets: strings.Split(remotes, ","),
}
if handler != "relay" {
if listener == "tcp" || listener == "udp" ||
listener == "rtcp" || listener == "rudp" {
handler = listener
} else {
handler = "tcp"
}
}
}
svc.Handler = &config.HandlerConfig{
Type: handler,
Metadata: md,
@ -51,12 +80,6 @@ func normService(svc *config.ServiceConfig) {
Type: listener,
Metadata: md,
}
if remotes := strings.Trim(u.EscapedPath(), "/"); remotes != "" {
svc.Forwarder = &config.ForwarderConfig{
Targets: strings.Split(remotes, ","),
}
}
}
func normChain(chain *config.ChainConfig) {
@ -85,8 +108,22 @@ func normChain(chain *config.ChainConfig) {
md[k] = v[0]
}
}
if u.User != nil {
md["user"] = []interface{}{u.User.String()}
}
node.Addr = u.Host
if c := registry.GetConnector(connector); c == nil {
connector = "http"
}
if d := registry.GetDialer(dialer); d == nil {
dialer = "tcp"
if connector == "ssu" {
dialer = "udp"
}
}
node.Connector = &config.ConnectorConfig{
Type: connector,
Metadata: md,