Revision: 40866
          http://brlcad.svn.sourceforge.net/brlcad/?rev=40866&view=rev
Author:   davidloman
Date:     2010-09-29 19:22:24 +0000 (Wed, 29 Sep 2010)

Log Message:
-----------
Make NetMsgRouter send back an UNHANDLED_MSG_TYPE error if there is no routing 
for recv-ed Msg Type.

Modified Paths:
--------------
    rt^3/trunk/include/NetMsgTypes.h
    rt^3/trunk/src/libNet/NetMsgRouter.cxx

Modified: rt^3/trunk/include/NetMsgTypes.h
===================================================================
--- rt^3/trunk/include/NetMsgTypes.h    2010-09-29 19:18:58 UTC (rev 40865)
+++ rt^3/trunk/include/NetMsgTypes.h    2010-09-29 19:22:24 UTC (rev 40866)
@@ -62,8 +62,9 @@
 #define CMD_SHUTDOWN                           0x9000
 
 /*  Failure Codes */
-const char OPERATION_NOT_AVAILABLE = 0x01;
-const char ACCOUNT_VALIDATION_FAIL = 0x02;
+const char UNHANDLED_MSG_TYPE = 0x01;
+const char OPERATION_NOT_AVAILABLE = 0x02;
+const char ACCOUNT_VALIDATION_FAIL = 0x03;
 
 
 

Modified: rt^3/trunk/src/libNet/NetMsgRouter.cxx
===================================================================
--- rt^3/trunk/src/libNet/NetMsgRouter.cxx      2010-09-29 19:18:58 UTC (rev 
40865)
+++ rt^3/trunk/src/libNet/NetMsgRouter.cxx      2010-09-29 19:22:24 UTC (rev 
40866)
@@ -69,10 +69,17 @@
        s.append(QString::number(msg->getMsgType()));
        Logger::getInstance()->logINFO("NetMsgRouter", s);
 
-       for (int i = 0; i < list->length(); ++i) {
-               list->at(i)->handleNetMsg(msg);
+       if (list->length() == 0) {
+               //If no routing table, send back an error
+               TypeOnlyMsg* tom = new TypeOnlyMsg(UNHANDLED_MSG_TYPE);
+               origin->send(tom);
+               return;
+
+       } else {
+               for (int i = 0; i < list->length(); ++i) {
+                       list->at(i)->handleNetMsg(msg);
+               }
        }
-
        //Now delete msg
        delete msg;
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to