|
|
@ -157,11 +157,23 @@ func serve(ctx context.Context, c net.Conn) {
|
|
|
|
forward(ctx, c, buf[:n], getDefaultDST())
|
|
|
|
forward(ctx, c, buf[:n], getDefaultDST())
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sni is ip address, ignore it, prevent dead loop
|
|
|
|
|
|
|
|
ip := net.ParseIP(servername)
|
|
|
|
|
|
|
|
if ip != nil {
|
|
|
|
|
|
|
|
glog.Debugf("sni %s, send to default", ip.String())
|
|
|
|
|
|
|
|
forward(ctx, c, buf[:n], getDefaultDST())
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dst := getDST(c, servername)
|
|
|
|
dst := getDST(c, servername)
|
|
|
|
if dst == "" {
|
|
|
|
if dst == "" {
|
|
|
|
dst = getDefaultDST()
|
|
|
|
dst = getDefaultDST()
|
|
|
|
glog.Debugf("use default dst %s for sni %s", dst, servername)
|
|
|
|
glog.Debugf("use default dst %s for sni %s", dst, servername)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
glog.Debugf("from %s, sni %s, forward to %s", c.RemoteAddr(), servername, dst)
|
|
|
|
|
|
|
|
|
|
|
|
forward(ctx, c, buf[:n], dst)
|
|
|
|
forward(ctx, c, buf[:n], dst)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|