diff --git a/config.go b/config.go index ac74541..c105bb4 100755 --- a/config.go +++ b/config.go @@ -264,6 +264,12 @@ func initConfig() (err error) { *kcpArgs.Crypt = "aes" kcpArgs.Block, _ = kcp.NewAESBlockCrypt(pass) } + //attach kcp config + tcpArgs.KCP = kcpArgs + httpArgs.KCP = kcpArgs + socksArgs.KCP = kcpArgs + spsArgs.KCP = kcpArgs + flags := log.Ldate if *debug { flags |= log.Lshortfile | log.Lmicroseconds diff --git a/utils/serve-channel.go b/utils/serve-channel.go index 25e0a7e..a53f00e 100644 --- a/utils/serve-channel.go +++ b/utils/serve-channel.go @@ -142,15 +142,19 @@ func (sc *ServerChannel) ListenUDP(fn func(packet []byte, localAddr, srcAddr *ne func (sc *ServerChannel) ListenKCP(config kcpcfg.KCPConfigArgs, fn func(conn net.Conn)) (err error) { lis, err := kcp.ListenWithOptions(fmt.Sprintf("%s:%d", sc.ip, sc.port), config.Block, *config.DataShard, *config.ParityShard) if err == nil { - if err := lis.SetDSCP(*config.DSCP); err != nil { + if err = lis.SetDSCP(*config.DSCP); err != nil { log.Println("SetDSCP:", err) + return } - if err := lis.SetReadBuffer(*config.SockBuf); err != nil { + if err = lis.SetReadBuffer(*config.SockBuf); err != nil { log.Println("SetReadBuffer:", err) + return } - if err := lis.SetWriteBuffer(*config.SockBuf); err != nil { + if err = lis.SetWriteBuffer(*config.SockBuf); err != nil { log.Println("SetWriteBuffer:", err) + return } + sc.Listener = new(net.Listener) *sc.Listener = lis go func() { defer func() {