raknet_rust/handshake/
reject.rs1use bytes::Buf;
2
3use crate::error::DecodeError;
4use crate::protocol::codec::RaknetCodec;
5use crate::protocol::constants::Magic;
6
7#[derive(Debug, Clone)]
8pub struct ConnectionRequestFailed {
9 pub server_guid: u64,
10 pub magic: Magic,
11}
12
13#[derive(Debug, Clone)]
14pub struct AlreadyConnected {
15 pub server_guid: u64,
16 pub magic: Magic,
17}
18
19#[derive(Debug, Clone)]
20pub struct NoFreeIncomingConnections {
21 pub server_guid: u64,
22 pub magic: Magic,
23}
24
25#[derive(Debug, Clone)]
26pub struct ConnectionBanned {
27 pub server_guid: u64,
28 pub magic: Magic,
29}
30
31#[derive(Debug, Clone)]
32pub struct IpRecentlyConnected {
33 pub server_guid: u64,
34 pub magic: Magic,
35}
36
37pub(super) fn decode_reject_packet(
38 src: &mut impl Buf,
39 expected_magic: Magic,
40) -> Result<(Magic, u64), DecodeError> {
41 let magic = super::validate_magic(Magic::decode_raknet(src)?, expected_magic)?;
42 let server_guid = u64::decode_raknet(src)?;
43 Ok((magic, server_guid))
44}