You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/12/01 22:40:59 UTC
svn commit: r481410 -
/incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp
Author: jsdelfino
Date: Fri Dec 1 13:40:58 2006
New Revision: 481410
URL: http://svn.apache.org/viewvc?view=rev&rev=481410
Log:
Minor cleanup of the Apache module. Close the HTTP connection after a POST.
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp
Modified: incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp?view=diff&rev=481410&r1=481409&r2=481410
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp Fri Dec 1 13:40:58 2006
@@ -214,11 +214,8 @@
return rc;
}
ap_should_client_block(request);
-
- int content_length = request->remaining;
- if (request->read_chunked == true && content_length == 0)
+ if (request->read_chunked == true && request->remaining == 0)
{
- content_length = -1;
request->chunked = true;
}
@@ -707,8 +704,6 @@
DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject);
// Send the response back to the client
- // Send the output DataObject
- char *str;
if (iface!=NULL &&
iface->getInterfaceTypeQName() == RESTInterface::typeQName)
{
@@ -734,6 +729,7 @@
{
loginfo("No resource location, sending HTTP 400 response code");
request->status = HTTP_BAD_REQUEST;
+
return OK;
}
@@ -744,9 +740,11 @@
const char* loc = ap_construct_url(request->pool, locuri.c_str(), request);
loginfo("Sending resource location: %s", loc);
apr_table_setn(request->headers_out, "Location", loc);
-
request->status = HTTP_CREATED;
- return OK;
+
+ // Send the created resource entity back to the client
+ ap_rputs(input.c_str(), request);
+
}
else
{
@@ -758,7 +756,6 @@
if (outputDataObject == NULL)
{
loginfo("Sending empty response");
- return OK;
}
else
{
@@ -767,37 +764,41 @@
outputDataObject,
wsdlOperation.getOutputTypeUri().c_str(),
wsdlOperation.getOutputTypeName().c_str());
- doc->setXMLDeclaration(false);
- str = xm->save(doc);
+ doc->setXMLDeclaration(false);
+ char* str = xm->save(doc);
+
+ loginfo("Sending response: %s", str);
+ ap_rputs(str, request);
}
}
- loginfo("Sending response: %s", str);
- ap_rputs(str, request);
-
- return OK;
+ // Close the connection after this
+ apr_table_setn(request->headers_out, "Connection", "close");
+
+ return OK;
}
else if (request->method_number == M_PUT)
{
+
+ return OK;
}
else if (request->method_number == M_DELETE)
{
+
+ return OK;
}
else
{
if (request->method)
{
- ostringstream msg;
- msg << "Unsupported HTTP method: %s" << request->method;
- throwException(ServiceInvocationException, msg.str().c_str());
+ logerror("Unsupported HTTP method: %s", request->method);
}
else
{
- throwException(ServiceInvocationException, "Unsupported HTTP method");
+ logerror("Unsupported HTTP method: %d", request->method_number);
}
+ return HTTP_NOT_IMPLEMENTED;
}
-
- return OK;
}
catch(TuscanyRuntimeException& ex)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org