فهرست منبع

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 سال پیش
والد
کامیت
23c1d2ea21
2فایلهای تغییر یافته به همراه5 افزوده شده و 6 حذف شده
  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{
 			NewEvil: recipSess.Warning(),
 			TLVUserInfo: wire.TLVUserInfo{
-				ScreenName:   sess.IdentScreenName().String(),
-				WarningLevel: recipSess.Warning(),
+				ScreenName:   sess.DisplayScreenName().String(),
+				WarningLevel: sess.Warning(),
 			},
 		}
 	} 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",
 			blockedState:        state.BlockedNo,
-			senderSession:       newTestSession("sender-screen-name"),
+			senderSession:       newTestSession("sender-screen-name", sessOptWarning(110)),
 			recipientSession:    newTestSession("recipient-screen-name", sessOptCannedSignonTime),
 			recipientScreenName: state.NewIdentScreenName("recipient-screen-name"),
 			inputSNAC: wire.SNACMessage{
@@ -440,7 +440,7 @@ func TestICBMService_EvilRequest(t *testing.T) {
 					NewEvil: evilDelta,
 					TLVUserInfo: wire.TLVUserInfo{
 						ScreenName:   "sender-screen-name",
-						WarningLevel: 100,
+						WarningLevel: 110,
 					},
 				},
 			},
@@ -626,10 +626,9 @@ func TestICBMService_EvilRequest(t *testing.T) {
 			//
 			// send input SNAC
 			//
-			senderSession := newTestSession(tc.senderSession.DisplayScreenName())
 			svc := NewICBMService(messageRelayer, feedbagManager, nil)
 			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))
 			assert.NoError(t, err)
 			assert.Equal(t, tc.expectOutput, outputSNAC)