1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-12-26 12:05:35 -05:00

fix dc id selection

This commit is contained in:
Darien Raymond
2018-07-05 14:47:46 +02:00
parent b16d2e9463
commit 32d34c9869
3 changed files with 30 additions and 3 deletions

View File

@@ -90,6 +90,9 @@ func (s *Server) Process(ctx context.Context, network net.Network, conn internet
}
dcID := auth.DataCenterID()
if dcID >= uint16(len(dcList)) {
return newError("invalid datacenter id: ", dcID)
}
dest := net.Destination{
Network: net.Network_TCP,
@@ -110,7 +113,7 @@ func (s *Server) Process(ctx context.Context, network net.Network, conn internet
defer timer.SetTimeout(sPolicy.Timeouts.DownlinkOnly)
reader := buf.NewReader(crypto.NewCryptionReader(decryptor, conn))
return buf.Copy(reader, link.Writer)
return buf.Copy(reader, link.Writer, buf.UpdateActivity(timer))
}
response := func() error {
@@ -118,7 +121,7 @@ func (s *Server) Process(ctx context.Context, network net.Network, conn internet
encryptor := crypto.NewAesCTRStream(auth.EncodingKey[:], auth.EncodingNonce[:])
writer := buf.NewWriter(crypto.NewCryptionWriter(encryptor, conn))
return buf.Copy(link.Reader, writer)
return buf.Copy(link.Reader, writer, buf.UpdateActivity(timer))
}
var responseDoneAndCloseWriter = task.Single(response, task.OnSuccess(task.Close(link.Writer)))