summaryrefslogtreecommitdiffstats
path: root/source3/lib/messages.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2011-08-10 23:10:48 -0400
committerAndreas Schneider <asn@samba.org>2011-08-11 14:58:01 +0200
commitb706fd37f6d0e7e66718488d069053687ad0664c (patch)
treea2440046423fca0764fee98637b8d43499c91fca /source3/lib/messages.c
parentcb1af61cb1988931654ad14c787d2493ef629a58 (diff)
downloadsamba-b706fd37f6d0e7e66718488d069053687ad0664c.tar.gz
samba-b706fd37f6d0e7e66718488d069053687ad0664c.tar.xz
samba-b706fd37f6d0e7e66718488d069053687ad0664c.zip
s3-messaging: Fix messaging classes.
This has been broken since ff0ac5b0 (May 2007). Basically all messages were belonging to the General class except for CTDB messages. This fixed the message_send_all() function to correctly compute the class, and fixes registrations to include all they need to cope with the fact not all messages are of calss general (registrations rotted a bit because as long as FLAG_MSG_GENERAL was defined the process woould receive all messages). Signed-off-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/lib/messages.c')
-rw-r--r--source3/lib/messages.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c
index 0cdef63fdc2..57a2e22f726 100644
--- a/source3/lib/messages.c
+++ b/source3/lib/messages.c
@@ -146,18 +146,21 @@ bool message_send_all(struct messaging_context *msg_ctx,
struct msg_all msg_all;
msg_all.msg_type = msg_type;
- if (msg_type < 1000)
+ if (msg_type < 0x100) {
msg_all.msg_flag = FLAG_MSG_GENERAL;
- else if (msg_type > 1000 && msg_type < 2000)
+ } else if (msg_type > 0x100 && msg_type < 0x200) {
msg_all.msg_flag = FLAG_MSG_NMBD;
- else if (msg_type > 2100 && msg_type < 3000)
+ } else if (msg_type > 0x200 && msg_type < 0x300) {
msg_all.msg_flag = FLAG_MSG_PRINT_GENERAL;
- else if (msg_type > 3000 && msg_type < 4000)
+ } else if (msg_type > 0x300 && msg_type < 0x400) {
msg_all.msg_flag = FLAG_MSG_SMBD;
- else if (msg_type > 4000 && msg_type < 5000)
+ } else if (msg_type > 0x400 && msg_type < 0x600) {
+ msg_all.msg_flag = FLAG_MSG_WINBIND;
+ } else if (msg_type > 4000 && msg_type < 5000) {
msg_all.msg_flag = FLAG_MSG_DBWRAP;
- else
- return False;
+ } else {
+ return false;
+ }
msg_all.buf = buf;
msg_all.len = len;
@@ -167,7 +170,7 @@ bool message_send_all(struct messaging_context *msg_ctx,
serverid_traverse(traverse_fn, &msg_all);
if (n_sent)
*n_sent = msg_all.n_sent;
- return True;
+ return true;
}
struct event_context *messaging_event_context(struct messaging_context *msg_ctx)