ソースを参照

don't let users warn themselves

Mike 2 年 前
コミット
5a037d16da
1 ファイル変更13 行追加0 行削除
  1. 13 0
      oscar/icbm.go

+ 13 - 0
oscar/icbm.go

@@ -607,6 +607,19 @@ func SendAndReceiveEvilRequest(sm *SessionManager, fm *FeedbagStore, sess *Sessi
 		return err
 	}
 
+	// don't let users warn themselves, it causes the AIM client to go into a
+	// weird state.
+	if snacPayloadIn.screenName == sess.ScreenName {
+		snacFrameOut := snacFrame{
+			foodGroup: ICBM,
+			subGroup:  ICBMErr,
+		}
+		snacPayloadOut := &snacError{
+			code: ErrorCodeNotSupportedByHost,
+		}
+		return writeOutSNAC(snac, flap, snacFrameOut, snacPayloadOut, sequence, w)
+	}
+
 	blocked, err := fm.Blocked(sess.ScreenName, snacPayloadIn.screenName)
 	if err != nil {
 		return err