Browse Source

Added keepalive update to patch missing update_keepalive in dev branch

ichrispa 10 years ago
parent
commit
0def9a6071
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/server/ua_services_subscription.c

+ 7 - 0
src/server/ua_services_subscription.c

@@ -134,6 +134,8 @@ UA_Int32 Service_Publish(UA_Server *server, UA_Session *session,
     response->moreNotifications = UA_FALSE;
     response->notificationMessage.notificationDataSize = 0;
     
+    //printf("Validity: %lu, %lu\n", session->validTill - UA_DateTime_now(), session->timeout);
+    
     if (session == NULL ) response->responseHeader.serviceResult = UA_STATUSCODE_BADSESSIONIDINVALID;           
     else if ( session->channel == NULL || session->activated == UA_FALSE) response->responseHeader.serviceResult = UA_STATUSCODE_BADSESSIONNOTACTIVATED;
     if ( response->responseHeader.serviceResult != UA_STATUSCODE_GOOD) return 0;
@@ -185,6 +187,8 @@ UA_Int32 Service_Publish(UA_Server *server, UA_Session *session,
 	    response->availableSequenceNumbers = Subscription_getAvailableSequenceNumbers(sub);
 	  }	  
 	  
+	  // FIXME: This should be in processMSG();
+	  session->validTill = UA_DateTime_now() + session->timeout * 10000;
 	  return 0;
 	}
     }
@@ -203,6 +207,9 @@ UA_Int32 Service_Publish(UA_Server *server, UA_Session *session,
       response->availableSequenceNumbersSize = 0;
     }
     
+    // FIXME: This should be in processMSG();
+    session->validTill = UA_DateTime_now() + session->timeout * 10000;
+    
     response->diagnosticInfosSize = 0;
     response->diagnosticInfos     = 0;
     return 0;