in proxygen/lib/http/codec/HTTPRequestVerifier.h [131:155]
bool validate() {
if (error.size()) {
return false;
}
if (msg_->getMethod() == HTTPMethod::CONNECT) {
if ((!hasUpgradeProtocol_ &&
(!hasMethod_ || !hasAuthority_ || hasScheme_ || hasPath_)) ||
(hasUpgradeProtocol_ && (!hasScheme_ || !hasPath_))) {
error = folly::to<std::string>("Malformed CONNECT request m/a/s/pa/pr=",
hasMethod_,
hasAuthority_,
hasScheme_,
hasPath_,
hasUpgradeProtocol_);
}
} else if (hasUpgradeProtocol_ || !hasMethod_ || !hasScheme_ || !hasPath_) {
error = folly::to<std::string>("Malformed request m/a/s/pa/pr=",
hasMethod_,
hasAuthority_,
hasScheme_,
hasPath_,
hasUpgradeProtocol_);
}
return error.empty();
}