summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/appweb/ejs/config.h2
-rw-r--r--source4/scripting/ejs/smbscript.c8
-rw-r--r--source4/web_server/http.c26
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) {