summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-03-21 07:08:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:58:59 -0500
commitdab516d3e72360a10962d37a06df6aee33b1a63f (patch)
tree9161fd6fbe309b1c0a723d6d7a4591250ddbd8f8 /source4
parentd64ccc01769ce274c74d8458f9ef81cdcc8986f6 (diff)
downloadsamba-dab516d3e72360a10962d37a06df6aee33b1a63f.tar.gz
samba-dab516d3e72360a10962d37a06df6aee33b1a63f.tar.bz2
samba-dab516d3e72360a10962d37a06df6aee33b1a63f.zip
r14603: Fix building of ejs modules as shared libs
Fix calling of ejs_exception() without requiring --export-dynamic (This used to be commit 8575e9a4903450aae1f29f55aae516085a9528bb)
Diffstat (limited to 'source4')
-rw-r--r--source4/build/smb_build/config_mk.pm2
-rw-r--r--source4/lib/ldb/config.mk4
-rw-r--r--source4/librpc/config.mk7
-rw-r--r--source4/scripting/ejs/config.mk4
-rw-r--r--source4/scripting/ejs/smbcalls.c10
-rw-r--r--source4/scripting/ejs/smbscript.c4
-rw-r--r--source4/web_server/http.c6
7 files changed, 25 insertions, 12 deletions
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm
index 41e90c33b7..a3cc42b1e7 100644
--- a/source4/build/smb_build/config_mk.pm
+++ b/source4/build/smb_build/config_mk.pm
@@ -44,6 +44,8 @@ my $section_types = {
"REQUIRED_SUBSYSTEMS" => "list",
+ "ALIASES" => "list",
+
"ENABLE" => "bool",
"OUTPUT_TYPE" => "string",
diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk
index 2f36042ab9..958cd434f1 100644
--- a/source4/lib/ldb/config.mk
+++ b/source4/lib/ldb/config.mk
@@ -9,8 +9,8 @@ OBJ_FILES = \
################################################
################################################
-# Start MODULE ldb_sort
-[MODULE::ldb_sort]
+# Start MODULE ldb_server_sort
+[MODULE::ldb_server_sort]
INIT_FUNCTION = ldb_sort_init
SUBSYSTEM = ldb
OBJ_FILES = \
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 0f9f808aa8..93ea86f8e3 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -639,7 +639,7 @@ REQUIRED_SUBSYSTEMS = dcerpc NDR_SECURITY EJSRPC
INIT_FUNCTION = ejs_init_lsarpc
OBJ_FILES = gen_ndr/ndr_lsa_ejs.o
SUBSYSTEM = smbcalls
-REQUIRED_SUBSYSTEMS = dcerpc NDR_LSA EJSRPC RPC_EJS_SECURITY
+REQUIRED_SUBSYSTEMS = dcerpc NDR_LSA EJSRPC RPC_EJS_SECURITY RPC_EJS_MISC
[MODULE::RPC_EJS_DFS]
INIT_FUNCTION = ejs_init_netdfs
@@ -670,7 +670,7 @@ REQUIRED_SUBSYSTEMS = dcerpc NDR_WKSSVC EJSRPC RPC_EJS_SRVSVC RPC_EJS_MISC
INIT_FUNCTION = ejs_init_srvsvc
OBJ_FILES = gen_ndr/ndr_srvsvc_ejs.o
SUBSYSTEM = smbcalls
-REQUIRED_SUBSYSTEMS = dcerpc NDR_SRVSVC EJSRPC RPC_EJS_MISC
+REQUIRED_SUBSYSTEMS = dcerpc NDR_SRVSVC EJSRPC RPC_EJS_MISC RPC_EJS_SVCCTL
[MODULE::RPC_EJS_EVENTLOG]
INIT_FUNCTION = ejs_init_eventlog
@@ -682,7 +682,8 @@ REQUIRED_SUBSYSTEMS = dcerpc NDR_EVENTLOG EJSRPC RPC_EJS_MISC
INIT_FUNCTION = ejs_init_winreg
OBJ_FILES = gen_ndr/ndr_winreg_ejs.o
SUBSYSTEM = smbcalls
-REQUIRED_SUBSYSTEMS = dcerpc NDR_WINREG EJSRPC RPC_EJS_INITSHUTDOWN
+REQUIRED_SUBSYSTEMS = dcerpc NDR_WINREG EJSRPC RPC_EJS_INITSHUTDOWN \
+ RPC_EJS_MISC RPC_EJS_SECURITY
[MODULE::RPC_EJS_INITSHUTDOWN]
INIT_FUNCTION = ejs_init_initshutdown
diff --git a/source4/scripting/ejs/config.mk b/source4/scripting/ejs/config.mk
index ac24b58359..c38caeabf1 100644
--- a/source4/scripting/ejs/config.mk
+++ b/source4/scripting/ejs/config.mk
@@ -60,7 +60,9 @@ INIT_FUNCTION = smb_setup_ejs_system
#######################
# Start LIBRARY smbcalls
-[SUBSYSTEM::smbcalls]
+[LIBRARY::smbcalls]
+SO_VERSION = 0
+VERSION = 0.0.1
PRIVATE_PROTO_HEADER = proto.h
OBJ_FILES = \
smbcalls.o \
diff --git a/source4/scripting/ejs/smbcalls.c b/source4/scripting/ejs/smbcalls.c
index e010f3fdb1..1bfbd3b47a 100644
--- a/source4/scripting/ejs/smbcalls.c
+++ b/source4/scripting/ejs/smbcalls.c
@@ -121,15 +121,23 @@ static int ejs_version(MprVarHandle eid, int argc, struct MprVar **argv)
return 0;
}
+static void (*ejs_exception_handler) (const char *) = NULL;
+
+_PUBLIC_ void ejs_exception(const char *reason)
+{
+ ejs_exception_handler(reason);
+}
/*
setup C functions that be called from ejs
*/
-void smb_setup_ejs_functions(void)
+void smb_setup_ejs_functions(void (*exception_handler)(const char *))
{
init_module_fn static_init[] = STATIC_smbcalls_MODULES;
init_module_fn *shared_init;
+ ejs_exception_handler = exception_handler;
+
smb_setup_ejs_cli();
smb_setup_ejs_options();
smb_setup_ejs_credentials();
diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c
index 86947bdf8e..d602a7733b 100644
--- a/source4/scripting/ejs/smbscript.c
+++ b/source4/scripting/ejs/smbscript.c
@@ -30,7 +30,7 @@
static EjsId eid;
-_PUBLIC_ void ejs_exception(const char *reason)
+static void smbscript_ejs_exception(const char *reason)
{
Ejs *ep = ejsPtr(eid);
ejsSetErrorMsg(eid, "%s", reason);
@@ -72,7 +72,7 @@ int main(int argc, const char **argv)
exit(127);
}
- smb_setup_ejs_functions();
+ smb_setup_ejs_functions(smbscript_ejs_exception);
if ((eid = ejsOpenEngine(handle, 0)) == (EjsId)-1) {
fprintf(stderr, "smbscript: ejsOpenEngine(): unable to "
diff --git a/source4/web_server/http.c b/source4/web_server/http.c
index 3df9fcb25a..93d81ef1d0 100644
--- a/source4/web_server/http.c
+++ b/source4/web_server/http.c
@@ -467,7 +467,7 @@ static void http_setup_arrays(struct esp_state *esp)
static jmp_buf ejs_exception_buf;
static const char *exception_reason;
-_PUBLIC_ void ejs_exception(const char *reason)
+static void web_server_ejs_exception(const char *reason)
{
Ejs *ep = ejsPtr(0);
if (ep) {
@@ -480,7 +480,7 @@ _PUBLIC_ void ejs_exception(const char *reason)
longjmp(ejs_exception_buf, -1);
}
#else
-void ejs_exception(const char *reason)
+static void web_server_ejs_exception(const char *reason)
{
DEBUG(0,("%s", reason));
smb_panic(reason);
@@ -804,7 +804,7 @@ void http_process_input(struct websrv_context *web)
edata->application_data, MPR_DEEP_COPY);
}
- smb_setup_ejs_functions();
+ smb_setup_ejs_functions(web_server_ejs_exception);
if (web->input.url == NULL) {
http_error(web, 400, "You must specify a GET or POST request");