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 lp = loadparm_init();
101 var services = lp.get("server services");
103 for (i=0;i<services.length;i++) {
104 if (services[i] == name) {
112 show status of a server
114 function server_status(name)
116 var conn = new Object();
119 var irpc = irpc_init();
121 if (!service_enabled(name)) {
125 status = irpc_connect(conn, name + "_server");
126 if (status.is_ok != true) {
131 status = irpc.irpc_uptime(conn, io);
132 if (status.is_ok != true) {
133 return "NOT RESPONDING";
140 show status of a stream server
142 function stream_server_status(name)
144 var conn = new Object();
145 var irpc = irpc_init();
147 if (!service_enabled(name)) {
150 status = irpc_connect(conn, name + "_server");
151 if (status.is_ok != true) {
152 return "0 connections";
156 status = irpc.irpc_uptime(conn, io);
157 if (status.is_ok != true) {
158 return "NOT RESPONDING";
161 var n = io.results.length;
162 return sprintf("%u connection%s", n, plural(n));