summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/Makefile.in1
-rw-r--r--source3/lib/tallocmsg.c45
-rw-r--r--source3/smbd/server.c1
-rw-r--r--source3/utils/smbcontrol.c2
4 files changed, 47 insertions, 2 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 0beecd2d1f..c0a35b75c7 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -121,6 +121,7 @@ LIB_OBJ = lib/charcnv.o lib/debug.o lib/fault.o \
lib/util.o lib/util_sock.o lib/util_sec.o smbd/ssl.o \
lib/talloc.o lib/hash.o lib/substitute.o lib/fsusage.o \
lib/ms_fnmatch.o lib/select.o lib/error.o lib/messages.o \
+ lib/tallocmsg.o \
lib/md5.o lib/hmacmd5.o lib/iconv.o lib/smbpasswd.o \
nsswitch/wb_client.o nsswitch/wb_common.o \
intl/lang_tdb.o lib/account_pol.o $(TDB_OBJ)
diff --git a/source3/lib/tallocmsg.c b/source3/lib/tallocmsg.c
new file mode 100644
index 0000000000..e98e457880
--- /dev/null
+++ b/source3/lib/tallocmsg.c
@@ -0,0 +1,45 @@
+/*
+ samba -- Unix SMB/Netbios implementation.
+ Copyright (C) 2001 by Martin Pool
+
+ 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.
+*/
+
+#include "includes.h"
+
+/**
+ * @file tallocmsg.c
+ *
+ * Glue code between talloc profiling and the Samba messaging system.
+ **/
+
+
+/**
+ * Respond to a POOL_USAGE message by sending back string form of memory
+ * usage stats.
+ **/
+void msg_pool_usage(int msg_type, pid_t pid, void *buf, size_t len)
+{
+ DEBUG(2,("Got POOL_USAGE\n"));
+}
+
+/**
+ * Register handler for MSG_REQ_POOL_USAGE
+ **/
+void register_msg_pool_usage(void)
+{
+ message_register(MSG_REQ_POOL_USAGE, msg_pool_usage);
+ DEBUG(2, ("Registered MSG_REQ_POOL_USAGE\n"));
+}
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 101d49c144..900f5b4846 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -805,6 +805,7 @@ static void usage(char *pname)
if (!message_init()) {
exit(1);
}
+ register_msg_pool_usage();
/* Setup the main smbd so that we can get messages. */
claim_connection(NULL,"",MAXSTATUS,True);
diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c
index 98e998a4f7..4f89ae37b5 100644
--- a/source3/utils/smbcontrol.c
+++ b/source3/utils/smbcontrol.c
@@ -401,7 +401,6 @@ static BOOL do_command(char *dest, char *msg_name, int iparams, char **params)
break;
case MSG_REQ_POOL_USAGE:
- {
if (!pool_usage_registered) {
message_register(MSG_POOL_USAGE, pool_usage_cb);
pool_usage_registered = True;
@@ -412,7 +411,6 @@ static BOOL do_command(char *dest, char *msg_name, int iparams, char **params)
break;
}
- }
return (True);
}