Browse Source

Use DisplayScreenName when sending an evil notification

According to OSCAR docs we should be sending the formatted screen name
in the evil notification snac.  Also we were incorrectly sending the
warning level of recipient instead of the sender in the sender's
TLVUserInfo block.
Josh Knight 2 năm trước cách đây
mục cha
commit
23c1d2ea21
2 tập tin đã thay đổi với 5 bổ sung và 6 xóa
  1. 2 2
      foodgroup/icbm.go
  2. 3 4
      foodgroup/icbm_test.go

+ 2 - 2
foodgroup/icbm.go

@@ -238,8 +238,8 @@ func (s ICBMService) EvilRequest(ctx context.Context, sess *state.Session, inFra
 		notif = wire.SNAC_0x01_0x10_OServiceEvilNotification{
 		notif = wire.SNAC_0x01_0x10_OServiceEvilNotification{
 			NewEvil: recipSess.Warning(),
 			NewEvil: recipSess.Warning(),
 			TLVUserInfo: wire.TLVUserInfo{
 			TLVUserInfo: wire.TLVUserInfo{
-				ScreenName:   sess.IdentScreenName().String(),
-				WarningLevel: recipSess.Warning(),
+				ScreenName:   sess.DisplayScreenName().String(),
+				WarningLevel: sess.Warning(),
 			},
 			},
 		}
 		}
 	} else {
 	} else {

+ 3 - 4
foodgroup/icbm_test.go

@@ -419,7 +419,7 @@ func TestICBMService_EvilRequest(t *testing.T) {
 		{
 		{
 			name:                "transmit non-anonymous warning from sender to recipient",
 			name:                "transmit non-anonymous warning from sender to recipient",
 			blockedState:        state.BlockedNo,
 			blockedState:        state.BlockedNo,
-			senderSession:       newTestSession("sender-screen-name"),
+			senderSession:       newTestSession("sender-screen-name", sessOptWarning(110)),
 			recipientSession:    newTestSession("recipient-screen-name", sessOptCannedSignonTime),
 			recipientSession:    newTestSession("recipient-screen-name", sessOptCannedSignonTime),
 			recipientScreenName: state.NewIdentScreenName("recipient-screen-name"),
 			recipientScreenName: state.NewIdentScreenName("recipient-screen-name"),
 			inputSNAC: wire.SNACMessage{
 			inputSNAC: wire.SNACMessage{
@@ -440,7 +440,7 @@ func TestICBMService_EvilRequest(t *testing.T) {
 					NewEvil: evilDelta,
 					NewEvil: evilDelta,
 					TLVUserInfo: wire.TLVUserInfo{
 					TLVUserInfo: wire.TLVUserInfo{
 						ScreenName:   "sender-screen-name",
 						ScreenName:   "sender-screen-name",
-						WarningLevel: 100,
+						WarningLevel: 110,
 					},
 					},
 				},
 				},
 			},
 			},
@@ -626,10 +626,9 @@ func TestICBMService_EvilRequest(t *testing.T) {
 			//
 			//
 			// send input SNAC
 			// send input SNAC
 			//
 			//
-			senderSession := newTestSession(tc.senderSession.DisplayScreenName())
 			svc := NewICBMService(messageRelayer, feedbagManager, nil)
 			svc := NewICBMService(messageRelayer, feedbagManager, nil)
 			svc.buddyUpdateBroadcaster = buddyUpdateBroadcaster
 			svc.buddyUpdateBroadcaster = buddyUpdateBroadcaster
-			outputSNAC, err := svc.EvilRequest(nil, senderSession, tc.inputSNAC.Frame,
+			outputSNAC, err := svc.EvilRequest(nil, tc.senderSession, tc.inputSNAC.Frame,
 				tc.inputSNAC.Body.(wire.SNAC_0x04_0x08_ICBMEvilRequest))
 				tc.inputSNAC.Body.(wire.SNAC_0x04_0x08_ICBMEvilRequest))
 			assert.NoError(t, err)
 			assert.NoError(t, err)
 			assert.Equal(t, tc.expectOutput, outputSNAC)
 			assert.Equal(t, tc.expectOutput, outputSNAC)