summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/scripting/bin/smbstatus26
-rw-r--r--source4/scripting/libjs/management.js33
2 files changed, 59 insertions, 0 deletions
diff --git a/source4/scripting/bin/smbstatus b/source4/scripting/bin/smbstatus
new file mode 100755
index 0000000000..fd3009012b
--- /dev/null
+++ b/source4/scripting/bin/smbstatus
@@ -0,0 +1,26 @@
+#!/bin/sh
+exec smbscript "$0" ${1+"$@"}
+/*
+ provide information on connected users and open files
+ Copyright Andrew Tridgell 2005
+ Released under the GNU GPL v2 or later
+*/
+
+libinclude("base.js");
+libinclude("management.js");
+
+var options = new Object();
+
+ok = GetOptions(ARGV, options,
+ "POPT_AUTOHELP",
+ "POPT_COMMON_SAMBA");
+if (ok == false) {
+ println("Failed to parse options: " + options.ERROR);
+ return -1;
+}
+
+
+var sessions = smbsrv_sessions();
+printVars(sessions);
+
+return 0;
diff --git a/source4/scripting/libjs/management.js b/source4/scripting/libjs/management.js
new file mode 100644
index 0000000000..371ddc026b
--- /dev/null
+++ b/source4/scripting/libjs/management.js
@@ -0,0 +1,33 @@
+/*
+ backend code for Samba4 management
+ Copyright Andrew Tridgell 2005
+ Released under the GNU GPL v2 or later
+*/
+
+/*
+ return a list of current sessions
+*/
+function smbsrv_sessions()
+{
+ var conn = new Object();
+ var irpc = irpc_init();
+ status = irpc_connect(conn, "smb_server");
+ assert(status.is_ok == true);
+
+ var io = irpcObj();
+ io.input.level = irpc.SMBSRV_INFO_SESSIONS;
+ status = irpc.smbsrv_information(conn, io);
+
+ /* gather the results into a single array */
+ var i, count=0, ret = new Object();
+ for (i=0;i<io.results.length;i++) {
+ var sessions = io.results[i].info.sessions.sessions;
+ var j;
+ for (j=0;j<sessions.length;j++) {
+ ret[count] = sessions[j];
+ count++;
+ }
+ }
+ ret.length = count;
+ return ret;
+}