summaryrefslogtreecommitdiff
path: root/project2/cgi
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2013-01-09 20:30:35 +0000
committerrandomdan <randomdan@localhost>2013-01-09 20:30:35 +0000
commit64826d5da49fe75c99ed77eb8f7ed388bc7bb56a (patch)
treea27f7a7f201b9ad74cc684fa4462875e7fde79bf /project2/cgi
parentRegister exslt functions on start up (diff)
downloadproject2-64826d5da49fe75c99ed77eb8f7ed388bc7bb56a.tar.bz2
project2-64826d5da49fe75c99ed77eb8f7ed388bc7bb56a.tar.xz
project2-64826d5da49fe75c99ed77eb8f7ed388bc7bb56a.zip
Add transform code to default error stage
Do xslt transform according to PI, not source value
Diffstat (limited to 'project2/cgi')
-rw-r--r--project2/cgi/cgiStageDefaultError.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/project2/cgi/cgiStageDefaultError.cpp b/project2/cgi/cgiStageDefaultError.cpp
index c5642d5..b8f0b4b 100644
--- a/project2/cgi/cgiStageDefaultError.cpp
+++ b/project2/cgi/cgiStageDefaultError.cpp
@@ -13,6 +13,12 @@ CgiApplicationEngine::DefaultErrorStage::DefaultErrorStage(const std::exception
what(ex.what()),
pres(new XmlPresenter(DefaultErrorStageResp, env()->errorTransformStyle, env()->errorContentType))
{
+ auto xp = dynamic_cast<TransformSource *>(pres.get());
+ auto cp = dynamic_cast<ContentPresenter *>(pres.get());
+ if (xp && cp && cp->contentType == this->env()->transformContentType) {
+ auto h = TransformTargetLoader::getFor(this->env()->transformTargetType)->create(root, Default);
+ xp->addTarget(h, root);
+ }
}
CgiApplicationEngine::DefaultErrorStage::~DefaultErrorStage()