فهرست منبع

make sure dc id is valid.

Darien Raymond 7 سال پیش
والد
کامیت
b16d2e9463
2فایلهای تغییر یافته به همراه1 افزوده شده و 4 حذف شده
  1. 1 1
      proxy/mtproto/auth.go
  2. 0 3
      proxy/mtproto/server.go

+ 1 - 1
proxy/mtproto/auth.go

@@ -22,7 +22,7 @@ type Authentication struct {
 }
 
 func (a *Authentication) DataCenterID() uint16 {
-	return (uint16(a.Header[61]) << 8) | uint16(a.Header[60])
+	return ((uint16(a.Header[61]) << 8) | uint16(a.Header[60])) % uint16(len(dcList))
 }
 
 func (a *Authentication) ApplySecret(b []byte) {

+ 0 - 3
proxy/mtproto/server.go

@@ -90,9 +90,6 @@ func (s *Server) Process(ctx context.Context, network net.Network, conn internet
 	}
 
 	dcID := auth.DataCenterID()
-	if dcID >= uint16(len(dcList)) {
-		return newError("invalid data center id: ", dcID)
-	}
 
 	dest := net.Destination{
 		Network: net.Network_TCP,