fix redir test

This commit is contained in:
Page Fault
2020-07-04 07:28:16 +00:00
parent 2c87b81b81
commit ef43050c8e
2 changed files with 14 additions and 7 deletions
+9 -5
View File
@@ -30,8 +30,12 @@ type Redirector struct {
}
func (r *Redirector) Redirect(redirection *Redirection) {
r.redirectionChan <- redirection
log.Debug("redirect request")
select {
case r.redirectionChan <- redirection:
log.Debug("redirect request")
case <-r.ctx.Done():
log.Debug("exiting")
}
}
func (r *Redirector) worker() {
@@ -44,13 +48,13 @@ func (r *Redirector) worker() {
return
}
defer redirection.InboundConn.Close()
if redirection.Dial == nil {
redirection.Dial = defaultDial
}
if redirection.RedirectTo == nil || reflect.ValueOf(redirection.RedirectTo).IsNil() {
log.Error("nil redirection addr")
return
}
if redirection.Dial == nil {
redirection.Dial = defaultDial
}
log.Warn("redirecting connection from", redirection.InboundConn.RemoteAddr(), "to", redirection.RedirectTo.String())
outboundConn, err := redirection.Dial(redirection.RedirectTo)
if err != nil {
+5 -2
View File
@@ -35,13 +35,16 @@ func TestRedirector(t *testing.T) {
common.Must(err)
redir.Redirect(&Redirection{
Dial: nil,
RedirectTo: tunnel.NewAddressFromHostPort("tcp", util.EchoAddr, util.EchoPort),
RedirectTo: tunnel.NewAddressFromHostPort("tcp", "127.0.0.1", util.EchoPort),
InboundConn: conn2,
})
payload := util.GeneratePayload(1024)
common.Must2(conn1.Write(payload))
buf := make([]byte, 1024)
io.ReadFull(conn2, buf)
n, err := io.ReadFull(conn2, buf)
if n != 1024 || err != nil {
t.Fatal(n, err)
}
if !bytes.Equal(buf, payload) {
t.Fatal("diff: ", payload, "\n", buf)
}