summaryrefslogtreecommitdiff
path: root/source4/scripting/ejs/ejsnet.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2006-01-18 11:25:30 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:51:15 -0500
commitba8406fd3fb753deba9c3d5f8179dc70a200375d (patch)
tree6925d26da0ebbabfd641e1879090926a55fac50d /source4/scripting/ejs/ejsnet.c
parent1cb9484a42af5467cf96818a8459ca3fb3f81066 (diff)
downloadsamba-ba8406fd3fb753deba9c3d5f8179dc70a200375d.tar.gz
samba-ba8406fd3fb753deba9c3d5f8179dc70a200375d.tar.bz2
samba-ba8406fd3fb753deba9c3d5f8179dc70a200375d.zip
r12997: Feed the right event context to libnet in ejsnet and the auth code.
This should give better behaviour in SWAT. Fix authentication as Samba, rather than System, users in SWAT. Andrew Bartlett (This used to be commit 498d72c4ad4d57d10f43ca58830d6ee8292a55f4)
Diffstat (limited to 'source4/scripting/ejs/ejsnet.c')
-rw-r--r--source4/scripting/ejs/ejsnet.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source4/scripting/ejs/ejsnet.c b/source4/scripting/ejs/ejsnet.c
index 8962025259..6c7a0274cf 100644
--- a/source4/scripting/ejs/ejsnet.c
+++ b/source4/scripting/ejs/ejsnet.c
@@ -25,7 +25,7 @@
#include "scripting/ejs/smbcalls.h"
#include "scripting/ejs/ejsnet.h"
#include "libnet/libnet.h"
-
+#include "events/events.h"
static int ejs_net_userman(MprVarHandle, int, struct MprVar**);
static int ejs_net_createuser(MprVarHandle, int, char**);
@@ -39,12 +39,22 @@ static int ejs_net_samsync_ldb(MprVarHandle eid, int argc, struct MprVar **argv)
static int ejs_net_context(MprVarHandle eid, int argc, struct MprVar **argv)
{
+ TALLOC_CTX *event_mem_ctx = talloc_new(mprMemCtx());
struct cli_credentials *creds;
struct libnet_context *ctx;
struct MprVar obj;
+ struct event_context *ev;
- /* TODO: Need to get the right event context in here */
- ctx = libnet_context_init(NULL);
+ if (!event_mem_ctx) {
+ ejsSetErrorMsg(eid, "talloc_new() failed");
+ return -1;
+ }
+ ev = event_context_find(event_mem_ctx);
+ ctx = libnet_context_init(ev);
+ /* IF we generated a new event context, it will be under here,
+ * and we need it to last as long as the libnet context, so
+ * make it a child */
+ talloc_steal(ctx, event_mem_ctx);
if (argc == 0 || (argc == 1 && argv[0]->type == MPR_TYPE_NULL)) {
creds = cli_credentials_init(ctx);