r7321: add nbtd statistics serving over irpc
authorAndrew Tridgell <tridge@samba.org>
Mon, 6 Jun 2005 05:47:52 +0000 (05:47 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:17:41 +0000 (13:17 -0500)
source/nbt_server/nbt_server.c
source/nbt_server/nbt_server.h
source/torture/local/irpc.c

index 2c7615216076d55f4b71e2f6e3ae1b791052fb46..6139b78810f48a12621e08e7b33c0c5ec2ce9e33 100644 (file)
 #include "nbt_server/nbt_server.h"
 
 
+/*
+  serve out the nbt statistics
+*/
+static NTSTATUS nbtd_information(struct irpc_message *msg, 
+                                struct nbtd_information *r)
+{
+       struct nbtd_server *server = talloc_get_type(msg->private, struct nbtd_server);
+
+       switch (r->in.level) {
+       case NBTD_INFO_STATISTICS:
+               r->out.info.stats = &server->stats;
+               break;
+       }
+
+       return NT_STATUS_OK;
+}
+
+
+
 /*
   startup the nbtd task
 */
@@ -64,6 +83,14 @@ static void nbtd_task_init(struct task_server *task)
                return;
        }
 
+       /* setup monitoring */
+       status = IRPC_REGISTER(task->msg_ctx, irpc, NBTD_INFORMATION, 
+                              nbtd_information, nbtsrv);
+       if (!NT_STATUS_IS_OK(status)) {
+               task_terminate(task, "nbtd failed to setup monitoring");
+               return;
+       }
+
        /* start the process of registering our names on all interfaces */
        nbtd_register_names(nbtsrv);
 }
index e2b8584f5a8bc60ae842a309fe0ab387a053cc4f..b9ed265b8811c1cf15dfae72965b3de5f6c7073e 100644 (file)
@@ -22,6 +22,8 @@
 
 #include "libcli/nbt/libnbt.h"
 #include "libcli/dgram/libdgram.h"
+#include "librpc/gen_ndr/ndr_irpc.h"
+#include "lib/messaging/irpc.h"
 
 /* 
    a list of our registered names on each interface
@@ -70,6 +72,8 @@ struct nbtd_server {
        struct nbtd_interface *wins_interface;
 
        struct wins_server *winssrv;
+
+       struct nbtd_statistics stats;
 };
 
 
index 65564fc7b7b447ac4c7a101321c12ba597520203..9e4527ee7c411a460d623d6c080ad2456599cd7a 100644 (file)
@@ -150,7 +150,7 @@ BOOL torture_local_irpc(void)
        msg_ctx = messaging_init(mem_ctx, MSG_ID, ev);
 
        /* register the server side function */
-       IRPC_REGISTER(msg_ctx, rpcecho, ECHO_ADDONE, irpc_AddOne);
+       IRPC_REGISTER(msg_ctx, rpcecho, ECHO_ADDONE, irpc_AddOne, NULL);
 
        ret &= test_addone(mem_ctx, msg_ctx);
        ret &= test_speed(mem_ctx, msg_ctx, ev);