summaryrefslogtreecommitdiffstats
path: root/source/web_server/esp
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-05-30 06:07:23 +0000
committerAndrew Tridgell <tridge@samba.org>2005-05-30 06:07:23 +0000
commit7d465011eb2160fa35d87b9f16339d17e04410e9 (patch)
treed531a75b9ec42bdbfb1c240e90c1076a23f95274 /source/web_server/esp
parent6568100f2622ee421e14b0dec4b9a136ad643ee2 (diff)
downloadsamba-7d465011eb2160fa35d87b9f16339d17e04410e9.tar.gz
samba-7d465011eb2160fa35d87b9f16339d17e04410e9.tar.xz
samba-7d465011eb2160fa35d87b9f16339d17e04410e9.zip
r7086: make include() recognise the ".esp" extension and include the file as
an esp script instead of as a ejs script
Diffstat (limited to 'source/web_server/esp')
-rw-r--r--source/web_server/esp/espProcs.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/source/web_server/esp/espProcs.c b/source/web_server/esp/espProcs.c
index ff1751a7ef0..28b69a8a6f1 100644
--- a/source/web_server/esp/espProcs.c
+++ b/source/web_server/esp/espProcs.c
@@ -71,12 +71,14 @@ static int includeProc(EspRequest *ep, int argc, char **argv)
{
const Esp *esp;
char path[MPR_MAX_FNAME], dir[MPR_MAX_FNAME];
- char *emsg, *buf;
+ char *emsg=NULL, *buf;
int size, i;
esp = ep->esp;
mprAssert(argv);
for (i = 0; i < argc; i++) {
+ const char *extension;
+
if (argv[i][0] != '/') {
mprGetDirName(dir, sizeof(dir), ep->docPath);
mprSprintf(path, sizeof(path), "%s/%s", dir, argv[i]);
@@ -90,10 +92,20 @@ static int includeProc(EspRequest *ep, int argc, char **argv)
}
buf[size] = '\0';
- if (ejsEvalScript(espGetScriptHandle(ep), buf, 0, &emsg) < 0) {
- espError(ep, "Cant evaluate script");
- mprFree(buf);
- return -1;
+ extension = strrchr(argv[i], '.');
+ /* this makes handling include files in esp scripts much more convenient */
+ if (extension && strcasecmp(extension, ".esp") == 0) {
+ if (espProcessRequest(ep, path, buf, &emsg) != 0) {
+ espError(ep, "Cant evaluate script - %s", emsg?emsg:"");
+ mprFree(buf);
+ return -1;
+ }
+ } else {
+ if (ejsEvalScript(espGetScriptHandle(ep), buf, 0, &emsg) < 0) {
+ espError(ep, "Cant evaluate script - %s", emsg?emsg:"");
+ mprFree(buf);
+ return -1;
+ }
}
mprFree(buf);
}