Give more useful errors when connection through proxy fails
Before the fix anything other than 200 & 407 would throw an unhelpful `unsuccessful tunnel` error. After this change, - Explicit handling of 403, where the proxy forbids a connection. - All other responses will be part of the error message.
This commit is contained in:
committed by
Sean McArthur
parent
b2fd1cf4d5
commit
36f2b78122
@@ -458,8 +458,17 @@ where
|
|||||||
// else read more
|
// else read more
|
||||||
} else if read.starts_with(b"HTTP/1.1 407") {
|
} else if read.starts_with(b"HTTP/1.1 407") {
|
||||||
return Err(io::Error::new(io::ErrorKind::Other, "proxy authentication required"));
|
return Err(io::Error::new(io::ErrorKind::Other, "proxy authentication required"));
|
||||||
|
} else if read.starts_with(b"HTTP/1.1 403") {
|
||||||
|
return Err(io::Error::new(
|
||||||
|
io::ErrorKind::Other,
|
||||||
|
"proxy blocked this request",
|
||||||
|
));
|
||||||
} else {
|
} else {
|
||||||
return Err(io::Error::new(io::ErrorKind::Other, "unsuccessful tunnel"));
|
let (fst, _) = read.split_at(12);
|
||||||
|
return Err(io::Error::new(
|
||||||
|
io::ErrorKind::Other,
|
||||||
|
format!("unsuccessful tunnel: {:?}", fst).as_str(),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user