1
0
mirror of https://github.com/samba-team/samba.git synced 2025-05-27 17:05:51 +03:00

226 Commits

Author SHA1 Message Date
Andrew Tridgell
9f86e20286 r8340: - added sys_gmtime()
- added sys_unlink()

- added sys_file_load() and sys_file_save()

- use mprString() instead of mprCreateStringVar() to cope with NULL strings

- removed smbcalls_irpc.c as its not needed any more

- allow ldbAdd() and ldbModify() to take multiple ldif records

- added a sprintf() function to ejs. Quite complex, but very useful!
(This used to be commit 625628a3f6e78349d2240ebcc79081f350672070)
2007-10-10 13:20:08 -05:00
Andrew Tridgell
1bb2b06031 r8339: added ldbAdd(), ldbModify(), ldbDelete() and ldbRename() to ejs ldb functions
(This used to be commit 322c2137835ff2d76b3183901bf680780f164b5e)
2007-10-10 13:20:08 -05:00
Andrew Tridgell
2dce83de0c r8338: - added a substitute_var() js library function for doing hash driven
substitution of variables in strings

- the js provision script now correctly processes provision.ldif
(This used to be commit c2946003e06c4898ba0444cd0b69d3203753be94)
2007-10-10 13:20:08 -05:00
Andrew Tridgell
b1e93b296e r8337: - use 64 bit access functions in ejs calls
- added access to smbd random functions

- fixed ordering in join()

- added sys_interfaces(), sys_hostname(), sys_nttime() and sys_ldaptime()
(This used to be commit 28c1a1f3c0cd2f8228fd8c3c695ab6f45226fa3f)
2007-10-10 13:20:07 -05:00
Andrew Tridgell
ba1ee57df4 r8333: merged with latest upstream ejs sources
(This used to be commit b0f9ddafe95d4e8d846bc72a39e94d22da271348)
2007-10-10 13:20:07 -05:00
Andrew Tridgell
c30c711292 r8331: added split(), join() and FileLoad() functions to ejs.
this gets me most of the way through a ejs provision script
(This used to be commit 0ef8f0282e0490328bbcdc8c6daff3f8fac99087)
2007-10-10 13:20:06 -05:00
Andrew Tridgell
887461327a r8320: make sure all our returned objects are full objects, which means they
have the toString() and valueOf() default attributes

this allows all our returned objects to be used in logical expressions
(This used to be commit 570f071b1544b497d5f480b8ad50df097fe4c843)
2007-10-10 13:20:06 -05:00
Andrew Tridgell
683432660e r8318: added a bunch more ejs calls.
getgr*()
  getpw*()
  strlower()
  strupper()
  IfaceList()
(This used to be commit 1517ad490dd67302f38ab9dcd8a3b24b73b8d550)
2007-10-10 13:20:06 -05:00
Andrew Tridgell
f583a85d4d r8316: give full access to the popt command line parsing in ejs scripts, including
access to the samba common options. For example:

ok = GetOptions(ARGV, options,
		"POPT_AUTOHELP",
		"POPT_COMMON_SAMBA",
		"myopt=s",
		"intopt=i",
		"noopt");

this allows scripts to support their own extended options properly
(This used to be commit 775fb56ac287b8d485b38f633b9480d7b7ab64e3)
2007-10-10 13:20:05 -05:00
Andrew Tridgell
f9ff72cbda r8298: - started building a library of js routines in scripting/libjs/
- switched the existing test programs over to using the library

- added install of js lib
(This used to be commit 2a444dedbe44347268affc6458196f93ca7d372b)
2007-10-10 13:19:33 -05:00
Andrew Tridgell
b2f1321821 r8297: add libinclude() function in ejs, which is like include() but searches a js library
path set in "js include" in smb.conf.

This will allow us to start building up a library of common js code,
while avoiding the problem of hard-coding include paths in scripts
(This used to be commit ff60529ba2515df29a20b4a417327a3565ec8ee9)
2007-10-10 13:19:32 -05:00
Andrew Tridgell
b2f84fef13 r8296: - split out the ejs auth functions into a separate file
- got rid of the one line ejs_returnlist()
(This used to be commit 6961fe29058cffd8e69d9ce7e7d3902f973411c0)
2007-10-10 13:19:32 -05:00
Andrew Tridgell
056096c30b r8284: - fixed some uninitialised variables in the irpc code
- added code to send multiple irpc calls in parallel, to all servers
  that have registered the given name, with output going in
  io.results[i]. This allows you to make rpc calls to multiple servers
  at once, which is needed for clients like smbstatus
(This used to be commit 061e20e509d95ffe16d7dd6fba7db39fc7a165ed)
2007-10-10 13:19:31 -05:00
Andrew Tridgell
0871be3f35 r8281: pass the callnum and rpc interface table directly from the generated
code in pidl for ejs calls. This means that ejs_rpc_call() doesn't
need to scan the rpc tables for the right interface, and doesn't need
to scan for the call name
(This used to be commit 1c6b1102e5c2529206b917e7c6b279c4f63d0e9a)
2007-10-10 13:19:31 -05:00
Andrew Tridgell
f3c6f290f0 r8280: - added irpc_connect() for connecting to a irpc server by name
- make the dcerpc pipe in rpc_connect() a talloc child of the ejs
  connection variable. That means when the connection variable goes out
  of scope, the connection is automatically closed. That makes for a
  more natural interface for closing connections in a scripting language
  (tpot, you may wish to use mprSetPtrChild() in your smb glue code too)
(This used to be commit 1c170138a8e82cb42958b88b94a1d567ffa88a92)
2007-10-10 13:19:30 -05:00
Andrew Tridgell
60ec75cbc7 r8276: fixed the remaining memory leaks in smbscript. We can now loop doing
lots of rpc calls without memory usage increasing.
(This used to be commit 9c885a7edb771486793eb287288158157b34e8f3)
2007-10-10 13:19:30 -05:00
Andrew Tridgell
76ecf81428 r8273: fixed some memory leaks in smbscript. This required converting
file_load() to use talloc, which impacted quite a few bits of code,
including our smb.conf processing.

took the opportunity to remove the gloabls in params.c while doing this
(This used to be commit b220756cb4f1d201ba3e771ca67e4bfae5eae748)
2007-10-10 13:19:29 -05:00
Andrew Tridgell
b4e53e6705 r8262: - simplify the dependency handling for ejs modules
- added config.mk entries for some more pipes

- simplify the handling of ejs variables in the pidl code
(This used to be commit 595304708db69229495c5739b5cacab732afd55f)
2007-10-10 13:19:27 -05:00
Andrew Tridgell
cd88764ba1 r8260: added an init based registration system for the generated ejs rpc code, so
adding a new pipe only involves changes to librpc/config.mk
(This used to be commit 0e54fa446665f380e9c46723a6e2be5a08b8d51c)
2007-10-10 13:19:27 -05:00
Andrew Tridgell
7efeb8f451 r8256: - allow rpc calls from non-command line ejs contexts by creating a set
of null credentials to use if cmdline_credentials is not setup

- hide the length and size elements of a lsa_String from js scripts,
  so you can use a lsa_String just as an ordinary string without
  knowing its a structure. We won't do this with all structures, just
  a few core ones that are used often enough to warrant it.

- make sure returned ldb arrays have a length property
(This used to be commit 12d2092dd8668de41776132ccbcd634790c371a9)
2007-10-10 13:19:26 -05:00
Andrew Tridgell
fe1cf1eeb7 r8254: fixed a valgrind error in the unix auth code
(This used to be commit ad1a4802d0634960646a6efe039fe8b62ead63dd)
2007-10-10 13:19:26 -05:00
Andrew Tridgell
987e67df52 r8238: - fixed handling of NULL pointers from ejs
- added automatic creation of all constants in IDL as ejs variables
(This used to be commit 9398b02e4ba51145e447668e321ca927f44c0078)
2007-10-10 13:19:23 -05:00
Andrew Tridgell
e897a57067 r8236: fixed support for arrays of structures
(This used to be commit cbe5289ac9a8adfe68704dc16a2b32ecbd15a4eb)
2007-10-10 13:19:23 -05:00
Andrew Tridgell
f55b2b9610 r8233: - added support for more base types in pidl ejs
- added auto generation of a header with prototypes for public ejs functions

- make public functions non-static

- fixed allocation of fixed sized arrays

- added 'noejs' flag indicating that a typedef will be handled manually by ejs

- added manual functions for sid and GUID, so they show up as nice
  strings in ejs scripts

This allows ejs to bring in samr, security, lsa and misc IDL functions
(This used to be commit a8cb2dbdcc2871090a26f580f67db8f0636d1e7e)
2007-10-10 13:19:23 -05:00
Andrew Tridgell
c851532bec r8230: prevent authentication dying on a NULL domain
(This used to be commit e1cfc6d03244e04d59a96ef2abb5b48fcb157b0a)
2007-10-10 13:19:22 -05:00
Andrew Tridgell
c11204339a r8220: added auto-generation of ENUM constants in ejs wrapper. So we can now use the enum name
instead of a integer in ejs scripts making rpc calls
(This used to be commit a61cdee384c3002860016c1740276529493d318d)
2007-10-10 13:19:21 -05:00
Andrew Tridgell
5fa5eb1da0 r8216: - handle union pull in ejs pidl generation
- added debugging calls for missing structure/union elements
(This used to be commit f3ff48204cb8edeb9f42afbbefe13f7d49305506)
2007-10-10 13:19:20 -05:00
Andrew Tridgell
7fded3c856 r8215: switched the pull side of the ejs generator over to the recursive LEVELS based approach.
This allows for much more complex structure mappings to be generated.
(This used to be commit 49fc14d13291b02f7b16ab0eefe7bfb26f51b1c8)
2007-10-10 13:19:20 -05:00
Andrew Tridgell
ceb277ced9 r8213: I've started to understand the LEVELS stuff in pidl much better now,
and have re-coded the push side of the ejs generator to use it
properly. It ends up being very neat and small, and should handle much
more complex structures (like arrays of pointers to unions etc).

Also added push side support for unions. This should get more of the
echo pipe working via ejs.
(This used to be commit 2e306be1d83f722c259c4a63233e77d8bb1d5a72)
2007-10-10 13:19:20 -05:00
Andrew Tridgell
65ddc6e9b9 r8200: - added stub functions for union pull/push
- kill the js interpreter with an exception on internal errors
(This used to be commit 5f062d71481a0aa2d8c89099abb2d171b789879e)
2007-10-10 13:19:19 -05:00
Andrew Tridgell
f44b9ae3e6 r8198: - handled push/pull of simple strings in ejs
- improved the error handling, so the ejs wrappers don't just ignore a type they
  don't handle, instead an exception is issued saying what isn't handled
(This used to be commit a77c2aa8606ad668f6a513211a1d9e7d6193d741)
2007-10-10 13:19:19 -05:00
Andrew Tridgell
74ac1686d5 r8195: - fixed handling of simple arrays. To keep the logic simple, I moved to making all push
functions taking a constant pointer to the type rather than having a different calling
  convention for scalars and pointers

- fixed the setting of the 'length' element in arrays
(This used to be commit 431b4b6888434daa8d1306f0e98bae7b2fe0fddd)
2007-10-10 13:19:18 -05:00
Andrew Tridgell
3605d2d7ab r8194: delete the old hand-written ejs code for echo_AddOne. This is now
autogenerated by pidl
(This used to be commit 697b67ed572a458494fbf9172a341f6b621c84a3)
2007-10-10 13:19:18 -05:00
Andrew Tridgell
7c3fc18315 r8192: updated the glue code for the generated ejs functions from pidl
only handles a small subset of all IDL files so far
(This used to be commit 14b6436cc51f599572932bef72c49e0da4888073)
2007-10-10 13:19:18 -05:00
Andrew Tridgell
319f19eb90 r8114: fixed the build after tpots ejs commit ....
(This used to be commit 8649945cf9932a169190727f99e352ad68b0589f)
2007-10-10 13:19:10 -05:00
Tim Potter
766e8e1acb r8105: Add ejsrpc push/pull functions for uint16 and uint8.
(This used to be commit ee27943e215126a2048d1082437ef2597d913371)
2007-10-10 13:19:08 -05:00
Andrew Tridgell
9331714787 r8073: a successful rpc call from ejs!
the ejs_echo.c code is the stuff that needs to be auto-generated by
pidl. It only does echo_AddOne so far.

We also need a table for registering these calls. The code is
hard-wired for echo_AddOne for now.
(This used to be commit b1ea58ddc482c373783d16331dd07378010ba39a)
2007-10-10 13:19:05 -05:00
Andrew Tridgell
643e5d8239 r8069: the beginnings of code to allow rpc calls to be made from ejs
tpot, note that this shows how you can modify passed in MprVar
variables in C call
(This used to be commit a782541db3de6ca3b599a220265cf9e6cb0c4d7b)
2007-10-10 13:19:04 -05:00
Tim Potter
c36e1ae46c r7928: Add rename, unlink and list commands.
list() returns a list of strings, but maybe it should be a list of
objects with size, attrib, short name etc.
(This used to be commit 696aa182d5a159c26b80829e1eae9a9894cb7986)
2007-10-10 13:18:51 -05:00
Tim Potter
ae73a40ad4 r7924: Add mkdir() and rmdir() functions.
Write a macro to check tree handle parameters.
(This used to be commit 043feb131f1877886a9ab7e25ada5e54692f6487)
2007-10-10 13:18:51 -05:00
Tim Potter
864de2a4ab r7922: Comment out complicated connect/session/tree API for the moment. Replace
with tree_connect() and tree_disconnect() functions.
(This used to be commit 9ed763f7fa9e6138d8c1da29c1e0adf2e18cb5e1)
2007-10-10 13:18:50 -05:00
Andrew Tridgell
af237084ec r7633: this patch started as an attempt to make the dcerpc code use a given
event_context for the socket_connect() call, so that when things that
use dcerpc are running alongside anything else it doesn't block the
whole process during a connect.

Then of course I needed to change any code that created a dcerpc
connection (such as the auth code) to also take an event context, and
anything that called that and so on .... thus the size of the patch.

There were 3 places where I punted:

  - abartlet wanted me to add a gensec_set_event_context() call
    instead of adding it to the gensec init calls. Andrew, my
    apologies for not doing this. I didn't do it as adding a new
    parameter allowed me to catch all the callers with the
    compiler. Now that its done, we could go back and use
    gensec_set_event_context()

  - the ejs code calls auth initialisation, which means it should pass
    in the event context from the web server. I punted on that. Needs fixing.

  - I used a NULL event context in dcom_get_pipe(). This is equivalent
    to what we did already, but should be fixed to use a callers event
    context. Jelmer, can you think of a clean way to do that?

I also cleaned up a couple of things:

 - libnet_context_destroy() makes no sense. I removed it.

 - removed some unused vars in various places
(This used to be commit 3a3025485bdb8f600ab528c0b4b4eef0c65e3fc9)
2007-10-10 13:18:15 -05:00
Tim Potter
487d1afe30 r7570: Add tree, session and socket disconnect ejs functions.
(This used to be commit 63577628b0ee7e6b33053484190189e99cb56a5b)
2007-10-10 13:18:10 -05:00
Andrew Bartlett
00e2b7c1b4 r7530: Simply calling convention of lp_load().
This always loads all the services, as we now don't have an easy way
to split out smbd.

Andrew Bartlett
(This used to be commit 990e061939c76b559c4f5914c5fc6ca1b13e19dd)
2007-10-10 13:18:07 -05:00
Tim Potter
fb3874bfac r7505: Add more argument forms for session_setup().
Throw an exception if tree connect fails.
(This used to be commit 5b67f2c3d91487fec38b300b4f71792cd9164a78)
2007-10-10 13:18:01 -05:00
Tim Potter
ae23fe35e2 r7501: Fix credential initialisation in ejs session setup. Implement four
arg and anonymous version of command.

Implement ejs tconx.
(This used to be commit 3b7df1037de813d93b284d3b4438b083e668e29f)
2007-10-10 13:18:01 -05:00
Tim Potter
9e555f75e2 r7500: Initialise module subsystems.
(This used to be commit 564dfe14d00e80a0d373ab0fc17803ffaac0892e)
2007-10-10 13:18:01 -05:00
Tim Potter
16a5d7c175 r7477: Add MPR_TYPE_PTR to ejs_typeof().
(This used to be commit 8574f64ca2bda864f472067ae594285b6f5dc957)
2007-10-10 13:17:57 -05:00
Andrew Tridgell
6ef2a41aa1 r7461: this is the start of some code for mapping IDL onto ejs. This is hand
written code, and it doesn't work or even compile yet. I am committing
it to make it easier to discuss the approach with jelmer and tpot.

The intention is that this code will eventually end up being mostly
auto-generated (with the utility functions split out, just like
librpc/ndr/*.c)
(This used to be commit 30e876e9c2ba73a3bc26e7708110e00a8552a75e)
2007-10-10 13:17:55 -05:00
Tim Potter
aa7b6b3ea5 r7457: Return an ejs C pointer object from the ejs connect() function.
Add a session_setup() function that does an anonymous session setup.  Will
add credential passing later.
(This used to be commit 832332de5db7102085e7c44d4256fb199d8123eb)
2007-10-10 13:17:55 -05:00