Skip to content

Commit 5eb929c

Browse files
Resolve Source Engine Protocol issue
1 parent 35a0598 commit 5eb929c

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

opengsq/protocols/source.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -101,24 +101,26 @@ def __parse_from_info_src(self, br: BinaryReader) -> SourceInfo:
101101
info["duration"] = br.read_byte()
102102

103103
info["version"] = br.read_string()
104-
edf = ExtraDataFlag(br.read_byte())
105-
info["edf"] = edf
106104

107-
if edf.has_flag(ExtraDataFlag.Port):
108-
info["port"] = br.read_short()
105+
if not br.is_end():
106+
edf = ExtraDataFlag(br.read_byte())
107+
info["edf"] = edf
109108

110-
if edf.has_flag(ExtraDataFlag.SteamID):
111-
info["steam_id"] = br.read_long_long()
109+
if edf.has_flag(ExtraDataFlag.Port):
110+
info["port"] = br.read_short()
112111

113-
if edf.has_flag(ExtraDataFlag.Spectator):
114-
info["spectator_port"] = br.read_short()
115-
info["spectator_name"] = br.read_string()
112+
if edf.has_flag(ExtraDataFlag.SteamID):
113+
info["steam_id"] = br.read_long_long()
116114

117-
if edf.has_flag(ExtraDataFlag.Keywords):
118-
info["keywords"] = br.read_string()
115+
if edf.has_flag(ExtraDataFlag.Spectator):
116+
info["spectator_port"] = br.read_short()
117+
info["spectator_name"] = br.read_string()
119118

120-
if edf.has_flag(ExtraDataFlag.GameID):
121-
info["game_id"] = br.read_long_long()
119+
if edf.has_flag(ExtraDataFlag.Keywords):
120+
info["keywords"] = br.read_string()
121+
122+
if edf.has_flag(ExtraDataFlag.GameID):
123+
info["game_id"] = br.read_long_long()
122124

123125
return SourceInfo(**info)
124126

opengsq/responses/source/source_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class SourceInfo(PartialInfo):
1616
version: str
1717
"""Version of the game installed on the server."""
1818

19-
edf: ExtraDataFlag
19+
edf: Optional[ExtraDataFlag] = None
2020
"""If present, this specifies which additional data fields will be included."""
2121

2222
port: Optional[int] = None

opengsq/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '3.0.8'
1+
__version__ = '3.0.9'

0 commit comments

Comments
 (0)