Author: ericb
Date: Mon Nov 15 20:49:50 2010
New Revision: 1035443
URL: http://svn.apache.org/viewvc?rev=1035443&view=rev
Log:
Fix for TS-535.
Modified:
trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
Modified: trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
URL:
http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc?rev=1035443&r1=1035442&r2=1035443&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc (original)
+++ trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc Mon Nov 15 20:49:50
2010
@@ -1300,8 +1300,18 @@ HttpTransact::HandleApiErrorJump(State *
s->source = SOURCE_INTERNAL;
}
- build_response(s, &s->hdr_info.client_response,
- s->client_info.http_version,
HTTP_STATUS_INTERNAL_SERVER_ERROR, "INKApi Error");
+ /**
+ The API indicated an error. Lets use a >=400 error from the state (if
one's set) or fallback to a
+ generic HTTP/1.X 500 INKApi Error
+ **/
+ if ( s->http_return_code && s->http_return_code >= HTTP_STATUS_BAD_REQUEST )
{
+ build_response(s, &s->hdr_info.client_response,
+ s->client_info.http_version, s->http_return_code,
http_hdr_reason_lookup(s->http_return_code)?:"Error" );
+ }
+ else {
+ build_response(s, &s->hdr_info.client_response,
+ s->client_info.http_version,
HTTP_STATUS_INTERNAL_SERVER_ERROR, "INKApi Error");
+ }
TRANSACT_RETURN(PROXY_INTERNAL_CACHE_NOOP, NULL);
return;