2 backend code for Samba4 management
3 Copyright Andrew Tridgell 2005
4 Released under the GNU GPL v2 or later
9 return a list of current sessions
11 function smbsrv_sessions()
13 var conn = new Object();
14 var irpc = irpc_init();
15 status = irpc_connect(conn, "smb_server");
16 if (status.is_ok != true) {
21 io.input.level = irpc.SMBSRV_INFO_SESSIONS;
22 status = irpc.smbsrv_information(conn, io);
23 if (status.is_ok != true) {
27 /* gather the results into a single array */
28 var i, count=0, ret = new Object();
29 for (i=0;i<io.results.length;i++) {
30 var sessions = io.results[i].info.sessions.sessions;
32 for (j=0;j<sessions.length;j++) {
33 ret[count] = sessions[j];
42 return a list of current tree connects
44 function smbsrv_trees()
46 var conn = new Object();
47 var irpc = irpc_init();
48 status = irpc_connect(conn, "smb_server");
49 if (status.is_ok != true) {
54 io.input.level = irpc.SMBSRV_INFO_TREES;
55 status = irpc.smbsrv_information(conn, io);
56 if (status.is_ok != true) {
60 /* gather the results into a single array */
61 var i, count=0, ret = new Object();
62 for (i=0;i<io.results.length;i++) {
63 var trees = io.results[i].info.trees.trees;
65 for (j=0;j<trees.length;j++) {
66 ret[count] = trees[j];
75 return nbtd statistics
77 function nbtd_statistics()
79 var conn = new Object();
80 var irpc = irpc_init();
81 status = irpc_connect(conn, "nbt_server");
82 if (status.is_ok != true) {
87 io.input.level = irpc.NBTD_INFO_STATISTICS;
88 status = irpc.nbtd_information(conn, io);
89 if (status.is_ok != true) {
92 return io.results[0].info.stats;
96 see if a service is enabled
98 function service_enabled(name)
100 var services = lpGet("server services");
102 for (i=0;i<services.length;i++) {
103 if (services[i] == name) {
111 show status of a server
113 function server_status(name)
115 var conn = new Object();
118 var irpc = irpc_init();
120 if (!service_enabled(name)) {
124 status = irpc_connect(conn, name + "_server");
125 if (status.is_ok != true) {
130 status = irpc.irpc_uptime(conn, io);
131 if (status.is_ok != true) {
132 return "NOT RESPONDING";
139 show status of a stream server
141 function stream_server_status(name)
143 var conn = new Object();
144 var irpc = irpc_init();
146 if (!service_enabled(name)) {
149 status = irpc_connect(conn, name + "_server");
150 if (status.is_ok != true) {
151 return "0 connections";
155 status = irpc.irpc_uptime(conn, io);
156 if (status.is_ok != true) {
157 return "NOT RESPONDING";
160 var n = io.results.length;
161 return sprintf("%u connection%s", n, plural(n));