diff options
author | Simo Sorce <idra@samba.org> | 2011-08-10 23:10:48 -0400 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2011-08-11 14:58:01 +0200 |
commit | b706fd37f6d0e7e66718488d069053687ad0664c (patch) | |
tree | a2440046423fca0764fee98637b8d43499c91fca /source3/lib | |
parent | cb1af61cb1988931654ad14c787d2493ef629a58 (diff) | |
download | samba-b706fd37f6d0e7e66718488d069053687ad0664c.tar.gz samba-b706fd37f6d0e7e66718488d069053687ad0664c.tar.bz2 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')
-rw-r--r-- | source3/lib/messages.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 0cdef63fdc..57a2e22f72 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) |