It appears that the USER command parser is not expecting the USER user 0 * :name format, and instead just USER user 0 :name. All clients I can find send the four-arg version of this, and both IRC specs list it.
It doesn't even round-trip through this crate:
#[test]
fn user_round_trip() {
let cmd = Command::USER("a".to_string(), "b".to_string(), "c".to_string());
let line = Message::from(cmd.clone()).to_string();
let returned_cmd = line.parse::<Message>().unwrap().command;
assert_eq!(cmd, returned_cmd);
}
It appears that the USER command parser is not expecting the
USER user 0 * :name
format, and instead justUSER user 0 :name
. All clients I can find send the four-arg version of this, and both IRC specs list it.It doesn't even round-trip through this crate:
I'd expect to get the original
USER
object back from this round trip.