diff options
-rwxr-xr-x | source4/scripting/bin/smbstatus | 29 | ||||
-rw-r--r-- | source4/scripting/libjs/management.js | 21 |
2 files changed, 47 insertions, 3 deletions
diff --git a/source4/scripting/bin/smbstatus b/source4/scripting/bin/smbstatus index eaf3aa1616..df8864f7e8 100755 --- a/source4/scripting/bin/smbstatus +++ b/source4/scripting/bin/smbstatus @@ -13,7 +13,8 @@ var options = new Object(); ok = GetOptions(ARGV, options, "POPT_AUTOHELP", - "POPT_COMMON_SAMBA"); + "POPT_COMMON_SAMBA", + "nbt"); if (ok == false) { println("Failed to parse options: " + options.ERROR); return -1; @@ -62,8 +63,30 @@ function show_trees() } } +/* + show nbtd information +*/ +function show_nbt() +{ + var stats = nbtd_statistics(); + if (stats == undefined) { + println("nbt server not running"); + return; + } + var r; + println("NBT server statistics:"); + for (r in stats) { + print("\t" + r + ":\t" + stats[r] + "\n"); + } + println(""); +} -show_sessions(); -show_trees(); + +if (options['nbt'] != undefined) { + show_nbt(); +} else { + show_sessions(); + show_trees(); +} return 0; diff --git a/source4/scripting/libjs/management.js b/source4/scripting/libjs/management.js index d989541661..8b04247248 100644 --- a/source4/scripting/libjs/management.js +++ b/source4/scripting/libjs/management.js @@ -70,3 +70,24 @@ function smbsrv_trees() ret.length = count; return ret; } + +/* + return nbtd statistics +*/ +function nbtd_statistics() +{ + var conn = new Object(); + var irpc = irpc_init(); + status = irpc_connect(conn, "nbt_server"); + if (status.is_ok != true) { + return undefined; + } + + var io = irpcObj(); + io.input.level = irpc.NBTD_INFO_STATISTICS; + status = irpc.nbtd_information(conn, io); + if (status.is_ok != true) { + return undefined; + } + return io.results[0].info.stats; +} |