diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-05-30 06:07:23 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2005-05-30 06:07:23 +0000 |
commit | 7d465011eb2160fa35d87b9f16339d17e04410e9 (patch) | |
tree | d531a75b9ec42bdbfb1c240e90c1076a23f95274 /source/web_server/esp | |
parent | 6568100f2622ee421e14b0dec4b9a136ad643ee2 (diff) | |
download | samba-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.c | 22 |
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); } |