Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Formatting screenname with AIM 4.1 or lower causes it to sign off #69

Open
jgknight opened this issue Oct 7, 2024 · 1 comment
Open
Labels
bug Something isn't working

Comments

@jgknight
Copy link
Contributor

jgknight commented Oct 7, 2024

Subject of the Issue

When formatting screenname with an AIM client running 4.1 or 3.5, it appears successful but the client is disconnected due to a FLAPFrameSignoff.

Deployment Environment

  • Retro AIM Server Version: dev, c9edc69 . Also tried release binary of 0.11.0.
  • Installation Method: cross-built from source on MacOS targeting Linux/x86_64
  • Client(s) Used: AIM 4.1.2010 on XP, AIM 3.5.1808
  • Other Relevant Details:

Steps to Reproduce

  1. Sign on with AIM 4.1.2010, or 3.5.1808
  2. Format the screenname
  3. Observe that it appears successful - you get the success dialog box, but buddies will see it sign off and the server logs/pcap show the client disconnecting.

In a few cases I wouldn't even get the format screenname dialog box.

Expected Behavior

I do not expect the client to disconnect. Formatting works on client versions 4.2 or newer.

Actual Behavior

Client disconnects

Troubleshooting Data

In the trace logs I can see the AdminInfoChangeRequest come in and the server replies with the AdminInfoChangeReply which appears to cause the sign off. Perhaps the client is expecting something else in the response? I did try a change where the response does not include wire.AdminTLVScreenNameFormatted TLV but that did not fix the issue, the client appears to hang in that case.

time=2024-10-07T22:05:57.975Z level=DEBUG msg="accepted connection" svc=ADMIN ip=192.168.40.11:3439
time=2024-10-07T22:05:57.978Z level=TRACE msg="client request -> server response" svc=ADMIN request.food_group=OService request.sub_group=ClientVersions request.snac_frame="{FoodGroup:1 SubGroup:23 Flags:0 RequestID:59}" request.snac_payload="{Versions:[7 1 1 3]}" response.food_group=OService response.sub_group=OServiceHostVersions response.snac_frame="{FoodGroup:1 SubGroup:24 Flags:0 RequestID:59}" response.snac_payload="{Versions:[7 1 1 3]}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:05:57.979Z level=TRACE msg="client request -> server response" svc=ADMIN request.food_group=OService request.sub_group=OServiceRateParamsQuery request.snac_frame="{FoodGroup:1 SubGroup:6 Flags:0 RequestID:0}" request.snac_payload=<nil> response.food_group=OService response.sub_group=OServiceRateParamsReply response.snac_frame="{FoodGroup:1 SubGroup:7 Flags:0 RequestID:0}" response.snac_payload="{RateClasses:[{ID:1 WindowSize:80 ClearLevel:2500 AlertLevel:2000 LimitLevel:1500 DisconnectLevel:800 CurrentLevel:3433 MaxLevel:6000 LastTime:0 CurrentState:0}] RateGroups:[{ID:1 Pairs:[{FoodGroup:1 SubGroup:1} {FoodGroup:1 SubGroup:2} {FoodGroup:1 SubGroup:3} {FoodGroup:1 SubGroup:4} {FoodGroup:1 SubGroup:5} {FoodGroup:1 SubGroup:6} {FoodGroup:1 SubGroup:7} {FoodGroup:1 SubGroup:8} {FoodGroup:1 SubGroup:9} {FoodGroup:1 SubGroup:10} {FoodGroup:1 SubGroup:11} {FoodGroup:1 SubGroup:12} {FoodGroup:1 SubGroup:13} {FoodGroup:1 SubGroup:14} {FoodGroup:1 SubGroup:15} {FoodGroup:1 SubGroup:16} {FoodGroup:1 SubGroup:17} {FoodGroup:1 SubGroup:18} {FoodGroup:1 SubGroup:19} {FoodGroup:1 SubGroup:20} {FoodGroup:1 SubGroup:21} {FoodGroup:1 SubGroup:22} {FoodGroup:1 SubGroup:23} {FoodGroup:1 SubGroup:24} {FoodGroup:1 SubGroup:25} {FoodGroup:1 SubGroup:26} {FoodGroup:1 SubGroup:27} {FoodGroup:1 SubGroup:28} {FoodGroup:1 SubGroup:29} {FoodGroup:1 SubGroup:30} {FoodGroup:1 SubGroup:31} {FoodGroup:1 SubGroup:32} {FoodGroup:1 SubGroup:33} {FoodGroup:1 SubGroup:34} {FoodGroup:1 SubGroup:35} {FoodGroup:2 SubGroup:1} {FoodGroup:2 SubGroup:2} {FoodGroup:2 SubGroup:3} {FoodGroup:2 SubGroup:4} {FoodGroup:2 SubGroup:5} {FoodGroup:2 SubGroup:6} {FoodGroup:2 SubGroup:7} {FoodGroup:2 SubGroup:8} {FoodGroup:2 SubGroup:9} {FoodGroup:2 SubGroup:10} {FoodGroup:2 SubGroup:11} {FoodGroup:2 SubGroup:12} {FoodGroup:2 SubGroup:13} {FoodGroup:2 SubGroup:14} {FoodGroup:2 SubGroup:15} {FoodGroup:2 SubGroup:16} {FoodGroup:2 SubGroup:17} {FoodGroup:2 SubGroup:18} {FoodGroup:2 SubGroup:19} {FoodGroup:2 SubGroup:20} {FoodGroup:2 SubGroup:21} {FoodGroup:3 SubGroup:1} {FoodGroup:3 SubGroup:2} {FoodGroup:3 SubGroup:3} {FoodGroup:3 SubGroup:4} {FoodGroup:3 SubGroup:5} {FoodGroup:3 SubGroup:6} {FoodGroup:3 SubGroup:7} {FoodGroup:3 SubGroup:8} {FoodGroup:3 SubGroup:9} {FoodGroup:3 SubGroup:10} {FoodGroup:3 SubGroup:11} {FoodGroup:3 SubGroup:12} {FoodGroup:3 SubGroup:15} {FoodGroup:3 SubGroup:16} {FoodGroup:4 SubGroup:1} {FoodGroup:4 SubGroup:2} {FoodGroup:4 SubGroup:3} {FoodGroup:4 SubGroup:4} {FoodGroup:4 SubGroup:5} {FoodGroup:4 SubGroup:6} {FoodGroup:4 SubGroup:7} {FoodGroup:4 SubGroup:8} {FoodGroup:4 SubGroup:9} {FoodGroup:4 SubGroup:10} {FoodGroup:4 SubGroup:11} {FoodGroup:4 SubGroup:12} {FoodGroup:4 SubGroup:13} {FoodGroup:4 SubGroup:14} {FoodGroup:4 SubGroup:15} {FoodGroup:4 SubGroup:16} {FoodGroup:4 SubGroup:17} {FoodGroup:4 SubGroup:18} {FoodGroup:4 SubGroup:19} {FoodGroup:4 SubGroup:20} {FoodGroup:4 SubGroup:23} {FoodGroup:13 SubGroup:1} {FoodGroup:13 SubGroup:2} {FoodGroup:13 SubGroup:3} {FoodGroup:13 SubGroup:4} {FoodGroup:13 SubGroup:5} {FoodGroup:13 SubGroup:6} {FoodGroup:13 SubGroup:7} {FoodGroup:13 SubGroup:8} {FoodGroup:13 SubGroup:9} {FoodGroup:14 SubGroup:1} {FoodGroup:14 SubGroup:2} {FoodGroup:14 SubGroup:3} {FoodGroup:14 SubGroup:4} {FoodGroup:14 SubGroup:5} {FoodGroup:14 SubGroup:6} {FoodGroup:14 SubGroup:7} {FoodGroup:14 SubGroup:8} {FoodGroup:14 SubGroup:9} {FoodGroup:14 SubGroup:10} {FoodGroup:14 SubGroup:11} {FoodGroup:14 SubGroup:12} {FoodGroup:14 SubGroup:13} {FoodGroup:14 SubGroup:14} {FoodGroup:14 SubGroup:15} {FoodGroup:14 SubGroup:16} {FoodGroup:14 SubGroup:17} {FoodGroup:14 SubGroup:18} {FoodGroup:14 SubGroup:19} {FoodGroup:14 SubGroup:20} {FoodGroup:14 SubGroup:21} {FoodGroup:14 SubGroup:22} {FoodGroup:14 SubGroup:23} {FoodGroup:14 SubGroup:24} {FoodGroup:14 SubGroup:25} {FoodGroup:14 SubGroup:26} {FoodGroup:14 SubGroup:27} {FoodGroup:14 SubGroup:28} {FoodGroup:14 SubGroup:29} {FoodGroup:14 SubGroup:30} {FoodGroup:14 SubGroup:31} {FoodGroup:14 SubGroup:32} {FoodGroup:14 SubGroup:33} {FoodGroup:14 SubGroup:34} {FoodGroup:14 SubGroup:35} {FoodGroup:14 SubGroup:36} {FoodGroup:14 SubGroup:37} {FoodGroup:14 SubGroup:38} {FoodGroup:14 SubGroup:39} {FoodGroup:14 SubGroup:40} {FoodGroup:14 SubGroup:41} {FoodGroup:14 SubGroup:48} {FoodGroup:16 SubGroup:1} {FoodGroup:16 SubGroup:2} {FoodGroup:16 SubGroup:3} {FoodGroup:16 SubGroup:4} {FoodGroup:16 SubGroup:5} {FoodGroup:16 SubGroup:6} {FoodGroup:16 SubGroup:7} {FoodGroup:19 SubGroup:1} {FoodGroup:19 SubGroup:2} {FoodGroup:19 SubGroup:3} {FoodGroup:19 SubGroup:4} {FoodGroup:19 SubGroup:5} {FoodGroup:19 SubGroup:6} {FoodGroup:19 SubGroup:7} {FoodGroup:19 SubGroup:8} {FoodGroup:19 SubGroup:9} {FoodGroup:19 SubGroup:10} {FoodGroup:19 SubGroup:11} {FoodGroup:19 SubGroup:12} {FoodGroup:19 SubGroup:13} {FoodGroup:19 SubGroup:14} {FoodGroup:19 SubGroup:15} {FoodGroup:19 SubGroup:16} {FoodGroup:19 SubGroup:17} {FoodGroup:19 SubGroup:18} {FoodGroup:19 SubGroup:19} {FoodGroup:19 SubGroup:20} {FoodGroup:19 SubGroup:21} {FoodGroup:19 SubGroup:22} {FoodGroup:19 SubGroup:23} {FoodGroup:19 SubGroup:24} {FoodGroup:19 SubGroup:25} {FoodGroup:19 SubGroup:26} {FoodGroup:19 SubGroup:27} {FoodGroup:19 SubGroup:28} {FoodGroup:19 SubGroup:29} {FoodGroup:19 SubGroup:30} {FoodGroup:19 SubGroup:31} {FoodGroup:19 SubGroup:33} {FoodGroup:19 SubGroup:34} {FoodGroup:19 SubGroup:35} {FoodGroup:19 SubGroup:36} {FoodGroup:19 SubGroup:37} {FoodGroup:23 SubGroup:1} {FoodGroup:23 SubGroup:2} {FoodGroup:23 SubGroup:3} {FoodGroup:23 SubGroup:4} {FoodGroup:23 SubGroup:6} {FoodGroup:23 SubGroup:7} {FoodGroup:23 SubGroup:8} {FoodGroup:23 SubGroup:10} {FoodGroup:23 SubGroup:12} {FoodGroup:24 SubGroup:1} {FoodGroup:24 SubGroup:2} {FoodGroup:24 SubGroup:3} {FoodGroup:24 SubGroup:4} {FoodGroup:24 SubGroup:5} {FoodGroup:24 SubGroup:6} {FoodGroup:24 SubGroup:7} {FoodGroup:24 SubGroup:8} {FoodGroup:24 SubGroup:9} {FoodGroup:24 SubGroup:10} {FoodGroup:24 SubGroup:11} {FoodGroup:24 SubGroup:13} {FoodGroup:24 SubGroup:14} {FoodGroup:24 SubGroup:15} {FoodGroup:24 SubGroup:16} {FoodGroup:24 SubGroup:17} {FoodGroup:24 SubGroup:18} {FoodGroup:24 SubGroup:19} {FoodGroup:24 SubGroup:20} {FoodGroup:24 SubGroup:21} {FoodGroup:24 SubGroup:22} {FoodGroup:24 SubGroup:23} {FoodGroup:21 SubGroup:1} {FoodGroup:21 SubGroup:2} {FoodGroup:21 SubGroup:3} {FoodGroup:9 SubGroup:1} {FoodGroup:9 SubGroup:2} {FoodGroup:9 SubGroup:3} {FoodGroup:9 SubGroup:4} {FoodGroup:9 SubGroup:5} {FoodGroup:9 SubGroup:6} {FoodGroup:9 SubGroup:7} {FoodGroup:9 SubGroup:8} {FoodGroup:9 SubGroup:9} {FoodGroup:9 SubGroup:10} {FoodGroup:9 SubGroup:11} {FoodGroup:15 SubGroup:1} {FoodGroup:15 SubGroup:2} {FoodGroup:15 SubGroup:3} {FoodGroup:15 SubGroup:4} {FoodGroup:15 SubGroup:5}]}]}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:05:57.981Z level=TRACE msg="client request" svc=ADMIN request.food_group=OService request.sub_group=OServiceRateParamsSubAdd request.snac_frame="{FoodGroup:1 SubGroup:8 Flags:0 RequestID:0}" request.snac_payload={TLVRestBlock:{TLVList:[]}} screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:05:58.029Z level=INFO msg="user signed on" svc=ADMIN screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:05:58.030Z level=TRACE msg="client request" svc=ADMIN request.food_group=OService request.sub_group=OServiceClientOnline request.snac_frame="{FoodGroup:1 SubGroup:2 Flags:0 RequestID:60}" request.snac_payload="{GroupVersions:[{FoodGroup:7 Version:1 ToolID:4 ToolVersion:1} {FoodGroup:1 Version:3 ToolID:4 ToolVersion:2010}]}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:05:58.030Z level=DEBUG msg="client is online" svc=ADMIN group_versions="[{FoodGroup:7 Version:1 ToolID:4 ToolVersion:1} {FoodGroup:1 Version:3 ToolID:4 ToolVersion:2010}]" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:06:01.249Z level=TRACE msg="client request" svc=BOS request.food_group=Buddy request.sub_group=BuddyArrived request.snac_frame="{FoodGroup:3 SubGroup:11 Flags:0 RequestID:0}" request.snac_payload="{TLVUserInfo:{ScreenName:test41 WarningLevel:0 TLVBlock:{TLVList:[{Tag:3 Value:[103 4 91 64]} {Tag:1 Value:[0 17]} {Tag:6 Value:[0 0 0 0]} {Tag:13 Value:[9 70 19 70 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 69 76 127 17 209 130 34 68 69 83 84 0 0 116 143 36 32 98 135 17 209 130 34 68 69 83 84 0 0 9 70 19 72 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 67 76 127 17 209 130 34 68 69 83 84 0 0]}]}}}" screenName=test41 ip=192.168.40.11:3436
time=2024-10-07T22:06:01.250Z level=TRACE msg="client request" svc=BOS request.food_group=Buddy request.sub_group=BuddyArrived request.snac_frame="{FoodGroup:3 SubGroup:11 Flags:0 RequestID:0}" request.snac_payload="{TLVUserInfo:{ScreenName:test41 WarningLevel:0 TLVBlock:{TLVList:[{Tag:3 Value:[103 4 91 64]} {Tag:1 Value:[0 17]} {Tag:6 Value:[0 0 0 0]} {Tag:13 Value:[9 70 19 70 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 69 76 127 17 209 130 34 68 69 83 84 0 0 116 143 36 32 98 135 17 209 130 34 68 69 83 84 0 0 9 70 19 72 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 67 76 127 17 209 130 34 68 69 83 84 0 0]}]}}}" screenName=test41 ip=192.168.40.11:3436
time=2024-10-07T22:06:01.250Z level=TRACE msg="client request" svc=BOS request.food_group=OService request.sub_group=OServiceUserInfoUpdate request.snac_frame="{FoodGroup:1 SubGroup:15 Flags:0 RequestID:0}" request.snac_payload="{TLVUserInfo:{ScreenName:test41 WarningLevel:0 TLVBlock:{TLVList:[{Tag:3 Value:[103 4 91 64]} {Tag:1 Value:[0 17]} {Tag:6 Value:[0 0 0 0]} {Tag:13 Value:[9 70 19 70 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 69 76 127 17 209 130 34 68 69 83 84 0 0 116 143 36 32 98 135 17 209 130 34 68 69 83 84 0 0 9 70 19 72 76 127 17 209 130 34 68 69 83 84 0 0 9 70 19 67 76 127 17 209 130 34 68 69 83 84 0 0]}]}}}" screenName=test41 ip=192.168.40.11:3436
time=2024-10-07T22:06:01.250Z level=TRACE msg="client request -> server response" svc=ADMIN request.food_group=Admin request.sub_group=AdminInfoChangeRequest request.snac_frame="{FoodGroup:7 SubGroup:4 Flags:0 RequestID:459777}" request.snac_payload=<nil> response.food_group=Admin response.sub_group=AdminInfoChangeReply response.snac_frame="{FoodGroup:7 SubGroup:5 Flags:0 RequestID:459777}" response.snac_payload="{Permissions:3 TLVBlock:{TLVList:[{Tag:1 Value:[116 101 115 116 52 49]}]}}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:06:01.260Z level=INFO msg="got FLAPFrameSignoff" svc=ADMIN flap="{StartMarker:42 FrameType:4 Sequence:32562 Payload:[]}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:06:01.260Z level=INFO msg="user disconnected" svc=ADMIN screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:06:01.261Z level=WARN msg="can't send notification because the user's session is closed" recipient=test41 message="{Frame:{FoodGroup:3 SubGroup:12 Flags:0 RequestID:0} Body:{TLVUserInfo:{ScreenName:test41 WarningLevel:0 TLVBlock:{TLVList:[{Tag:1 Value:[0 0]}]}}}}" screenName=test41 ip=192.168.40.11:3439
time=2024-10-07T22:06:01.261Z level=INFO msg="user disconnected" svc=BOS screenName=test41 ip=192.168.40.11:3436
@jgknight jgknight added the bug Something isn't working label Oct 7, 2024
@mk6i
Copy link
Owner

mk6i commented Oct 14, 2024

Fixed in 21e249f

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants