mirror of
https://github.com/samba-team/samba.git
synced 2025-07-31 20:22:15 +03:00
r7063: Do error checking on the ejs functions.
Tridge says there is a bug in defining per-engine CFunction's so move
calls to ejsDefineStringCFunction() above the ejsOpenEngine() call.
Test script now works!
(This used to be commit 5e2458ae6c
)
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
10f428b607
commit
e95c8f1911
@ -29,9 +29,6 @@ void http_exception(const char *reason)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
extern void ejsDefineStringCFunction(EjsId eid, const char *functionName,
|
||||
MprStringCFunction fn, void *thisPtr, int flags);
|
||||
|
||||
static int writeProc(MprVarHandle userHandle, int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
@ -50,13 +47,26 @@ static int writeProc(MprVarHandle userHandle, int argc, char **argv)
|
||||
MprVar result;
|
||||
char *emsg;
|
||||
|
||||
ejsOpen(0, 0, 0);
|
||||
eid = ejsOpenEngine(primary, alternate);
|
||||
ejsDefineStringCFunction(eid, "write", writeProc, NULL, 0);
|
||||
ejsEvalScript(0, "write(\"hello\n\");", &result, &emsg);
|
||||
ejsClose();
|
||||
if (ejsOpen(0, 0, 0) != 0) {
|
||||
fprintf(stderr, "smbscript: ejsOpen(): unable to initialise "
|
||||
"EJ subsystem\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("emsg = %s\n", emsg);
|
||||
ejsDefineStringCFunction(-1, "write", writeProc, NULL, 0);
|
||||
|
||||
if ((eid = ejsOpenEngine(primary, alternate)) == (EjsId)-1) {
|
||||
fprintf(stderr, "smbscript: ejsOpenEngine(): unable to "
|
||||
"initialise an EJS engine\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (ejsEvalScript(0, "write(\"hello\n\");", &result, &emsg) == -1) {
|
||||
fprintf(stderr, "smbscript: ejsEvalScript(): %s\n", emsg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ejsClose();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user