Browse Source

some more tests passed in "Subscription Basic" section

Stasik0 8 years ago
parent
commit
8950931810
2 changed files with 8 additions and 1 deletions
  1. 6 0
      src/server/ua_services_subscription.c
  2. 2 1
      src/server/ua_subscription.c

+ 6 - 0
src/server/ua_services_subscription.c

@@ -340,6 +340,12 @@ void Service_DeleteSubscriptions(UA_Server *server, UA_Session *session,
                                  const UA_DeleteSubscriptionsRequest *request,
                                  UA_DeleteSubscriptionsResponse *response) {
     UA_LOG_DEBUG_SESSION(server->config.logger, session, "Processing DeleteSubscriptionsRequest");
+
+    if(request->subscriptionIdsSize == 0){
+        response->responseHeader.serviceResult = UA_STATUSCODE_BADNOTHINGTODO;
+        return;
+    }
+
     response->results = UA_malloc(sizeof(UA_StatusCode) * request->subscriptionIdsSize);
     if(!response->results) {
         response->responseHeader.serviceResult = UA_STATUSCODE_BADOUTOFMEMORY;

+ 2 - 1
src/server/ua_subscription.c

@@ -248,7 +248,7 @@ void UA_Subscription_publishCallback(UA_Server *server, UA_Subscription *sub) {
             sub->state = UA_SUBSCRIPTIONSTATE_LATE;
         } else {
             sub->currentLifetimeCount++;
-            if(sub->currentLifetimeCount >= sub->lifeTimeCount) {
+            if(sub->currentLifetimeCount > sub->lifeTimeCount) {
                 UA_LOG_INFO(server->config.logger, UA_LOGCATEGORY_SERVER,
                     "Session %u | Subscription %u | End of lifetime for subscription",
                             sub->session->authenticationToken.identifier.numeric, sub->subscriptionID);
@@ -257,6 +257,7 @@ void UA_Subscription_publishCallback(UA_Server *server, UA_Subscription *sub) {
         }
         return;
     }
+
     SIMPLEQ_REMOVE_HEAD(&sub->session->responseQueue, listEntry);
     UA_PublishResponse *response = &pre->response;
     UA_UInt32 requestId = pre->requestId;