# HG changeset patch # User unc0rr # Date 1484767421 -10800 # Node ID 7e259e47eb0dc57a177491706442814812723180 # Parent f3121d7dedec8d75af4d7ac08b079bfb54661a7f Fix malformed messages parsing diff -r f3121d7dedec -r 7e259e47eb0d gameServer2/src/protocol/parser.rs --- a/gameServer2/src/protocol/parser.rs Wed Jan 18 22:15:55 2017 +0300 +++ b/gameServer2/src/protocol/parser.rs Wed Jan 18 22:23:41 2017 +0300 @@ -111,9 +111,9 @@ | one_param_message | cmd_message | complex_message - | malformed_message ), end_of_message ) + | terminated!(malformed_message, end_of_message) | empty_message ) ); @@ -131,6 +131,8 @@ assert_eq!(message(b"CMD\nwatch\ndemo\n\n"), IResult::Done(&b""[..], Watch("demo"))); assert_eq!(message(b"BAN\nme\nbad\n77\n\n"), IResult::Done(&b""[..], Ban("me", "bad", 77))); + assert_eq!(extract_messages(b"QUIT\n1\n2\n\n"), IResult::Done(&b""[..], vec![Malformed])); + assert_eq!(extract_messages(b"PING\n\nPING\n\nP"), IResult::Done(&b"P"[..], vec![Ping, Ping])); assert_eq!(extract_messages(b"SING\n\nPING\n\n"), IResult::Done(&b""[..], vec![Malformed, Ping])); assert_eq!(extract_messages(b"\n\n\n\nPING\n\n"), IResult::Done(&b""[..], vec![Empty, Empty, Ping]));