mirror of
https://github.com/tribufu/rust-gamedig
synced 2026-05-06 15:27:28 +00:00
* tidy: Move TimeoutSettings out of protocol types * tidy: Move game type to a types file * tidy: Move generic query functions to own file * tidy: Move ExtraRequestSettings to game types * tidy: Move generic query functions into games module * Revert "tidy: Move ExtraRequestSettings to game types" This reverts commit aa0d23fc2acc12d68f03265a9caff6f98bf25054. * Revert "tidy: Move TimeoutSettings out of protocol types" This reverts commit 7ee10711ed11f17cc06565d4cc9102040d53a319. * tidy: Re-export types needed for query at the root * Add/Update badge --------- Co-authored-by: GitHub Action <action@github.com>
35 lines
1.2 KiB
Rust
35 lines
1.2 KiB
Rust
use gamedig::protocols::valve;
|
|
use gamedig::protocols::valve::{Engine, GatheringSettings};
|
|
use gamedig::TimeoutSettings;
|
|
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
|
use std::time::Duration;
|
|
|
|
fn main() {
|
|
let address = &SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 27015);
|
|
let engine = Engine::Source(None); // We don't specify a steam app id, let the query try to find it.
|
|
let gather_settings = GatheringSettings {
|
|
players: true, // We want to query for players
|
|
rules: false, // We don't want to query for rules
|
|
check_app_id: false, // Loosen up the query a bit by not checking app id
|
|
};
|
|
|
|
let read_timeout = Duration::from_secs(2);
|
|
let write_timeout = Duration::from_secs(3);
|
|
let connect_timeout = Duration::from_secs(4);
|
|
let retries = 1; // does another request if the first one fails.
|
|
let timeout_settings = TimeoutSettings::new(
|
|
Some(read_timeout),
|
|
Some(write_timeout),
|
|
Some(connect_timeout),
|
|
retries,
|
|
)
|
|
.unwrap();
|
|
|
|
let response = valve::query(
|
|
address,
|
|
engine,
|
|
Some(gather_settings),
|
|
Some(timeout_settings),
|
|
);
|
|
println!("{response:#?}");
|
|
}
|