summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-12-23 20:01:25 +0100
committermetamuffin <metamuffin@disroot.org>2024-12-23 20:01:25 +0100
commitb64e360b26fcea45faaf4caf8d65db204efdd450 (patch)
treebcf98fca1d6ab2b3bce0cf625fefe8972e0d34ef /server
parent7538be2ee2005ae0073c4f821a4e9c2696608a9a (diff)
downloadhurrycurry-b64e360b26fcea45faaf4caf8d65db204efdd450.tar
hurrycurry-b64e360b26fcea45faaf4caf8d65db204efdd450.tar.bz2
hurrycurry-b64e360b26fcea45faaf4caf8d65db204efdd450.tar.zst
username length limit
Diffstat (limited to 'server')
-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"));