Fix registration bug
[anna.git] / source / diameter.comm / Engine.cpp
index 56aa1b6..d00724b 100644 (file)
@@ -345,15 +345,14 @@ throw(anna::RuntimeException) {
   // Assignments (it could be done at allocate):
 
   if((a_cer.isEmpty()) || (a_dwr.isEmpty()))
-    throw anna::RuntimeException("Must define valid CER and DWR messages by mean setCERandDWR()", ANNA_FILE_LOCATION);
+    throw anna::RuntimeException("Must define valid CER and DWR messages by mean setClientCERandDWR()", ANNA_FILE_LOCATION);
 
   result->a_cer.setBody(a_cer);
   result->a_dwr.setBody(a_dwr);
   result->setWatchdogPeriod(a_watchdogPeriod);
   result->a_parent = server;
   result->a_socketId = socketId;
-  result->initializeSequences(); // despu�s de asignar el server y el socketId (*)
-  // (*) Las secuencias se basan en la semilla:    srand(::time(NULL) + anna::functions::exclusiveHash(anna::functions::asString("%s:%d|%d", getAddress().c_str(), getPort(), a_socketId)));
+  result->initializeSequences(); // despues de asignar el server y el socketId (sequences are seed-based by mean exclusive hash)
   result->a_engine = this;
   clientSession_key key = ClientSession::getKey(server->getAddress(), server->getPort(), socketId);
   a_clientSessions.insert(clientSession_value_type(key, result));
@@ -919,7 +918,6 @@ comm::Engine::entity_key comm::Engine::getEntityKey(const socket_v &v) const thr
   }
 
   result.erase(result.size() - 1, 1);  // remove last space
-  //return anna::functions::exclusiveHash(result);
   return result;
 }
 
@@ -1056,7 +1054,13 @@ bool comm::Engine::refreshAvailabilityForLocalServers() throw() {
 void comm::Engine::readDPA(anna::DataBlock &dpa, const anna::DataBlock & dpr) throw() {
 
   // Check for base protocol codec engine health:
-  assertBaseProtocolHealth();
+  try {
+    assertBaseProtocolHealth();
+  }
+  catch(anna::RuntimeException &ex) {
+    ex.trace();
+    return;
+  }
 
   // Default DPA implementation:
   //