diff -r 6843c4551cde -r 06672690d71b rust/hedgewars-server/src/utils.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rust/hedgewars-server/src/utils.rs Mon Dec 10 22:44:46 2018 +0100 @@ -0,0 +1,67 @@ +use std::iter::Iterator; +use mio; +use base64::{encode}; + +pub const PROTOCOL_VERSION : u32 = 3; +pub const SERVER: mio::Token = mio::Token(1_000_000_000); + +pub fn is_name_illegal(name: &str ) -> bool{ + name.len() > 40 || + name.trim().is_empty() || + name.chars().any(|c| + "$()*+?[]^{|}\x7F".contains(c) || + '\x00' <= c && c <= '\x1F') +} + +pub fn to_engine_msg(msg: T) -> String + where T: Iterator + Clone +{ + let mut tmp = Vec::new(); + tmp.push(msg.clone().count() as u8); + tmp.extend(msg); + encode(&tmp) +} + +pub fn protocol_version_string(protocol_number: u16) -> &'static str { + match protocol_number { + 17 => "0.9.7-dev", + 19 => "0.9.7", + 20 => "0.9.8-dev", + 21 => "0.9.8", + 22 => "0.9.9-dev", + 23 => "0.9.9", + 24 => "0.9.10-dev", + 25 => "0.9.10", + 26 => "0.9.11-dev", + 27 => "0.9.11", + 28 => "0.9.12-dev", + 29 => "0.9.12", + 30 => "0.9.13-dev", + 31 => "0.9.13", + 32 => "0.9.14-dev", + 33 => "0.9.14", + 34 => "0.9.15-dev", + 35 => "0.9.14.1", + 37 => "0.9.15", + 38 => "0.9.16-dev", + 39 => "0.9.16", + 40 => "0.9.17-dev", + 41 => "0.9.17", + 42 => "0.9.18-dev", + 43 => "0.9.18", + 44 => "0.9.19-dev", + 45 => "0.9.19", + 46 => "0.9.20-dev", + 47 => "0.9.20", + 48 => "0.9.21-dev", + 49 => "0.9.21", + 50 => "0.9.22-dev", + 51 => "0.9.22", + 52 => "0.9.23-dev", + 53 => "0.9.23", + 54 => "0.9.24-dev", + 55 => "0.9.24", + 56 => "0.9.25-dev", + _ => "Unknown" + } +} \ No newline at end of file