summaryrefslogtreecommitdiffstats
path: root/source/profile
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-11-16 21:38:24 +0000
committerJeremy Allison <jra@samba.org>2000-11-16 21:38:24 +0000
commit3aa7995660395ecb85c8e35b638fa9fbbb952558 (patch)
tree65659a956b0c400bdf3ef579201e49776bd0690d /source/profile
parentb8753b92fbeb1d6768d0559e12ff2aa1d0148419 (diff)
downloadsamba-3aa7995660395ecb85c8e35b638fa9fbbb952558.tar.gz
samba-3aa7995660395ecb85c8e35b638fa9fbbb952558.tar.xz
samba-3aa7995660395ecb85c8e35b638fa9fbbb952558.zip
Fix for a problem with the new messaging system. If a sender is using the
messaging system as a notification mechanism, and the speed of notification greatly exceeds the speed of message recovery, then you get a massively (>75Mb) growing tdb. If the message is a simple notification, then the message is static, and you only need one of them in transit to a target process at any one time. This patch adds a BOOL "allow_duplicates" to the message_send_XX primitives. If set to False, then before sending a message the sender checks the existing message queue for a target pid for a duplicate of this message, and doesn't add to it if one already exists. Also added code into msgtest.c to test this. Jeremy.
Diffstat (limited to 'source/profile')
-rw-r--r--source/profile/profile.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source/profile/profile.c b/source/profile/profile.c
index 80584adfa2a..dce1d78a9b6 100644
--- a/source/profile/profile.c
+++ b/source/profile/profile.c
@@ -86,7 +86,7 @@ void reqprofile_message(int msg_type, pid_t src, void *buf, size_t len)
level = 0;
#endif
DEBUG(1,("INFO: Received REQ_PROFILELEVEL message from PID %d\n",src));
- message_send_pid(src, MSG_PROFILELEVEL, &level, sizeof(int));
+ message_send_pid(src, MSG_PROFILELEVEL, &level, sizeof(int), True);
}
/*******************************************************************