From 2c82233b4f2f242172aa57f84741c090090bc72c Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Thu, 16 Nov 2023 21:42:11 +0800 Subject: [PATCH] add more config options for kcp --- dialer/kcp/metadata.go | 12 ++++++++++-- listener/kcp/metadata.go | 13 ++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/dialer/kcp/metadata.go b/dialer/kcp/metadata.go index 126f473..a9a8c27 100644 --- a/dialer/kcp/metadata.go +++ b/dialer/kcp/metadata.go @@ -21,14 +21,14 @@ func (d *kcpDialer) parseMetadata(md mdata.Metadata) (err error) { handshakeTimeout = "handshakeTimeout" ) - if file := mdutil.GetString(md, configFile); file != "" { + if file := mdutil.GetString(md, "kcp.configFile", "configFile", "c"); file != "" { d.md.config, err = kcp_util.ParseFromFile(file) if err != nil { return } } - if m := mdutil.GetStringMap(md, config); len(m) > 0 { + if m := mdutil.GetStringMap(md, "kcp.config", "config"); len(m) > 0 { b, err := json.Marshal(m) if err != nil { return err @@ -42,6 +42,14 @@ func (d *kcpDialer) parseMetadata(md mdata.Metadata) (err error) { if d.md.config == nil { d.md.config = kcp_util.DefaultConfig } + d.md.config.TCP = mdutil.GetBool(md, "kcp.tcp", "tcp") + d.md.config.Key = mdutil.GetString(md, "kcp.key") + d.md.config.Crypt = mdutil.GetString(md, "kcp.crypt") + d.md.config.Mode = mdutil.GetString(md, "kcp.mode") + d.md.config.KeepAlive = mdutil.GetInt(md, "kcp.keepalive") + d.md.config.Interval = mdutil.GetInt(md, "kcp.interval") + d.md.config.MTU = mdutil.GetInt(md, "kcp.mtu") + d.md.config.SmuxVer = mdutil.GetInt(md, "kcp.smuxver") d.md.handshakeTimeout = mdutil.GetDuration(md, handshakeTimeout) return diff --git a/listener/kcp/metadata.go b/listener/kcp/metadata.go index c1358ce..6fe8c96 100644 --- a/listener/kcp/metadata.go +++ b/listener/kcp/metadata.go @@ -20,18 +20,17 @@ type metadata struct { func (l *kcpListener) parseMetadata(md mdata.Metadata) (err error) { const ( backlog = "backlog" - config = "config" configFile = "c" ) - if file := mdutil.GetString(md, configFile); file != "" { + if file := mdutil.GetString(md, "kcp.configFile", "configFile", "c"); file != "" { l.md.config, err = kcp_util.ParseFromFile(file) if err != nil { return } } - if m := mdutil.GetStringMap(md, config); len(m) > 0 { + if m := mdutil.GetStringMap(md, "kcp.config", "config"); len(m) > 0 { b, err := json.Marshal(m) if err != nil { return err @@ -46,6 +45,14 @@ func (l *kcpListener) parseMetadata(md mdata.Metadata) (err error) { if l.md.config == nil { l.md.config = kcp_util.DefaultConfig } + l.md.config.TCP = mdutil.GetBool(md, "kcp.tcp", "tcp") + l.md.config.Key = mdutil.GetString(md, "kcp.key") + l.md.config.Crypt = mdutil.GetString(md, "kcp.crypt") + l.md.config.Mode = mdutil.GetString(md, "kcp.mode") + l.md.config.KeepAlive = mdutil.GetInt(md, "kcp.keepalive") + l.md.config.Interval = mdutil.GetInt(md, "kcp.interval") + l.md.config.MTU = mdutil.GetInt(md, "kcp.mtu") + l.md.config.SmuxVer = mdutil.GetInt(md, "kcp.smuxVer") l.md.backlog = mdutil.GetInt(md, backlog) if l.md.backlog <= 0 {