add UDP support for reverse proxy tunnel

This commit is contained in:
ginuerzh
2023-02-02 19:18:10 +08:00
parent 9750998940
commit 416405b1f0
29 changed files with 226 additions and 87 deletions

View File

@ -8,14 +8,18 @@ import (
"github.com/go-gost/core/common/bufpool"
)
const (
bufferSize = 32 * 1024
)
func Transport(rw1, rw2 io.ReadWriter) error {
errc := make(chan error, 1)
go func() {
errc <- CopyBuffer(rw1, rw2, 8192)
errc <- CopyBuffer(rw1, rw2, bufferSize)
}()
go func() {
errc <- CopyBuffer(rw2, rw1, 8192)
errc <- CopyBuffer(rw2, rw1, bufferSize)
}()
if err := <-errc; err != nil && err != io.EOF {
@ -26,7 +30,7 @@ func Transport(rw1, rw2 io.ReadWriter) error {
}
func CopyBuffer(dst io.Writer, src io.Reader, bufSize int) error {
buf := bufpool.Get(8192)
buf := bufpool.Get(bufSize)
defer bufpool.Put(buf)
_, err := io.CopyBuffer(dst, src, *buf)

View File

@ -41,7 +41,7 @@ func (r *Relay) SetBufferSize(n int) {
func (r *Relay) Run() (err error) {
bufSize := r.bufferSize
if bufSize <= 0 {
bufSize = 1500
bufSize = 4096
}
errc := make(chan error, 2)