Browse Source

return correct error codes in attributes service

Julius Pfrommer 10 years ago
parent
commit
b0da2fcb2b
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/server/ua_services_attribute.c

+ 7 - 1
src/server/ua_services_attribute.c

@@ -8,7 +8,7 @@
 #define CHECK_NODECLASS(CLASS)                                  \
     if(!(node->nodeClass & (CLASS))) {                          \
         v->hasStatus = UA_TRUE;                                 \
-        v->status = UA_STATUSCODE_BADNOTREADABLE;               \
+        v->status = UA_STATUSCODE_BADATTRIBUTEIDINVALID;        \
         break;                                                  \
     }
 
@@ -254,6 +254,12 @@ void Service_Read(UA_Server *server, UA_Session *session, const UA_ReadRequest *
         response->responseHeader.serviceResult = UA_STATUSCODE_BADNOTHINGTODO;
         return;
     }
+
+    if(request->maxAge < 0) {
+        response->responseHeader.serviceResult = UA_STATUSCODE_BADMAXAGEINVALID;
+        return;
+    }
+
     size_t size = request->nodesToReadSize;
 
     response->results = UA_Array_new(&UA_TYPES[UA_TYPES_DATAVALUE], size);