|
@@ -104,5 +104,22 @@ UA_UInt32 UA_Session_getUniqueSubscriptionID(UA_Session *session) {
|
|
|
return ++(session->lastSubscriptionID);
|
|
|
}
|
|
|
|
|
|
+void UA_Session_answerPublishRequestsWithoutSubscription(UA_Session *session) {
|
|
|
+ /* Do we have publish requests but no subscriptions? */
|
|
|
+ if(LIST_FIRST(&session->serverSubscriptions))
|
|
|
+ return;
|
|
|
+
|
|
|
+ /* Send a response for every queued request */
|
|
|
+ UA_PublishResponseEntry *pre;
|
|
|
+ while((pre = SIMPLEQ_FIRST(&session->responseQueue))) {
|
|
|
+ SIMPLEQ_REMOVE_HEAD(&session->responseQueue, listEntry);
|
|
|
+ UA_PublishResponse *response = &pre->response;
|
|
|
+ UA_UInt32 requestId = pre->requestId;
|
|
|
+ response->responseHeader.serviceResult = UA_STATUSCODE_BADNOSUBSCRIPTION;
|
|
|
+ UA_SecureChannel_sendBinaryMessage(session->channel, requestId, response,
|
|
|
+ &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]);
|
|
|
+ UA_free(pre);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
#endif
|