mirror of
https://github.com/stefan01/transocks.git
synced 2025-02-22 03:30:45 +07:00
fixed support for non-http(s) connections
This commit is contained in:
parent
f0aa580aaf
commit
283504b292
17
server.go
17
server.go
@ -126,8 +126,7 @@ func (s *Server) handleConnection(ctx context.Context, conn net.Conn) {
|
|||||||
hello, reader_n2, err := peekClientHello(reader)
|
hello, reader_n2, err := peekClientHello(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fields[log.FnError] = err.Error()
|
fields[log.FnError] = err.Error()
|
||||||
s.logger.Error("peekClientHello failed", fields)
|
s.logger.Warn("peekClientHello failed", fields)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
if err == nil && hello.ServerName != "" {
|
if err == nil && hello.ServerName != "" {
|
||||||
addr = hello.ServerName + addr[strings.Index(addr, ":"):]
|
addr = hello.ServerName + addr[strings.Index(addr, ":"):]
|
||||||
@ -138,11 +137,11 @@ func (s *Server) handleConnection(ctx context.Context, conn net.Conn) {
|
|||||||
host, reader_n3, err := peekHTTP(reader)
|
host, reader_n3, err := peekHTTP(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fields[log.FnError] = err.Error()
|
fields[log.FnError] = err.Error()
|
||||||
s.logger.Error("peekHTTP failed", fields)
|
s.logger.Warn("peekHTTP failed", fields)
|
||||||
return
|
} else {
|
||||||
}
|
if err == nil && host != "" {
|
||||||
if err == nil && host != "" {
|
addr = host + addr[strings.Index(addr, ":"):]
|
||||||
addr = host + addr[strings.Index(addr, ":"):]
|
}
|
||||||
}
|
}
|
||||||
reader = reader_n3
|
reader = reader_n3
|
||||||
}
|
}
|
||||||
@ -242,7 +241,7 @@ func peekSSL(reader io.Reader) (bool, io.Reader, error) {
|
|||||||
peekedBytes := new(bytes.Buffer)
|
peekedBytes := new(bytes.Buffer)
|
||||||
isTLS, err := isTLS(io.TeeReader(reader, peekedBytes))
|
isTLS, err := isTLS(io.TeeReader(reader, peekedBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, nil, err
|
return false, io.MultiReader(peekedBytes, reader), err
|
||||||
}
|
}
|
||||||
return isTLS, io.MultiReader(peekedBytes, reader), nil
|
return isTLS, io.MultiReader(peekedBytes, reader), nil
|
||||||
}
|
}
|
||||||
@ -261,7 +260,7 @@ func peekHTTP(reader io.Reader) (string, io.Reader, error) {
|
|||||||
peekedBytes := new(bytes.Buffer)
|
peekedBytes := new(bytes.Buffer)
|
||||||
host, err := getHost(io.TeeReader(reader, peekedBytes))
|
host, err := getHost(io.TeeReader(reader, peekedBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", io.MultiReader(peekedBytes, reader), err
|
||||||
}
|
}
|
||||||
return host, io.MultiReader(peekedBytes, reader), nil
|
return host, io.MultiReader(peekedBytes, reader), nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user