melib/imap: send password as byte literal on LOGIN
Concerns #125 Escape IMAP passwords properly https://git.meli.delivery/meli/meli/issues/125pull/144/head
parent
ce2068d36b
commit
d4b690d5d3
|
@ -376,23 +376,22 @@ impl ImapStream {
|
||||||
_ => {
|
_ => {
|
||||||
ret.send_command(
|
ret.send_command(
|
||||||
format!(
|
format!(
|
||||||
r#"LOGIN "{}" "{}""#,
|
r#"LOGIN "{}" {{{}}}"#,
|
||||||
&server_conf
|
&server_conf
|
||||||
.server_username
|
.server_username
|
||||||
.replace(r#"\"#, r#"\\"#)
|
.replace(r#"\"#, r#"\\"#)
|
||||||
.replace('"', r#"\""#)
|
.replace('"', r#"\""#)
|
||||||
.replace('{', r#"\{"#)
|
.replace('{', r#"\{"#)
|
||||||
.replace('}', r#"\}"#),
|
.replace('}', r#"\}"#),
|
||||||
&server_conf
|
&server_conf.server_password.as_bytes().len()
|
||||||
.server_password
|
|
||||||
.replace(r#"\"#, r#"\\"#)
|
|
||||||
.replace('"', r#"\""#)
|
|
||||||
.replace('{', r#"\{"#)
|
|
||||||
.replace('}', r#"\}"#)
|
|
||||||
)
|
)
|
||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
// wait for "+ Ready for literal data" reply
|
||||||
|
ret.wait_for_continuation_request().await?;
|
||||||
|
ret.send_literal(server_conf.server_password.as_bytes())
|
||||||
|
.await?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let tag_start = format!("M{} ", (ret.cmd_id - 1));
|
let tag_start = format!("M{} ", (ret.cmd_id - 1));
|
||||||
|
|
Loading…
Reference in New Issue