r8760: Rework monitor messaging code a bit, as Metze once suggested.
authorRafal Szczesniak <mimir@samba.org>
Mon, 25 Jul 2005 22:56:28 +0000 (22:56 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:30:03 +0000 (13:30 -0500)
enum type has now been replaced with unsigned 32-bit field and
message data is passed as void pointer.

This allows various extension implementers to plug their monitor
messages in more easily.

rafal
(This used to be commit 4a6ab58133a59d3da3209b3e46c2a8cf848d25e7)

source4/libcli/composite/monitor.h
source4/libnet/userinfo.h [new file with mode: 0644]
source4/libnet/userman.h [new file with mode: 0644]

index 729f37204fc145ab1213f51b792d42c328bb21b6..6173ca9057ff627e5795414962f3a8b177bad3e6 100644 (file)
 */
 
 /*
- * Monitor structure definition. Composite function monitoring allows client
- * application to be notified on function progress. This enables eg. gui
- * client to display progress bars, status messages, etc.
+ * Monitor structure and message types definitions. Composite function monitoring
+ * allows client application to be notified on function progress. This enables
+ * eg. gui client to display progress bars, status messages, etc.
  */
 
-enum monitor_type {
-       rpc_create_user,
-       rpc_open_user,
-       rpc_query_user,
-       rpc_close_user
-};
-
-struct monitor_msg {
-       enum monitor_type type;
-       union monitor_data {
-               struct rpc_create_user {
-                       uint32_t rid;
-               } rpc_create_user;
 
-               struct rpc_open_user {
-                       uint32_t rid, access_mask;
-               } rpc_open_user;
+#define  rpc_create_user        (0x00000001)        /* userman.h */
+#define  rpc_open_user          (0x00000002)        /* userinfo.h */
+#define  rpc_query_user         (0x00000003)        /* userinfo.h */
+#define  rpc_close_user         (0x00000004)        /* userinfo.h */
 
-               struct rpc_query_user {
-                       uint16_t level;
-               } rpc_query_user;
 
-               struct rpc_close_user {
-                       uint32_t rid;
-               } rpc_close_user;
-       } data;
+struct monitor_msg {
+       uint32_t   type;
+       void       *data;
+       size_t     data_size;
 };
diff --git a/source4/libnet/userinfo.h b/source4/libnet/userinfo.h
new file mode 100644 (file)
index 0000000..d1e6972
--- /dev/null
@@ -0,0 +1,36 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Copyright (C) Rafal Szczesniak 2005
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+
+/*
+ * Monitor messages sent from userinfo.c functions
+ */
+
+struct msg_rpc_open_user {
+       uint32_t rid, access_mask;
+};
+
+struct msg_rpc_query_user {
+       uint16_t level;
+};
+
+struct msg_rpc_close_user {
+       uint32_t rid;
+};
diff --git a/source4/libnet/userman.h b/source4/libnet/userman.h
new file mode 100644 (file)
index 0000000..6ad842f
--- /dev/null
@@ -0,0 +1,28 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Copyright (C) Rafal Szczesniak 2005
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+
+/*
+ * Monitor messages sent from userman.c functions
+ */
+
+struct msg_rpc_create_user {
+       uint32_t rid;
+};