You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by er...@apache.org on 2010/11/15 21:49:50 UTC
svn commit: r1035443 -
/trafficserver/traffic/trunk/proxy/http2/HttpTransact.cc
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;