protocol: parse dedicated field in server info packet

This commit is contained in:
Denis Drakhnia 2024-01-17 17:22:27 +02:00
parent a5dacb1b2e
commit 13a545be25
1 changed files with 5 additions and 0 deletions

View File

@ -450,6 +450,8 @@ pub struct GetServerInfoResponse<T> {
pub coop: bool,
/// Server is behind a password.
pub password: bool,
/// Server is dedicated.
pub dedicated: bool,
}
impl GetServerInfoResponse<()> {
@ -495,6 +497,7 @@ where
b"gamedir" => ret.gamedir = cur.get_key_value()?,
b"password" => ret.password = cur.get_key_value()?,
b"host" => ret.host = cur.get_key_value()?,
b"dedicated" => ret.dedicated = cur.get_key_value()?,
_ => {
// skip unknown fields
let value = cur.get_key_value::<Str<&[u8]>>()?;
@ -528,6 +531,7 @@ where
.put_key("maxcl", self.maxcl)?
.put_key("gamedir", &self.gamedir)?
.put_key("password", self.password)?
.put_key("dedicated", self.dedicated)?
.put_key("host", &self.host)?
.pos())
}
@ -630,6 +634,7 @@ mod tests {
maxcl: 32,
gamedir: Str("valve".as_bytes()),
password: true,
dedicated: true,
host: Str("Test".as_bytes()),
};
let mut buf = [0; 512];