Author: jra
Date: 2006-12-14 22:11:17 +0000 (Thu, 14 Dec 2006)
New Revision: 20174

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20174

Log:
If we're only going to call one handler per message
then terminate the traversal once we've done that.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/lib/messages.c
   branches/SAMBA_3_0_24/source/lib/messages.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/messages.c
===================================================================
--- branches/SAMBA_3_0/source/lib/messages.c    2006-12-14 17:00:10 UTC (rev 
20173)
+++ branches/SAMBA_3_0/source/lib/messages.c    2006-12-14 22:11:17 UTC (rev 
20174)
@@ -483,23 +483,23 @@
                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()));
                }

Modified: branches/SAMBA_3_0_24/source/lib/messages.c
===================================================================
--- branches/SAMBA_3_0_24/source/lib/messages.c 2006-12-14 17:00:10 UTC (rev 
20173)
+++ branches/SAMBA_3_0_24/source/lib/messages.c 2006-12-14 22:11:17 UTC (rev 
20174)
@@ -483,23 +483,23 @@
                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()));
                }

Reply via email to