diff options
author | Jeremy Allison <jra@samba.org> | 2000-11-16 21:38:24 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2000-11-16 21:38:24 +0000 |
commit | 3aa7995660395ecb85c8e35b638fa9fbbb952558 (patch) | |
tree | 65659a956b0c400bdf3ef579201e49776bd0690d /source/profile | |
parent | b8753b92fbeb1d6768d0559e12ff2aa1d0148419 (diff) | |
download | samba-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.c | 2 |
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); } /******************************************************************* |