aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main.rs2
-rw-r--r--server/src/server.rs8
2 files changed, 7 insertions, 3 deletions
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 9928ac90..462e95d4 100644
--- a/server/src/server.rs
+++ b/server/src/server.rs
@@ -369,8 +369,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"));