summaryrefslogtreecommitdiff
path: root/swat/esptest/registry_calls.esp
diff options
context:
space:
mode:
Diffstat (limited to 'swat/esptest/registry_calls.esp')
-rw-r--r--swat/esptest/registry_calls.esp37
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();
+%>