VMess will Drain Connection On Auth failure

pull/2545/head
Shelikhoo 5 years ago
parent 220b783caa
commit 38e89bd2c7
No known key found for this signature in database
GPG Key ID: C4D5E79D22B25316

@ -155,7 +155,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
user, timestamp, valid := s.userValidator.Get(buffer.Bytes()) user, timestamp, valid := s.userValidator.Get(buffer.Bytes())
if !valid { if !valid {
return nil, newError("invalid user") return nil, drainConnection(newError("invalid user"))
} }
iv := hashTimestamp(md5.New(), timestamp) iv := hashTimestamp(md5.New(), timestamp)

@ -4,6 +4,7 @@ import (
"context" "context"
"fmt" "fmt"
"io" "io"
"strings"
"testing" "testing"
"time" "time"
@ -265,7 +266,9 @@ func TestCommanderAddRemoveUser(t *testing.T) {
common.Must(err) common.Must(err)
defer CloseAllServers(servers) defer CloseAllServers(servers)
if err := testTCPConn(clientPort, 1024, time.Second*5)(); err != io.EOF { if err := testTCPConn(clientPort, 1024, time.Second*5)(); err != io.EOF &&
/*We might wish to drain the connection*/
(err != nil && !strings.HasSuffix(err.Error(), "i/o timeout")) {
t.Fatal("expected error: ", err) t.Fatal("expected error: ", err)
} }

Loading…
Cancel
Save