|
|
@@ -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)))
|