in core/src/services/ftp/err.rs [25:48]
fn from(e: FtpError) -> Self {
let (kind, retryable) = match e {
// Allow retry for error
//
// `{ status: NotAvailable, body: "421 There are too many connections from your internet address." }`
FtpError::UnexpectedResponse(ref resp) if resp.status == Status::NotAvailable => {
(ErrorKind::Unexpected, true)
}
FtpError::UnexpectedResponse(ref resp) if resp.status == Status::FileUnavailable => {
(ErrorKind::NotFound, false)
}
// Allow retry bad response.
FtpError::BadResponse => (ErrorKind::Unexpected, true),
_ => (ErrorKind::Unexpected, false),
};
let mut err = Error::new(kind, "ftp error").set_source(e);
if retryable {
err = err.set_temporary();
}
err
}