summaryrefslogtreecommitdiff
path: root/project2/cgi
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2012-03-15 21:22:49 +0000
committerrandomdan <randomdan@localhost>2012-03-15 21:22:49 +0000
commit8de840e829bd5e08fbc0f52608377fc3eb67382e (patch)
treec6fab79987a89a72eb73b62ab9df35907c07607f /project2/cgi
parentStrip clutter from CGI stages (diff)
downloadproject2-8de840e829bd5e08fbc0f52608377fc3eb67382e.tar.bz2
project2-8de840e829bd5e08fbc0f52608377fc3eb67382e.tar.xz
project2-8de840e829bd5e08fbc0f52608377fc3eb67382e.zip
Create 404s when row sets optionally don't return rows
Diffstat (limited to 'project2/cgi')
-rw-r--r--project2/cgi/cgiAppEngine.h1
-rw-r--r--project2/cgi/cgiStagePresent.cpp8
2 files changed, 7 insertions, 2 deletions
diff --git a/project2/cgi/cgiAppEngine.h b/project2/cgi/cgiAppEngine.h
index 7e081e6..854013a 100644
--- a/project2/cgi/cgiAppEngine.h
+++ b/project2/cgi/cgiAppEngine.h
@@ -103,6 +103,7 @@ class CgiApplicationEngine : public ApplicationEngine, public TransformChainLink
virtual NextStage run();
virtual HttpHeaderPtr getHeader() const;
protected:
+ HttpHeaderPtr header;
mutable MultiRowSetPresenterPtr presenter;
};
diff --git a/project2/cgi/cgiStagePresent.cpp b/project2/cgi/cgiStagePresent.cpp
index 8ff1013..9c7ab7f 100644
--- a/project2/cgi/cgiStagePresent.cpp
+++ b/project2/cgi/cgiStagePresent.cpp
@@ -33,6 +33,11 @@ CgiApplicationEngine::PresentStage::run()
}
try {
executeViews();
+ header = HttpHeaderPtr(new Project2HttpHeader("200 OK"));
+ return NextStage(NULL, this, boost::dynamic_pointer_cast<TransformSource>(presenter), presenter);
+ }
+ catch (EmptyRequiredRows) {
+ header = HttpHeaderPtr(new Project2HttpHeader("404 Not found"));
return NextStage(NULL, this, boost::dynamic_pointer_cast<TransformSource>(presenter), presenter);
}
catch (ResponseStagePtr p) {
@@ -60,8 +65,7 @@ CgiApplicationEngine::ResponseStage::ResponseStage(ScriptNodePtr r) :
CgiApplicationEngine::HttpHeaderPtr
CgiApplicationEngine::PresentStage::getHeader() const
{
- Project2HttpHeader * header = new Project2HttpHeader("200 OK");
header->addHeader("Cache-control", "no-cache");
- return HttpHeaderPtr(header);
+ return header;
}