summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-12-20 20:23:06 +0000
committerJeremy Allison <jra@samba.org>2002-12-20 20:23:06 +0000
commit7f23546730e49569d41a5edd0c47bb559c4f812d (patch)
tree7d7d2229881b2e9f05130a07c6cb2dd912c89098 /source3/smbd
parent45a6532727888c710d537c6e1e03466af2a87881 (diff)
downloadsamba-7f23546730e49569d41a5edd0c47bb559c4f812d.tar.gz
samba-7f23546730e49569d41a5edd0c47bb559c4f812d.tar.bz2
samba-7f23546730e49569d41a5edd0c47bb559c4f812d.zip
Forward port the change to talloc_init() to make all talloc contexts
named. Ensure we can query them. Jeremy. (This used to be commit 842e08e52a665ae678eea239759bb2de1a0d7b33)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/nttrans.c4
-rw-r--r--source3/smbd/server.c31
2 files changed, 26 insertions, 9 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index bdefa6c4c1..740f450db6 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -985,7 +985,7 @@ static NTSTATUS set_sd(files_struct *fsp, char *data, uint32 sd_len, uint32 secu
* Init the parse struct we will unmarshall from.
*/
- if ((mem_ctx = talloc_init()) == NULL) {
+ if ((mem_ctx = talloc_init("set_sd")) == NULL) {
DEBUG(0,("set_sd: talloc_init failed.\n"));
return NT_STATUS_NO_MEMORY;
}
@@ -1538,7 +1538,7 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
*ppparams = params;
- if ((mem_ctx = talloc_init()) == NULL) {
+ if ((mem_ctx = talloc_init("call_nt_transact_query_security_desc")) == NULL) {
DEBUG(0,("call_nt_transact_query_security_desc: talloc_init failed.\n"));
return ERROR_DOS(ERRDOS,ERRnomem);
}
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 68792117ea..9bc02c3e17 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -467,6 +467,25 @@ BOOL reload_services(BOOL test)
return(ret);
}
+/*******************************************************************
+ Print out all talloc memory info.
+********************************************************************/
+
+void return_all_talloc_info(int msg_type, pid_t src_pid, void *buf, size_t len)
+{
+ TALLOC_CTX *ctx = talloc_init("info context");
+ char *info = NULL;
+
+ if (!ctx)
+ return;
+
+ info = talloc_describe_all(ctx);
+ if (info)
+ DEBUG(10,(info));
+ message_send_pid(src_pid, MSG_TALLOC_USAGE, info, info ? strlen(info) + 1 : 0, True);
+ talloc_destroy(ctx);
+}
+
#if DUMP_CORE
/*******************************************************************
prepare to dump a core file - carefully!
@@ -763,19 +782,18 @@ static BOOL init_structs(void )
setpgid( (pid_t)0, (pid_t)0);
#endif
- if (!directory_exist(lp_lockdir(), NULL)) {
+ if (!directory_exist(lp_lockdir(), NULL))
mkdir(lp_lockdir(), 0755);
- }
- if (is_daemon) {
+ if (is_daemon)
pidfile_create("smbd");
- }
- if (!message_init()) {
+ if (!message_init())
exit(1);
- }
+
register_msg_pool_usage();
register_dmalloc_msgs();
+ message_register(MSG_REQ_TALLOC_USAGE, return_all_talloc_info);
if (!print_backend_init())
exit(1);
@@ -844,7 +862,6 @@ static BOOL init_structs(void )
/* register our message handlers */
message_register(MSG_SMB_FORCE_TDIS, msg_force_tdis);
- talloc_init_named("dummy!");
smbd_process();