rust/hedgewars-network-protocol/src/parser.rs
changeset 15811 a855f32ab3ca
parent 15810 ee84e417d8d0
child 15830 ea459da15b30
--- a/rust/hedgewars-network-protocol/src/parser.rs	Wed Jun 30 00:18:53 2021 +0200
+++ b/rust/hedgewars-network-protocol/src/parser.rs	Wed Jun 30 23:06:54 2021 +0200
@@ -200,6 +200,7 @@
         message("TOGGLE_RESTRICT_JOINS", ToggleRestrictJoin),
         message("TOGGLE_RESTRICT_TEAMS", ToggleRestrictTeams),
         message("TOGGLE_REGISTERED_ONLY", ToggleRegisteredOnly),
+        message("READY", CheckerReady),
     ))(input)
 }
 
@@ -231,6 +232,7 @@
         message("ROUNDFINISHED", opt_arg, |_| RoundFinished),
         message("PROTO\n", u16_line, Proto),
         message("QUIT", opt_arg, Quit),
+        message("CHECKED\nFAIL\n", a_line, CheckedFail),
     ))(input)
 }
 
@@ -482,7 +484,17 @@
                 |(nick, reason, time)| BanNick(nick, reason, time),
             ),
         ),
-    ))(input)
+        map(
+            preceded(
+                tag("CHECKED\nOK"),
+                alt((
+                    map(peek(end_of_message), |_| None),
+                    map(preceded(newline, separated_list0(newline, a_line)), Some),
+                )),
+            ),
+            |values| CheckedOk(values.unwrap_or_default()),
+        )
+))(input)
 }
 
 pub fn malformed_message(input: &[u8]) -> HwResult<()> {
@@ -653,6 +665,7 @@
                 list_message("EM", ForwardEngineMessage),
                 list_message("INFO", Info),
                 list_message("SERVER_VARS", ServerVars),
+                list_message("REPLAY", Replay),
             )),
         )),
         end_of_message,