Page MenuHomeFeedback Tracker

Improve A2S_INFO response
Acknowledged, NormalPublic

Description

A2S_INFO for Reforger currently doesn't report the server's details properly (when compared with Arma 3):

  • DedicatedServerId instead of server name
  • The map is reported as stringtable ID of the mission instead of name of the map
  • Game is reported as "Arma Reforger", which in Arma 3 was used to report the name of the mission
  • Steam app ID is 0 (see T165275)

Details

Severity
None
Resolution
Open
Reproducibility
Always
Operating System
Windows 11 x64
Category
General
Steps To Reproduce

Python script for testing the responses:

import re
import socket

a2s_info_request = 'ÿÿÿÿTSource Engine Query\0'.encode('iso-8859-1')
a2s_info_pattern = re.compile(
    b'\xff{4}I.(?P<name>.*?)\x00(?P<world>.*?)'
    b'\x00.*?\x00(?P<mission>.*?)\x00{3}'
    b'(?P<player_count>.)(?P<max_player_count>.)',
    re.MULTILINE | re.DOTALL
)
buffer_size = 65535

for game, port in [('Arma 3', 2403), ('Reforger', 17777)]:
    address = ("88.198.47.46", port)
    client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    client.sendto(a2s_info_request, address)
    response, _ = client.recvfrom(buffer_size)
    challenge = a2s_info_request + response[-4:]
    client.sendto(challenge, address)
    response, _ = client.recvfrom(buffer_size)

    data = a2s_info_pattern.search(response).groupdict()
    data['player_count'] = int.from_bytes(data['player_count'], 'big')
    data['max_player_count'] = int.from_bytes(data['max_player_count'], 'big')
    print(game, data)

The current result is:

Arma 3 {'name': b'\xef\xbf\xbd [ ZEN ] Public Zeus Enhanced Server (EU) #01', 'world': b'Altis', 'mission': b'Zeus 20+1 Zeus Enhanced Altis (BLUFOR)', 'player_count': 0, 'max_player_count': 21}
Reforger {'name': b'29b200d8-b310-48bc-8215-a71dce270521', 'world': b'#AR-Campaign_GamemodeName', 'mission': b'Arma Reforger', 'player_count': 0, 'max_player_count': 32}

Event Timeline

ookexoo created this task.Apr 10 2023, 9:42 AM
ookexoo updated the task description. (Show Details)
ookexoo updated the task description. (Show Details)
Geez changed the task status from New to Assigned.Apr 12 2023, 11:14 AM
Geez changed the task status from Assigned to Acknowledged.Apr 12 2023, 12:01 PM
ookexoo edited Steps To Reproduce. (Show Details)May 14 2023, 4:29 PM

I think this ticket can be marked as resolved. The server name has been fixed in the recent update.