diff options
Diffstat (limited to 'swat/esptest/registry_calls.esp')
-rw-r--r-- | swat/esptest/registry_calls.esp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/swat/esptest/registry_calls.esp b/swat/esptest/registry_calls.esp new file mode 100644 index 0000000000..a5c1ae7a12 --- /dev/null +++ b/swat/esptest/registry_calls.esp @@ -0,0 +1,37 @@ +<% +libinclude("base.js"); +libinclude("winreg.js"); +libinclude("server_call.js"); + +/* + server side call to return a listing of elements in a winreg path +*/ +function enum_path(binding, path) { + printf("enum_path(%s, %s)\n", binding, path); + if (path == "\\") { + printf("IN ROOT\n"); + var list = new Array("HKLM", "HKCR", "HKPD"); + return list; + } + printf("binding=%s path=%s\n", binding, path); + var reg = winreg_init(); + security_init(reg); + + reg.credentials = session.authinfo.credentials; + + var status = reg.connect(binding); + if (status.is_ok != true) { + printVars(status); + return undefined; + } + var list = winreg_enum_path(reg, path); + return list; +} + +/* register a call for clients to make */ +var call = servCallObj(); +call.add('enum_path', enum_path); + +/* run the function that was asked for */ +call.run(); +%> |