mirror of
https://github.com/xtaci/kcptun.git
synced 2024-04-21 12:32:32 +00:00
adjust bi-tun parameters
This commit is contained in:
+18
-16
@@ -34,33 +34,35 @@ func handleClient(sess *smux.Session, p1 io.ReadWriteCloser, quiet bool) {
|
||||
log.Println(v...)
|
||||
}
|
||||
}
|
||||
|
||||
defer p1.Close()
|
||||
p2, err := sess.OpenStream()
|
||||
if err != nil {
|
||||
logln(err)
|
||||
p1.Close()
|
||||
return
|
||||
}
|
||||
|
||||
defer p2.Close()
|
||||
|
||||
logln("stream opened", p2.ID())
|
||||
defer logln("stream closed", p2.ID())
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
// start tunnel & wait for tunnel termination
|
||||
streamCopy := func(dst io.Writer, src io.ReadCloser) {
|
||||
buf := xmitBuf.Get().([]byte)
|
||||
if _, err := generic.CopyBuffer(dst, src, buf); err != nil {
|
||||
logln(err)
|
||||
}
|
||||
xmitBuf.Put(buf)
|
||||
src.Close()
|
||||
wg.Done()
|
||||
streamCopy := func(dst io.Writer, src io.ReadCloser) chan struct{} {
|
||||
die := make(chan struct{})
|
||||
go func() {
|
||||
buf := xmitBuf.Get().([]byte)
|
||||
if _, err := generic.CopyBuffer(dst, src, buf); err != nil {
|
||||
logln(err)
|
||||
}
|
||||
xmitBuf.Put(buf)
|
||||
}()
|
||||
return die
|
||||
}
|
||||
|
||||
go streamCopy(p1, p2)
|
||||
go streamCopy(p2, p1)
|
||||
wg.Wait()
|
||||
select {
|
||||
case <-streamCopy(p1, p2):
|
||||
case <-streamCopy(p2, p1):
|
||||
}
|
||||
}
|
||||
|
||||
func checkError(err error) {
|
||||
@@ -77,7 +79,7 @@ func main() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
}
|
||||
xmitBuf.New = func() interface{} {
|
||||
return make([]byte, 65535)
|
||||
return make([]byte, 32768)
|
||||
}
|
||||
|
||||
myApp := cli.NewApp()
|
||||
|
||||
+18
-14
@@ -68,25 +68,29 @@ func handleClient(p1 *smux.Stream, p2 io.ReadWriteCloser, quiet bool) {
|
||||
}
|
||||
}
|
||||
|
||||
defer p1.Close()
|
||||
defer p2.Close()
|
||||
|
||||
logln("stream opened", p1.ID())
|
||||
defer logln("stream closed", p1.ID())
|
||||
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
// start tunnel & wait for tunnel termination
|
||||
streamCopy := func(dst io.Writer, src io.ReadCloser) {
|
||||
buf := xmitBuf.Get().([]byte)
|
||||
if _, err := generic.CopyBuffer(dst, src, buf); err != nil {
|
||||
logln(err)
|
||||
}
|
||||
xmitBuf.Put(buf)
|
||||
src.Close()
|
||||
wg.Done()
|
||||
streamCopy := func(dst io.Writer, src io.ReadCloser) chan struct{} {
|
||||
die := make(chan struct{})
|
||||
go func() {
|
||||
buf := xmitBuf.Get().([]byte)
|
||||
if _, err := generic.CopyBuffer(dst, src, buf); err != nil {
|
||||
logln(err)
|
||||
}
|
||||
xmitBuf.Put(buf)
|
||||
}()
|
||||
return die
|
||||
}
|
||||
|
||||
go streamCopy(p1, p2)
|
||||
go streamCopy(p2, p1)
|
||||
wg.Wait()
|
||||
select {
|
||||
case <-streamCopy(p1, p2):
|
||||
case <-streamCopy(p2, p1):
|
||||
}
|
||||
}
|
||||
|
||||
func checkError(err error) {
|
||||
@@ -103,7 +107,7 @@ func main() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
}
|
||||
xmitBuf.New = func() interface{} {
|
||||
return make([]byte, 65535)
|
||||
return make([]byte, 32768)
|
||||
}
|
||||
|
||||
myApp := cli.NewApp()
|
||||
|
||||
Reference in New Issue
Block a user