diff options
-rw-r--r-- | source4/lib/appweb/ejs/config.h | 2 | ||||
-rw-r--r-- | source4/scripting/ejs/smbscript.c | 8 | ||||
-rw-r--r-- | source4/web_server/http.c | 26 |
3 files changed, 17 insertions, 19 deletions
diff --git a/source4/lib/appweb/ejs/config.h b/source4/lib/appweb/ejs/config.h index 320318a0b2..de8a1096c9 100644 --- a/source4/lib/appweb/ejs/config.h +++ b/source4/lib/appweb/ejs/config.h @@ -8,7 +8,7 @@ #define BLD_APPWEB_CONFIG "normal.conf" #define BLD_APPWEB 0 #define BLD_COMPANY "Mbedthis" -#define BLD_DEBUG 1 +#define BLD_DEBUG 0 #define BLD_DIRS "bootstrap include obj bin mpr ejs esp http doc appWeb appWebSamples images" #define BLD_HTTP_PORT 7777 #define BLD_LIB_VERSION "1.0.0" diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c index b16536a575..a35b988e56 100644 --- a/source4/scripting/ejs/smbscript.c +++ b/source4/scripting/ejs/smbscript.c @@ -24,17 +24,21 @@ #include "includes.h" #include "dynconfig.h" #include "lib/appweb/ejs/ejs.h" +#include "lib/appweb/ejs/ejsInternal.h" #include "scripting/ejs/smbcalls.h" +static EjsId eid; + void ejs_exception(const char *reason) { - fprintf(stderr, "smbscript exception: %s", reason); + Ejs *ep = ejsPtr(eid); + ejsSetErrorMsg(eid, "%s", reason); + fprintf(stderr, "%s", ep->error); exit(127); } int main(int argc, const char **argv) { - EjsId eid; EjsHandle handle = 0; MprVar result; char *emsg, *script; diff --git a/source4/web_server/http.c b/source4/web_server/http.c index 7aa99b09f6..dc8f236567 100644 --- a/source4/web_server/http.c +++ b/source4/web_server/http.c @@ -29,6 +29,7 @@ #include "system/iconv.h" #include "system/time.h" #include "lib/appweb/esp/esp.h" +#include "lib/appweb/ejs/ejsInternal.h" #include "dlinklist.h" #include "lib/tls/tls.h" @@ -43,17 +44,6 @@ struct esp_state { struct session_data *session; }; -/* destroy a esp session */ -static int esp_destructor(void *ptr) -{ - struct esp_state *esp = talloc_get_type(ptr, struct esp_state); - - if (esp->req) { - espDestroyRequest(esp->req); - } - return 0; -} - /* output the http headers */ @@ -338,7 +328,7 @@ static void http_destroySession(EspHandle handle) void http_error(struct websrv_context *web, int code, const char *info) { char *s; - s = talloc_asprintf(web,"<HTML><HEAD><TITLE>Error %u</TITLE></HEAD><BODY><H1>Error %u</H1>%s<p></BODY></HTML>\r\n\r\n", + s = talloc_asprintf(web,"<HTML><HEAD><TITLE>Error %u</TITLE></HEAD><BODY><H1>Error %u</H1><pre>%s</pre><p></BODY></HTML>\r\n\r\n", code, code, info); if (s == NULL) { stream_terminate_connection(web->conn, "http_error: out of memory"); @@ -468,8 +458,14 @@ static const char *exception_reason; void ejs_exception(const char *reason) { - exception_reason = reason; - DEBUG(0,("%s", reason)); + Ejs *ep = ejsPtr(0); + if (ep) { + ejsSetErrorMsg(0, "%s", reason); + exception_reason = ep->error; + } else { + exception_reason = reason; + } + DEBUG(0,("%s", exception_reason)); longjmp(ejs_exception_buf, -1); } #else @@ -797,8 +793,6 @@ void http_process_input(struct websrv_context *web) edata->application_data, MPR_DEEP_COPY); } - talloc_set_destructor(esp, esp_destructor); - smb_setup_ejs_functions(); if (web->input.url == NULL) { |