diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/protocol/Cargo.toml | 2 | ||||
-rw-r--r-- | server/src/main.rs | 2 | ||||
-rw-r--r-- | server/src/server.rs | 8 |
3 files changed, 8 insertions, 4 deletions
diff --git a/server/protocol/Cargo.toml b/server/protocol/Cargo.toml index 44533f9d..b6da120a 100644 --- a/server/protocol/Cargo.toml +++ b/server/protocol/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hurrycurry-protocol" -version = "7.5.0" +version = "8.0.0" edition = "2021" [dependencies] diff --git a/server/src/main.rs b/server/src/main.rs index 2d5ba390..7f3de073 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -248,7 +248,7 @@ async fn run(args: Args) -> anyhow::Result<()> { info!("{id:?} connected"); while let Some(Ok(message)) = read.next().await { let packet = match message { - Message::Text(line) => match serde_json::from_str(&line) { + Message::Text(line) if line.len() < 8196 => match serde_json::from_str(&line) { Ok(p) => p, Err(e) => { warn!("Invalid json packet: {e}"); diff --git a/server/src/server.rs b/server/src/server.rs index f59cd2b9..0889cd71 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -371,8 +371,12 @@ impl Server { id, class, } => { - if name.len() > 64 { - return Err(tre!("s.error.username_length_limit")); + if name.chars().count() > 32 || name.len() > 64 { + return Err(tre!( + "s.error.username_length_limit", + s = "32".to_string(), + s = "64".to_string() + )); } if self.game.players.len() > 64 { return Err(tre!("s.error.too_many_players")); |