r20174: If we're only going to call one handler per message
authorJeremy Allison <jra@samba.org>
Thu, 14 Dec 2006 22:11:17 +0000 (22:11 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:16:29 +0000 (12:16 -0500)
then terminate the traversal once we've done that.
Jeremy.
(This used to be commit da3d0b62340b545950ea2081f30c252fd4609981)

source3/lib/messages.c

index 66bbebac270f4164e23f634c5b4ca33209e79dae..de17a03afc19d9a59a6ea7389c905da42d1e0587 100644 (file)
@@ -483,23 +483,23 @@ void message_dispatch(void)
                return;
 
        for (buf = msgs_buf; message_recv(msgs_buf, total_len, &msg_type, &src, &buf, &len); buf += len) {
-               struct dispatch_fns *dfn, *next;
+               struct dispatch_fns *dfn;
 
                DEBUG(10,("message_dispatch: received msg_type=%d "
                          "src_pid=%u\n", msg_type,
                          (unsigned int) procid_to_pid(&src)));
 
                n_handled = 0;
-               for (dfn = dispatch_fns; dfn; dfn = next) {
-                       next = dfn->next;                       
+               for (dfn = dispatch_fns; dfn; dfn = dfn->next) {
                        if (dfn->msg_type == msg_type) {
                                DEBUG(10,("message_dispatch: processing message of type %d.\n", msg_type));
                                dfn->fn(msg_type, src, len ? (void *)buf : NULL, len);
                                n_handled++;
+                               break;
                        }
                }
                if (!n_handled) {
-                       DEBUG(5,("message_dispatch: warning: no handlers registed for "
+                       DEBUG(5,("message_dispatch: warning: no handler registed for "
                                 "msg_type %d in pid %u\n",
                                 msg_type, (unsigned int)sys_getpid()));
                }