diff options
author | randomdan <randomdan@localhost> | 2012-03-15 21:22:49 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2012-03-15 21:22:49 +0000 |
commit | 8de840e829bd5e08fbc0f52608377fc3eb67382e (patch) | |
tree | c6fab79987a89a72eb73b62ab9df35907c07607f /project2/cgi | |
parent | Strip clutter from CGI stages (diff) | |
download | project2-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.h | 1 | ||||
-rw-r--r-- | project2/cgi/cgiStagePresent.cpp | 8 |
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; } |