vfs_streams_xattr: implement all missing handle based VFS functions
[metze/samba/wip.git] / source3 / lib / tallocmsg.c
1 /* 
2    samba -- Unix SMB/CIFS implementation.
3    Copyright (C) 2001, 2002 by Martin Pool
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 #include "includes.h"
20 #include "messages.h"
21 #include "lib/util/talloc_report.h"
22
23 /**
24  * Respond to a POOL_USAGE message by sending back string form of memory
25  * usage stats.
26  **/
27 static void msg_pool_usage(struct messaging_context *msg_ctx,
28                            void *private_data, 
29                            uint32_t msg_type, 
30                            struct server_id src,
31                            DATA_BLOB *data)
32 {
33         char *report;
34
35         SMB_ASSERT(msg_type == MSG_REQ_POOL_USAGE);
36
37         DEBUG(2,("Got POOL_USAGE\n"));
38
39         report = talloc_report_str(msg_ctx, NULL);
40
41         if (report != NULL) {
42                 messaging_send_buf(msg_ctx, src, MSG_POOL_USAGE,
43                                    (uint8_t *)report,
44                                    talloc_get_size(report)-1);
45         }
46
47         talloc_free(report);
48 }
49
50 /**
51  * Register handler for MSG_REQ_POOL_USAGE
52  **/
53 void register_msg_pool_usage(struct messaging_context *msg_ctx)
54 {
55         messaging_register(msg_ctx, NULL, MSG_REQ_POOL_USAGE, msg_pool_usage);
56         DEBUG(2, ("Registered MSG_REQ_POOL_USAGE\n"));
57 }