Просмотр исходного кода

Merge pull request #173 from siohaza/mra

fix: echo back requestid for MRA
Mike 4 месяцев назад
Родитель
Сommit
873deecbaa
2 измененных файлов с 6 добавлено и 2 удалено
  1. 2 0
      server/oscar/server.go
  2. 4 2
      server/oscar/server_test.go

+ 2 - 0
server/oscar/server.go

@@ -501,6 +501,7 @@ func (s oscarServer) processBUCPAuth(ctx context.Context, flapc *wire.FlapClient
 				if err != nil {
 					return err
 				}
+				outSNAC.Frame.RequestID = fr.RequestID
 				if err := flapc.SendSNAC(outSNAC.Frame, outSNAC.Body); err != nil {
 					return err
 				}
@@ -519,6 +520,7 @@ func (s oscarServer) processBUCPAuth(ctx context.Context, flapc *wire.FlapClient
 				if err != nil {
 					return err
 				}
+				outSNAC.Frame.RequestID = fr.RequestID
 
 				loginResp := outSNAC.Body.(wire.SNAC_0x17_0x03_BUCPLoginResponse)
 

+ 4 - 2
server/oscar/server_test.go

@@ -179,6 +179,7 @@ func TestOscarServer_RouteConnection_Auth_BUCP(t *testing.T) {
 		frame := wire.SNACFrame{
 			FoodGroup: wire.BUCP,
 			SubGroup:  wire.BUCPChallengeRequest,
+			RequestID: 4,
 		}
 		bodyIn := wire.SNAC_0x17_0x06_BUCPChallengeRequest{}
 		assert.NoError(t, flapc.SendSNAC(frame, bodyIn))
@@ -186,7 +187,7 @@ func TestOscarServer_RouteConnection_Auth_BUCP(t *testing.T) {
 		// < receive SNAC_0x17_0x07_BUCPChallengeResponse
 		frame = wire.SNACFrame{}
 		assert.NoError(t, flapc.ReceiveSNAC(&frame, &wire.SNAC_0x17_0x07_BUCPChallengeResponse{}))
-		assert.Equal(t, wire.SNACFrame{FoodGroup: wire.BUCP, SubGroup: wire.BUCPChallengeResponse}, frame)
+		assert.Equal(t, wire.SNACFrame{FoodGroup: wire.BUCP, SubGroup: wire.BUCPChallengeResponse, RequestID: 4}, frame)
 
 		// > send keep alive frame (like BSFlite does mid-login)
 		assert.NoError(t, flapc.SendKeepAliveFrame())
@@ -195,13 +196,14 @@ func TestOscarServer_RouteConnection_Auth_BUCP(t *testing.T) {
 		frame = wire.SNACFrame{
 			FoodGroup: wire.BUCP,
 			SubGroup:  wire.BUCPLoginRequest,
+			RequestID: 5,
 		}
 		assert.NoError(t, flapc.SendSNAC(frame, wire.SNAC_0x17_0x02_BUCPLoginRequest{}))
 
 		// < receive SNAC_0x17_0x03_BUCPLoginResponse
 		frame = wire.SNACFrame{}
 		assert.NoError(t, flapc.ReceiveSNAC(&frame, &wire.SNAC_0x17_0x03_BUCPLoginResponse{}))
-		assert.Equal(t, wire.SNACFrame{FoodGroup: wire.BUCP, SubGroup: wire.BUCPLoginResponse}, frame)
+		assert.Equal(t, wire.SNACFrame{FoodGroup: wire.BUCP, SubGroup: wire.BUCPLoginResponse, RequestID: 5}, frame)
 
 		// < receive FLAPSignoffFrame (server sends this after SNAC for Kopete compatibility)
 		flap = wire.FLAPFrame{}