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;


Reply via email to