瀏覽代碼

test for securechannel timeouts in the client

Julius Pfrommer 7 年之前
父節點
當前提交
570d175ac7
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      src/client/ua_client.c

+ 8 - 0
src/client/ua_client.c

@@ -180,6 +180,14 @@ processServiceResponse(void *application, UA_SecureChannel *channel,
         return UA_STATUSCODE_BADTCPMESSAGETYPEINVALID;
     }
 
+    /* Has the SecureChannel timed out?
+     * TODO: Solve this for client and server together */
+    if(rd->client->state >= UA_CLIENTSTATE_SECURECHANNEL &&
+       (channel->securityToken.createdAt +
+        (channel->securityToken.revisedLifetime * UA_MSEC_TO_DATETIME))
+       < UA_DateTime_nowMonotonic())
+        return UA_STATUSCODE_BADSECURECHANNELCLOSED;
+
     /* Forward declaration for the goto */
     UA_NodeId expectedNodeId;
     const UA_NodeId serviceFaultNodeId =