summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project2/cgi/cgiAppEngine.h5
-rw-r--r--project2/cgi/cgiStageCustomError.cpp2
-rw-r--r--project2/cgi/cgiStageCustomNotFound.cpp2
-rw-r--r--project2/cgi/cgiStageInitial.cpp6
-rw-r--r--project2/cgi/cgiStagePresent.cpp16
-rw-r--r--project2/cgi/cgiStageRequest.cpp8
6 files changed, 16 insertions, 23 deletions
diff --git a/project2/cgi/cgiAppEngine.h b/project2/cgi/cgiAppEngine.h
index e2ad1a2..8482181 100644
--- a/project2/cgi/cgiAppEngine.h
+++ b/project2/cgi/cgiAppEngine.h
@@ -80,7 +80,7 @@ class CgiApplicationEngine : public ApplicationEngine, public TransformChainLink
/// Stage to process POST requests
class RequestStage : public ResponseStage, TaskHost {
public:
- RequestStage(const CgiEnvironment *, const std::string & id);
+ RequestStage(const CgiEnvironment *, const boost::filesystem::path & path);
virtual NextStage run();
virtual HttpHeaderPtr getHeader() const;
@@ -91,8 +91,7 @@ class CgiApplicationEngine : public ApplicationEngine, public TransformChainLink
/// Stage to process GET requests and follow up RequestStages
class PresentStage : public virtual ResponseStage, ViewHost {
public:
- PresentStage(const CgiEnvironment * e, const std::string & id);
- PresentStage(const CgiEnvironment * e, const std::string & group, const std::string & id);
+ PresentStage(const CgiEnvironment * e, const boost::filesystem::path & path);
virtual NextStage run();
virtual HttpHeaderPtr getHeader() const;
diff --git a/project2/cgi/cgiStageCustomError.cpp b/project2/cgi/cgiStageCustomError.cpp
index 26fdf51..bc53c23 100644
--- a/project2/cgi/cgiStageCustomError.cpp
+++ b/project2/cgi/cgiStageCustomError.cpp
@@ -8,7 +8,7 @@ CgiApplicationEngine::CustomErrorStage::CustomErrorStage(const CgiEnvironment *
::XmlScriptParser(e->resolveScript(env->errorPresentRoot, env->onErrorPresent), false),
::CheckHost(e->resolveScript(env->errorPresentRoot, env->onErrorPresent)),
CgiApplicationEngine::DefaultErrorStage(env, ex),
- CgiApplicationEngine::PresentStage(env, env->errorPresentRoot, env->onErrorPresent)
+ CgiApplicationEngine::PresentStage(env, e->resolveScript(env->errorPresentRoot, env->onErrorPresent))
{
}
diff --git a/project2/cgi/cgiStageCustomNotFound.cpp b/project2/cgi/cgiStageCustomNotFound.cpp
index 4f06c2e..e0c6bfc 100644
--- a/project2/cgi/cgiStageCustomNotFound.cpp
+++ b/project2/cgi/cgiStageCustomNotFound.cpp
@@ -8,7 +8,7 @@ CgiApplicationEngine::CustomNotFoundStage::CustomNotFoundStage(const CgiEnvironm
::XmlScriptParser(e->resolveScript(env->errorPresentRoot, env->notFoundPresent), false),
::CheckHost(e->resolveScript(env->errorPresentRoot, env->notFoundPresent)),
CgiApplicationEngine::DefaultNotFoundStage(env, notfound),
- CgiApplicationEngine::PresentStage(env, env->errorPresentRoot, env->notFoundPresent)
+ CgiApplicationEngine::PresentStage(env, e->resolveScript(env->errorPresentRoot, env->notFoundPresent))
{
}
diff --git a/project2/cgi/cgiStageInitial.cpp b/project2/cgi/cgiStageInitial.cpp
index 7c7b198..348cbb9 100644
--- a/project2/cgi/cgiStageInitial.cpp
+++ b/project2/cgi/cgiStageInitial.cpp
@@ -16,10 +16,12 @@ CgiApplicationEngine::InitialStage::run()
if (e->elems.empty()) {
throw EmptyRequestURL();
}
- return NextStage(new RequestStage(e, e->getRedirectURL()));
+ return NextStage(new RequestStage(e, e->resolveScript(e->requestRoot,
+ e->getRedirectURL())));
}
else {
- return NextStage(new PresentStage(e, e->elems.empty() ? e->defaultPresent : e->getRedirectURL()));
+ return NextStage(new PresentStage(e, e->resolveScript(e->presentRoot,
+ e->elems.empty() ? e->defaultPresent : e->getRedirectURL())));
}
}
diff --git a/project2/cgi/cgiStagePresent.cpp b/project2/cgi/cgiStagePresent.cpp
index 4920623..44a344b 100644
--- a/project2/cgi/cgiStagePresent.cpp
+++ b/project2/cgi/cgiStagePresent.cpp
@@ -4,19 +4,11 @@
#include <boost/foreach.hpp>
#include <boost/bind.hpp>
-CgiApplicationEngine::PresentStage::PresentStage(const CgiEnvironment * e, const std::string & id) :
+CgiApplicationEngine::PresentStage::PresentStage(const CgiEnvironment * e, const boost::filesystem::path & path) :
CgiApplicationEngine::ResponseStage(e),
- XmlScriptParser(e->resolveScript(e->presentRoot, id), false),
- CheckHost(e->resolveScript(e->presentRoot, id)),
- ViewHost(e->resolveScript(e->presentRoot, id))
-{
-}
-
-CgiApplicationEngine::PresentStage::PresentStage(const CgiEnvironment * e, const std::string & group, const std::string & id) :
- CgiApplicationEngine::ResponseStage(e),
- XmlScriptParser(e->resolveScript(group, id), false),
- CheckHost(e->resolveScript(group, id)),
- ViewHost(e->resolveScript(group, id))
+ XmlScriptParser(path, false),
+ CheckHost(path),
+ ViewHost(path)
{
}
diff --git a/project2/cgi/cgiStageRequest.cpp b/project2/cgi/cgiStageRequest.cpp
index c53a172..a050146 100644
--- a/project2/cgi/cgiStageRequest.cpp
+++ b/project2/cgi/cgiStageRequest.cpp
@@ -4,11 +4,11 @@
#include "../xmlObjectLoader.h"
#include <boost/foreach.hpp>
-CgiApplicationEngine::RequestStage::RequestStage(const CgiEnvironment * e, const std::string & id) :
- XmlScriptParser(e->resolveScript(e->requestRoot, id), false),
- ::CheckHost(e->resolveScript(e->requestRoot, id)),
+CgiApplicationEngine::RequestStage::RequestStage(const CgiEnvironment * e, const boost::filesystem::path & path) :
+ XmlScriptParser(path, false),
+ ::CheckHost(path),
CgiApplicationEngine::ResponseStage(e),
- ::TaskHost(e->resolveScript(e->requestRoot, id))
+ ::TaskHost(path)
{
xmlpp::Element * requestRoot = get_document()->get_root_node();
present = requestRoot->get_attribute_value("present");