Browse Source

Merge pull request #1731 from open62541/remove_deprecated

Remove functionality deprecated after 0.3
Stefan Profanter 6 years ago
parent
commit
47fa30d4ca

+ 0 - 1
CMakeLists.txt

@@ -426,7 +426,6 @@ set(lib_sources ${PROJECT_SOURCE_DIR}/src/ua_types.c
                 ${PROJECT_SOURCE_DIR}/src/client/ua_client_discovery.c
                 ${PROJECT_SOURCE_DIR}/src/client/ua_client_highlevel.c
                 ${PROJECT_SOURCE_DIR}/src/client/ua_client_subscriptions.c
-                ${PROJECT_SOURCE_DIR}/src/client/ua_client_subscriptions_deprecated.c
 
                 # dependencies
                 ${PROJECT_SOURCE_DIR}/deps/libc_time.c

+ 0 - 84
include/ua_client_subscriptions.h

@@ -201,90 +201,6 @@ UA_Client_MonitoredItems_setTriggering(UA_Client *client,
     return response;
 }
 
-/**
- * Deprecated API
- * --------------
- * The following API is kept for backwards compatibility. It will be removed in
- * future releases. */
-
-typedef struct {
-    UA_Double requestedPublishingInterval;
-    UA_UInt32 requestedLifetimeCount;
-    UA_UInt32 requestedMaxKeepAliveCount;
-    UA_UInt32 maxNotificationsPerPublish;
-    UA_Boolean publishingEnabled;
-    UA_Byte priority;
-} UA_SubscriptionSettings;
-
-extern const UA_EXPORT UA_SubscriptionSettings UA_SubscriptionSettings_default;
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_new(UA_Client *client, UA_SubscriptionSettings settings,
-                            UA_UInt32 *newSubscriptionId);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_remove(UA_Client *client, UA_UInt32 subscriptionId);
-
-/* Send a publish request and wait until a response to the request is processed.
- * Note that other publish responses may be processed in the background until
- * then. */
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_manuallySendPublishRequest(UA_Client *client);
-
-/* For monitoring DataChanges */
-typedef void (*UA_MonitoredItemHandlingFunction)(UA_Client *client, UA_UInt32 monId,
-                                                 UA_DataValue *value, void *context);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_addMonitoredItems(UA_Client *client, const UA_UInt32 subscriptionId,
-                                          UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                                          UA_MonitoredItemHandlingFunction *hfs,
-                                          void **hfContexts, UA_StatusCode *itemResults,
-                                          UA_UInt32 *newMonitoredItemIds);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_addMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
-                                         UA_NodeId nodeId, UA_UInt32 attributeID,
-                                         UA_MonitoredItemHandlingFunction hf,
-                                         void *hfContext,
-                                         UA_UInt32 *newMonitoredItemId,
-                                         UA_Double samplingInterval);
-
-/* Monitored Events have different payloads from DataChanges. So they use a
- * different callback method signature. */
-typedef void (*UA_MonitoredEventHandlingFunction)(UA_Client *client,
-                                                  const UA_UInt32 monId,
-                                                  const size_t nEventFields,
-                                                  const UA_Variant *eventFields,
-                                                  void *context);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_addMonitoredEvents(UA_Client *client, const UA_UInt32 subscriptionId,
-                                           UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                                           UA_MonitoredEventHandlingFunction *hfs,
-                                           void **hfContexts, UA_StatusCode *itemResults,
-                                           UA_UInt32 *newMonitoredItemIds);
-
-/* TODO for 0.4: attribute is fix for events. */
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_addMonitoredEvent(UA_Client *client, UA_UInt32 subscriptionId,
-                                          const UA_NodeId nodeId, UA_UInt32 attributeID,
-                                          const UA_SimpleAttributeOperand *selectClauses,
-                                          size_t selectClausesSize,
-                                          const UA_ContentFilterElement *whereClauses,
-                                          size_t whereClausesSize,
-                                          const UA_MonitoredEventHandlingFunction hf,
-                                          void *hfContext, UA_UInt32 *newMonitoredItemId);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
-                                            UA_UInt32 monitoredItemId);
-
-UA_DEPRECATED UA_StatusCode UA_EXPORT
-UA_Client_Subscriptions_removeMonitoredItems(UA_Client *client, UA_UInt32 subscriptionId,
-                                             UA_UInt32 *monitoredItemIds, size_t itemsSize,
-                                             UA_StatusCode *itemResults);
-
 #endif
 
 #ifdef __cplusplus

+ 0 - 42
include/ua_server.h

@@ -1062,48 +1062,6 @@ UA_Server_deleteReference(UA_Server *server, const UA_NodeId sourceNodeId,
 /* Add a new namespace to the server. Returns the index of the new namespace */
 UA_UInt16 UA_EXPORT UA_Server_addNamespace(UA_Server *server, const char* name);
 
-/**
- * Deprecated Server API
- * ---------------------
- * This file contains outdated API definitions that are kept for backwards
- * compatibility. Please switch to the new API, as the following definitions
- * will be removed eventually.
- *
- * UA_Job API
- * ^^^^^^^^^^
- * UA_Job was replaced since it unnecessarily exposed server internals to the
- * end-user. Please use plain UA_ServerCallbacks instead. The following UA_Job
- * definition contains just the fraction of the original struct that was useful
- * to end-users. */
-
-typedef enum {
-    UA_JOBTYPE_METHODCALL
-} UA_JobType;
-
-typedef struct {
-    UA_JobType type;
-    union {
-        struct {
-            void *data;
-            UA_ServerCallback method;
-        } methodCall;
-    } job;
-} UA_Job;
-
-UA_DEPRECATED static UA_INLINE UA_StatusCode
-UA_Server_addRepeatedJob(UA_Server *server, UA_Job job,
-                         UA_UInt32 interval, UA_Guid *jobId) {
-    return UA_Server_addRepeatedCallback(server, job.job.methodCall.method,
-                                         job.job.methodCall.data, interval,
-                                         (UA_UInt64*)(uintptr_t)jobId);
-}
-
-UA_DEPRECATED static UA_INLINE UA_StatusCode
-UA_Server_removeRepeatedJob(UA_Server *server, UA_Guid jobId) {
-    return UA_Server_removeRepeatedCallback(server,
-                                            *(UA_UInt64*)(uintptr_t)&jobId);
-}
-
 #ifdef __cplusplus
 }
 #endif

+ 0 - 40
include/ua_types.h

@@ -936,46 +936,6 @@ UA_Guid UA_EXPORT UA_Guid_random(void);     /* no cryptographic entropy */
  *
  *    types_generated */
 
-/**
- * Deprecated Data Types API
- * -------------------------
- * The following definitions are deprecated and will be removed in future
- * releases of open62541. */
-
-typedef struct {
-    UA_StatusCode code;      /* The numeric value of the StatusCode */
-    const char* name;        /* The symbolic name */
-    const char* explanation; /* Short message explaining the StatusCode */
-} UA_StatusCodeDescription;
-
-UA_EXPORT extern const UA_StatusCodeDescription statusCodeExplanation_default;
-
-UA_DEPRECATED static UA_INLINE const UA_StatusCodeDescription *
-UA_StatusCode_description(UA_StatusCode code) {
-    return &statusCodeExplanation_default;
-}
-
-UA_DEPRECATED static UA_INLINE const char *
-UA_StatusCode_explanation(UA_StatusCode code) {
-    return statusCodeExplanation_default.name;
-}
-
-UA_DEPRECATED UA_String
-UA_DateTime_toString(UA_DateTime t);
-
-/* The old DateTime conversion macros */
-UA_DEPRECATED static UA_INLINE double
-deprecatedDateTimeMultiple(double multiple) {
-    return multiple;
-}
-
-#define UA_USEC_TO_DATETIME deprecatedDateTimeMultiple((UA_Double)UA_DATETIME_USEC)
-#define UA_MSEC_TO_DATETIME deprecatedDateTimeMultiple((UA_Double)UA_DATETIME_MSEC)
-#define UA_SEC_TO_DATETIME deprecatedDateTimeMultiple((UA_Double)UA_DATETIME_SEC)
-#define UA_DATETIME_TO_USEC deprecatedDateTimeMultiple(1.0 / ((UA_Double)UA_DATETIME_USEC))
-#define UA_DATETIME_TO_MSEC deprecatedDateTimeMultiple(1.0 / ((UA_Double)UA_DATETIME_MSEC))
-#define UA_DATETIME_TO_SEC deprecatedDateTimeMultiple(1.0 / ((UA_Double)UA_DATETIME_SEC))
-
 #ifdef __cplusplus
 } // extern "C"
 #endif

+ 0 - 378
src/client/ua_client_subscriptions_deprecated.c

@@ -1,378 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. 
- *
- *    Copyright 2015-2018 (c) Fraunhofer IOSB (Author: Julius Pfrommer)
- *    Copyright 2015 (c) Oleksiy Vasylyev
- *    Copyright 2016 (c) Sten Grüner
- *    Copyright 2017-2018 (c) Thomas Stalder, Blue Time Concept SA
- *    Copyright 2016-2017 (c) Florian Palm
- *    Copyright 2017 (c) Frank Meerkötter
- *    Copyright 2017 (c) Stefan Profanter, fortiss GmbH
- */
-
-#include "ua_client_highlevel.h"
-#include "ua_client_internal.h"
-#include "ua_util.h"
-
-#ifdef UA_ENABLE_SUBSCRIPTIONS /* conditional compilation */
-
-const UA_SubscriptionSettings UA_SubscriptionSettings_default = {
-    500.0, /* .requestedPublishingInterval */
-    10000, /* .requestedLifetimeCount */
-    1, /* .requestedMaxKeepAliveCount */
-    0, /* .maxNotificationsPerPublish */
-    true, /* .publishingEnabled */
-    0 /* .priority */
-};
-
-UA_StatusCode
-UA_Client_Subscriptions_new(UA_Client *client, UA_SubscriptionSettings settings,
-                            UA_UInt32 *newSubscriptionId) {
-    UA_CreateSubscriptionRequest request;
-    UA_CreateSubscriptionRequest_init(&request);
-    request.requestedPublishingInterval = settings.requestedPublishingInterval;
-    request.requestedLifetimeCount = settings.requestedLifetimeCount;
-    request.requestedMaxKeepAliveCount = settings.requestedMaxKeepAliveCount;
-    request.maxNotificationsPerPublish = settings.maxNotificationsPerPublish;
-    request.publishingEnabled = settings.publishingEnabled;
-    request.priority = settings.priority;
-    
-    UA_CreateSubscriptionResponse response =
-        UA_Client_Subscriptions_create(client, request, NULL, NULL, NULL);
-
-    UA_StatusCode retval = response.responseHeader.serviceResult;
-    if(retval == UA_STATUSCODE_GOOD && newSubscriptionId)
-        *newSubscriptionId = response.subscriptionId;
-    
-    UA_CreateSubscriptionResponse_deleteMembers(&response);
-    return retval;
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_remove(UA_Client *client, UA_UInt32 subscriptionId) {
-    UA_DeleteSubscriptionsRequest request;
-    UA_DeleteSubscriptionsRequest_init(&request);
-    request.subscriptionIdsSize = 1;
-    request.subscriptionIds = &subscriptionId;
-
-    UA_DeleteSubscriptionsResponse response =
-        UA_Client_Subscriptions_delete(client, request);
-
-    UA_StatusCode retval = response.responseHeader.serviceResult;
-    if(retval == UA_STATUSCODE_GOOD) {
-        if(response.resultsSize != 1)
-            retval = UA_STATUSCODE_BADINTERNALERROR;
-    }
-
-    if(retval == UA_STATUSCODE_GOOD)
-        retval = response.results[0];
-
-    UA_DeleteSubscriptionsResponse_deleteMembers(&response);
-    return retval;
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_manuallySendPublishRequest(UA_Client *client) {
-    if(client->state < UA_CLIENTSTATE_SESSION)
-        return UA_STATUSCODE_BADSERVERNOTCONNECTED;
-
-    UA_StatusCode retval = UA_STATUSCODE_GOOD;
-
-    UA_DateTime now = UA_DateTime_nowMonotonic();
-    UA_DateTime maxDate = now + (UA_DateTime)(client->config.timeout * UA_DATETIME_MSEC);
-
-    UA_Boolean moreNotifications = true;
-    while(moreNotifications) {
-        UA_PublishRequest request;
-        UA_PublishRequest_init(&request);
-        retval = UA_Client_preparePublishRequest(client, &request);
-        if(retval != UA_STATUSCODE_GOOD)
-            return retval;
-
-        /* Manually increase the number of sent publish requests. Otherwise we
-         * send out one too many when we process async responses when we wait
-         * for the correct publish response. The
-         * currentlyOutStandingPublishRequests will be reduced during processing
-         * of the response. */
-        client->currentlyOutStandingPublishRequests++;
-
-        UA_PublishResponse response;
-        __UA_Client_Service(client,
-                            &request, &UA_TYPES[UA_TYPES_PUBLISHREQUEST],
-                            &response, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]);
-        UA_Client_Subscriptions_processPublishResponse(client, &request, &response);
-        UA_PublishRequest_deleteMembers(&request);
-        
-        now = UA_DateTime_nowMonotonic();
-        if(now > maxDate) {
-            moreNotifications = UA_FALSE;
-            retval = UA_STATUSCODE_GOODNONCRITICALTIMEOUT;
-        } else {
-            moreNotifications = response.moreNotifications;
-        }
-
-        UA_PublishResponse_deleteMembers(&response);
-        UA_PublishRequest_deleteMembers(&request);
-    }
-
-    if(client->state < UA_CLIENTSTATE_SESSION)
-        return UA_STATUSCODE_BADSERVERNOTCONNECTED;
-
-    return retval;
-}
-
-/* Callbacks for the MonitoredItems. The callbacks for the deprecated API are
- * wrapped. The wrapper is cleaned up upon destruction. */
-
-typedef struct {
-    UA_MonitoredItemHandlingFunction origCallback;
-    void *context;
-} dataChangeCallbackWrapper;
-
-static void
-dataChangeCallback(UA_Client *client, UA_UInt32 subId, void *subContext,
-                   UA_UInt32 monId, void *monContext, UA_DataValue *value) {
-    dataChangeCallbackWrapper *wrapper = (dataChangeCallbackWrapper*)monContext;
-    wrapper->origCallback(client, monId, value, wrapper->context);
-}
-
-typedef struct {
-    UA_MonitoredEventHandlingFunction origCallback;
-    void *context;
-} eventCallbackWrapper;
-
-static void
-eventCallback(UA_Client *client, UA_UInt32 subId, void *subContext,
-              UA_UInt32 monId, void *monContext, size_t nEventFields,
-              UA_Variant *eventFields) {
-    eventCallbackWrapper *wrapper = (eventCallbackWrapper*)monContext;
-    wrapper->origCallback(client, monId, nEventFields, eventFields, wrapper->context);
-}
-
-static void
-deleteMonitoredItemCallback(UA_Client *client, UA_UInt32 subId, void *subContext,
-                            UA_UInt32 monId, void *monContext) {
-    UA_free(monContext);
-}
-
-static UA_StatusCode
-addMonitoredItems(UA_Client *client, const UA_UInt32 subscriptionId,
-                  UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                  UA_MonitoredItemHandlingFunction *hfs, void **hfContexts,
-                  UA_StatusCode *itemResults, UA_UInt32 *newMonitoredItemIds) {
-    /* Create array of wrappers and callbacks */
-    UA_STACKARRAY(dataChangeCallbackWrapper*, wrappers, itemsSize);
-    UA_STACKARRAY(UA_Client_DeleteMonitoredItemCallback, deleteCbs, itemsSize);
-    UA_STACKARRAY(UA_Client_DataChangeNotificationCallback, wrapperCbs, itemsSize);
-
-    for(size_t i = 0; i < itemsSize; i++) {
-        wrappers[i] = (dataChangeCallbackWrapper*)UA_malloc(sizeof(dataChangeCallbackWrapper));
-        if(!wrappers[i]) {
-            for(size_t j = 0; j < i; j++)
-                UA_free(wrappers[j]);
-            return UA_STATUSCODE_BADOUTOFMEMORY;
-        }
-        wrappers[i]->origCallback = (UA_MonitoredItemHandlingFunction)(uintptr_t)hfs[i];
-        wrappers[i]->context = hfContexts[i];
-
-        deleteCbs[i] = deleteMonitoredItemCallback;
-        wrapperCbs[i] = dataChangeCallback;
-    }
-
-    /* Prepare the request */
-    UA_CreateMonitoredItemsRequest request;
-    UA_CreateMonitoredItemsRequest_init(&request);
-    request.subscriptionId = subscriptionId;
-    request.itemsToCreateSize = itemsSize;
-    request.itemsToCreate = items;
-
-    /* Process and return */
-    UA_CreateMonitoredItemsResponse response =
-        UA_Client_MonitoredItems_createDataChanges(client, request, (void**)wrappers,
-                                                   wrapperCbs, deleteCbs);
-
-    UA_StatusCode retval = response.responseHeader.serviceResult;
-    if(retval == UA_STATUSCODE_GOOD && response.resultsSize != itemsSize)
-        retval = UA_STATUSCODE_BADINTERNALERROR;
-
-    if(retval == UA_STATUSCODE_GOOD) {
-        for(size_t i = 0; i < itemsSize; i++) {
-            itemResults[i] = response.results[i].statusCode;
-            newMonitoredItemIds[i] = response.results[i].monitoredItemId;
-        }
-    }
-
-    UA_CreateMonitoredItemsResponse_deleteMembers(&response);
-    return retval;
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_addMonitoredItems(UA_Client *client, const UA_UInt32 subscriptionId,
-                                          UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                                          UA_MonitoredItemHandlingFunction *hfs,
-                                          void **hfContexts, UA_StatusCode *itemResults,
-                                          UA_UInt32 *newMonitoredItemIds) {
-    return addMonitoredItems(client, subscriptionId, items, itemsSize, hfs, hfContexts, itemResults,
-                             newMonitoredItemIds);
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_addMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
-                                         UA_NodeId nodeId, UA_UInt32 attributeID,
-                                         UA_MonitoredItemHandlingFunction hf, void *hfContext,
-                                         UA_UInt32 *newMonitoredItemId, UA_Double samplingInterval) {
-    UA_MonitoredItemCreateRequest item;
-    UA_MonitoredItemCreateRequest_init(&item);
-    item.itemToMonitor.nodeId = nodeId;
-    item.itemToMonitor.attributeId = attributeID;
-    item.monitoringMode = UA_MONITORINGMODE_REPORTING;
-    item.requestedParameters.samplingInterval = samplingInterval;
-    item.requestedParameters.discardOldest = true;
-    item.requestedParameters.queueSize = 1;
-
-    UA_StatusCode retval_item = UA_STATUSCODE_GOOD;
-    UA_StatusCode retval =
-        addMonitoredItems(client, subscriptionId, &item, 1,
-                          (UA_MonitoredItemHandlingFunction*)(uintptr_t)&hf,
-                          &hfContext, &retval_item, newMonitoredItemId);
-    return retval | retval_item;
-}
-
-static UA_StatusCode
-addMonitoredEvents(UA_Client *client, const UA_UInt32 subscriptionId,
-                   UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                   UA_MonitoredEventHandlingFunction *hfs,
-                   void **hfContexts, UA_StatusCode *itemResults,
-                   UA_UInt32 *newMonitoredItemIds) {
-    /* Create array of wrappers and callbacks */
-    UA_STACKARRAY(eventCallbackWrapper*, wrappers, itemsSize);
-    UA_STACKARRAY(UA_Client_DeleteMonitoredItemCallback, deleteCbs, itemsSize);
-    UA_STACKARRAY(UA_Client_EventNotificationCallback, wrapperCbs, itemsSize);
-
-    for(size_t i = 0; i < itemsSize; i++) {
-        wrappers[i] = (eventCallbackWrapper*)UA_malloc(sizeof(eventCallbackWrapper));
-        if(!wrappers[i]) {
-            for(size_t j = 0; j < i; j++)
-                UA_free(wrappers[j]);
-            return UA_STATUSCODE_BADOUTOFMEMORY;
-        }
-        wrappers[i]->origCallback = (UA_MonitoredEventHandlingFunction)(uintptr_t)hfs[i];
-        wrappers[i]->context = hfContexts[i];
-
-        deleteCbs[i] = deleteMonitoredItemCallback;
-        wrapperCbs[i] = eventCallback;
-    }
-
-    /* Prepare the request */
-    UA_CreateMonitoredItemsRequest request;
-    UA_CreateMonitoredItemsRequest_init(&request);
-    request.subscriptionId = subscriptionId;
-    request.itemsToCreateSize = itemsSize;
-    request.itemsToCreate = items;
-
-    /* Process and return */
-    UA_CreateMonitoredItemsResponse response =
-        UA_Client_MonitoredItems_createEvents(client, request, (void**)wrappers,
-                                              wrapperCbs, deleteCbs);
-
-    UA_StatusCode retval = response.responseHeader.serviceResult;
-    if(retval == UA_STATUSCODE_GOOD && response.resultsSize != itemsSize)
-        retval = UA_STATUSCODE_BADINTERNALERROR;
-
-    if(retval == UA_STATUSCODE_GOOD) {
-        for(size_t i = 0; i < itemsSize; i++)
-            itemResults[i] = response.results[i].statusCode;
-    }
-
-    UA_CreateMonitoredItemsResponse_deleteMembers(&response);
-    return retval;
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_addMonitoredEvents(UA_Client *client, const UA_UInt32 subscriptionId,
-                                           UA_MonitoredItemCreateRequest *items, size_t itemsSize,
-                                           UA_MonitoredEventHandlingFunction *hfs,
-                                           void **hfContexts, UA_StatusCode *itemResults,
-                                           UA_UInt32 *newMonitoredItemIds) {
-    return addMonitoredEvents(client, subscriptionId, items, itemsSize, hfs,
-                              hfContexts, itemResults, newMonitoredItemIds);
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_addMonitoredEvent(UA_Client *client, UA_UInt32 subscriptionId,
-                                          const UA_NodeId nodeId, UA_UInt32 attributeID,
-                                          const UA_SimpleAttributeOperand *selectClauses,
-                                          size_t selectClausesSize,
-                                          const UA_ContentFilterElement *whereClauses,
-                                          size_t whereClausesSize,
-                                          const UA_MonitoredEventHandlingFunction hf,
-                                          void *hfContext, UA_UInt32 *newMonitoredItemId) {
-    UA_MonitoredItemCreateRequest item;
-    UA_MonitoredItemCreateRequest_init(&item);
-    item.itemToMonitor.nodeId = nodeId;
-    item.itemToMonitor.attributeId = attributeID;
-    item.monitoringMode = UA_MONITORINGMODE_REPORTING;
-    item.requestedParameters.samplingInterval = 0;
-    item.requestedParameters.discardOldest = false;
-
-    UA_EventFilter *evFilter = UA_EventFilter_new();
-    if(!evFilter)
-        return UA_STATUSCODE_BADOUTOFMEMORY;
-    UA_EventFilter_init(evFilter);
-    evFilter->selectClausesSize = selectClausesSize;
-    evFilter->selectClauses = (UA_SimpleAttributeOperand*)(uintptr_t)selectClauses;
-    evFilter->whereClause.elementsSize = whereClausesSize;
-    evFilter->whereClause.elements = (UA_ContentFilterElement*)(uintptr_t)whereClauses;
-
-    item.requestedParameters.filter.encoding = UA_EXTENSIONOBJECT_DECODED_NODELETE;
-    item.requestedParameters.filter.content.decoded.type = &UA_TYPES[UA_TYPES_EVENTFILTER];
-    item.requestedParameters.filter.content.decoded.data = evFilter;
-    UA_StatusCode retval_item = UA_STATUSCODE_GOOD;
-    UA_StatusCode retval = addMonitoredEvents(client, subscriptionId, &item, 1,
-                                             (UA_MonitoredEventHandlingFunction*)(uintptr_t)&hf,
-                                              &hfContext, &retval_item, newMonitoredItemId);
-    UA_free(evFilter);
-    return retval | retval_item;
-}
-
-static UA_StatusCode
-removeMonitoredItems(UA_Client *client, UA_UInt32 subscriptionId,
-                     UA_UInt32 *monitoredItemIds, size_t itemsSize,
-                     UA_StatusCode *itemResults) {
-    UA_DeleteMonitoredItemsRequest request;
-    UA_DeleteMonitoredItemsRequest_init(&request);
-    request.subscriptionId = subscriptionId;
-    request.monitoredItemIdsSize = itemsSize;
-    request.monitoredItemIds = monitoredItemIds;
-
-    UA_DeleteMonitoredItemsResponse response = UA_Client_MonitoredItems_delete(client, request);
-    UA_StatusCode retval = response.responseHeader.serviceResult;
-    if(retval == UA_STATUSCODE_GOOD) {
-        if(response.resultsSize != itemsSize) {
-            retval = UA_STATUSCODE_BADINTERNALERROR;
-        } else {
-            for(size_t i = 0; i < itemsSize; i++)
-                itemResults[i] = response.results[i];
-        }
-    }
-    UA_DeleteMonitoredItemsResponse_deleteMembers(&response);
-    return retval;
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_removeMonitoredItems(UA_Client *client, UA_UInt32 subscriptionId,
-                                             UA_UInt32 *monitoredItemIds, size_t itemsSize,
-                                             UA_StatusCode *itemResults) {
-    return removeMonitoredItems(client, subscriptionId, monitoredItemIds, itemsSize, itemResults);
-}
-
-UA_StatusCode
-UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId,
-                                            UA_UInt32 monitoredItemId) {
-    UA_StatusCode retval_item = UA_STATUSCODE_GOOD;
-    UA_StatusCode retval = removeMonitoredItems(client, subscriptionId, &monitoredItemId, 1, &retval_item);
-    return retval | retval_item;
-}
-
-#endif /* UA_ENABLE_SUBSCRIPTIONS */

+ 0 - 35
src/ua_types.c

@@ -156,41 +156,6 @@ UA_DateTime_toStruct(UA_DateTime t) {
     return dateTimeStruct;
 }
 
-static void
-printNumber(u16 n, u8 *pos, size_t digits) {
-    for(size_t i = digits; i > 0; --i) {
-        pos[i-1] = (u8)((n % 10) + '0');
-        n = n / 10;
-    }
-}
-
-UA_String
-UA_DateTime_toString(UA_DateTime t) {
-    /* length of the string is 31 (plus \0 at the end) */
-    UA_String str = {31, (u8*)UA_malloc(32)};
-    if(!str.data)
-        return UA_STRING_NULL;
-    UA_DateTimeStruct tSt = UA_DateTime_toStruct(t);
-    printNumber(tSt.month, str.data, 2);
-    str.data[2] = '/';
-    printNumber(tSt.day, &str.data[3], 2);
-    str.data[5] = '/';
-    printNumber(tSt.year, &str.data[6], 4);
-    str.data[10] = ' ';
-    printNumber(tSt.hour, &str.data[11], 2);
-    str.data[13] = ':';
-    printNumber(tSt.min, &str.data[14], 2);
-    str.data[16] = ':';
-    printNumber(tSt.sec, &str.data[17], 2);
-    str.data[19] = '.';
-    printNumber(tSt.milliSec, &str.data[20], 3);
-    str.data[23] = '.';
-    printNumber(tSt.microSec, &str.data[24], 3);
-    str.data[27] = '.';
-    printNumber(tSt.nanoSec, &str.data[28], 3);
-    return str;
-}
-
 /* Guid */
 UA_Boolean
 UA_Guid_equal(const UA_Guid *g1, const UA_Guid *g2) {

+ 0 - 4
tests/CMakeLists.txt

@@ -201,10 +201,6 @@ add_executable(check_client_subscriptions client/check_client_subscriptions.c $<
 target_link_libraries(check_client_subscriptions ${LIBS})
 add_test_valgrind(client_subscriptions ${TESTS_BINARY_DIR}/check_client_subscriptions)
 
-add_executable(check_client_subscriptions_deprecated client/check_client_subscriptions_deprecated.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
-target_link_libraries(check_client_subscriptions_deprecated ${LIBS})
-add_test_valgrind(client_subscriptions_deprecated ${TESTS_BINARY_DIR}/check_client_subscriptions_deprecated)
-
 add_executable(check_client_highlevel client/check_client_highlevel.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
 target_link_libraries(check_client_highlevel ${LIBS})
 add_test_valgrind(client_highlevel ${TESTS_BINARY_DIR}/check_client_highlevel)

+ 0 - 370
tests/client/check_client_subscriptions_deprecated.c

@@ -1,370 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "ua_types.h"
-#include "ua_server.h"
-#include "ua_client.h"
-#include "client/ua_client_internal.h"
-#include "ua_client_highlevel.h"
-#include "ua_config_default.h"
-#include "ua_network_tcp.h"
-
-#include "check.h"
-#include "testing_clock.h"
-#include "testing_networklayers.h"
-#include "thread_wrapper.h"
-
-
-UA_Server *server;
-UA_ServerConfig *config;
-UA_Boolean *running;
-UA_ServerNetworkLayer nl;
-THREAD_HANDLE server_thread;
-
-THREAD_CALLBACK(serverloop) {
-    while(*running)
-        UA_Server_run_iterate(server, true);
-    return 0;
-}
-
-static void setup(void) {
-    running = UA_Boolean_new();
-    *running = true;
-    config = UA_ServerConfig_new_default();
-    server = UA_Server_new(config);
-    UA_Server_run_startup(server);
-    THREAD_CREATE(server_thread, serverloop);
-}
-
-static void teardown(void) {
-    *running = false;
-    THREAD_JOIN(server_thread);
-    UA_Server_run_shutdown(server);
-    UA_Boolean_delete(running);
-    UA_Server_delete(server);
-    UA_ServerConfig_delete(config);
-}
-
-#ifdef UA_ENABLE_SUBSCRIPTIONS
-
-UA_Boolean notificationReceived;
-UA_UInt32 countNotificationReceived = 0;
-
-static void monitoredItemHandler(UA_Client *client, UA_UInt32 monId, UA_DataValue *value, void *context) {
-    notificationReceived = true;
-    countNotificationReceived++;
-}
-
-START_TEST(Client_subscription) {
-    UA_Client *client = UA_Client_new(UA_ClientConfig_default);
-    UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_UInt32 subId;
-    retval = UA_Client_Subscriptions_new(client, UA_SubscriptionSettings_default, &subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    /* monitor the server state */
-    UA_UInt32 monId;
-    retval = UA_Client_Subscriptions_addMonitoredItem(client, subId, UA_NODEID_NUMERIC(0, 2259),
-                                                      UA_ATTRIBUTEID_VALUE, monitoredItemHandler,
-                                                      NULL, &monId, 250);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    notificationReceived = false;
-    retval = UA_Client_Subscriptions_manuallySendPublishRequest(client);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(notificationReceived, true);
-
-    retval = UA_Client_Subscriptions_removeMonitoredItem(client, subId, monId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    retval = UA_Client_Subscriptions_remove(client, subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_Client_disconnect(client);
-    UA_Client_delete(client);
-}
-END_TEST
-
-START_TEST(Client_subscription_addMonitoredItems) {
-    UA_Client *client = UA_Client_new(UA_ClientConfig_default);
-    UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_UInt32 subId;
-    retval = UA_Client_Subscriptions_new(client, UA_SubscriptionSettings_default, &subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_MonitoredItemCreateRequest items[3];
-    UA_MonitoredItemHandlingFunction hfs[3];
-    void *hfContexts[3];
-    UA_StatusCode itemResults[3];
-    UA_UInt32 newMonitoredItemIds[3];
-
-    /* monitor the server state */
-    UA_MonitoredItemCreateRequest_init(&items[0]);
-    items[0].itemToMonitor.nodeId = UA_NODEID_NUMERIC(0, 2259);
-    items[0].itemToMonitor.attributeId = UA_ATTRIBUTEID_VALUE;
-    items[0].monitoringMode = UA_MONITORINGMODE_REPORTING;
-    items[0].requestedParameters.samplingInterval = 250;
-    items[0].requestedParameters.discardOldest = true;
-    items[0].requestedParameters.queueSize = 1;
-    hfs[0] = (UA_MonitoredItemHandlingFunction)(uintptr_t)monitoredItemHandler;
-    hfContexts[0] = NULL;
-
-    /* monitor current time */
-    UA_MonitoredItemCreateRequest_init(&items[1]);
-    items[1].itemToMonitor.nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS_CURRENTTIME);
-    items[1].itemToMonitor.attributeId = UA_ATTRIBUTEID_VALUE;
-    items[1].monitoringMode = UA_MONITORINGMODE_REPORTING;
-    items[1].requestedParameters.samplingInterval = 250;
-    items[1].requestedParameters.discardOldest = true;
-    items[1].requestedParameters.queueSize = 1;
-    hfs[1] = (UA_MonitoredItemHandlingFunction)(uintptr_t)monitoredItemHandler;
-    hfContexts[1] = NULL;
-
-    /* monitor invalid node */
-    UA_MonitoredItemCreateRequest_init(&items[2]);
-    items[2].itemToMonitor.nodeId = UA_NODEID_NUMERIC(0, 99999999);
-    items[2].itemToMonitor.attributeId = UA_ATTRIBUTEID_VALUE;
-    items[2].monitoringMode = UA_MONITORINGMODE_REPORTING;
-    items[2].requestedParameters.samplingInterval = 250;
-    items[2].requestedParameters.discardOldest = true;
-    items[2].requestedParameters.queueSize = 1;
-    hfs[2] = (UA_MonitoredItemHandlingFunction)(uintptr_t)monitoredItemHandler;
-    hfContexts[2] = NULL;
-
-    retval = UA_Client_Subscriptions_addMonitoredItems(client, subId, items, 3,
-                                                      hfs, hfContexts, itemResults,
-                                                      newMonitoredItemIds);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(itemResults[0], UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(itemResults[1], UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(itemResults[2], UA_STATUSCODE_BADNODEIDUNKNOWN);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    notificationReceived = false;
-    countNotificationReceived = 0;
-    retval = UA_Client_Subscriptions_manuallySendPublishRequest(client);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(notificationReceived, true);
-    ck_assert_uint_eq(countNotificationReceived, 2);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    notificationReceived = false;
-    retval = UA_Client_Subscriptions_manuallySendPublishRequest(client);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(notificationReceived, true);
-    ck_assert_uint_eq(countNotificationReceived, 3);
-
-    retval = UA_Client_Subscriptions_removeMonitoredItem(client, subId, newMonitoredItemIds[0]);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    retval = UA_Client_Subscriptions_removeMonitoredItem(client, subId, newMonitoredItemIds[1]);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    retval = UA_Client_Subscriptions_remove(client, subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_Client_disconnect(client);
-    UA_Client_delete(client);
-}
-END_TEST
-
-START_TEST(Client_subscription_keepAlive) {
-    UA_Client *client = UA_Client_new(UA_ClientConfig_default);
-    UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_UInt32 subId;
-    retval = UA_Client_Subscriptions_new(client, UA_SubscriptionSettings_default, &subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_MonitoredItemCreateRequest items[1];
-    UA_MonitoredItemHandlingFunction hfs[1];
-    void *hfContexts[1];
-    UA_StatusCode itemResults[1];
-    UA_UInt32 newMonitoredItemIds[1];
-
-    /* monitor the server state */
-    UA_MonitoredItemCreateRequest_init(&items[0]);
-    items[0].itemToMonitor.nodeId = UA_NODEID_NUMERIC(0, 2259);
-    items[0].itemToMonitor.attributeId = UA_ATTRIBUTEID_VALUE;
-    items[0].monitoringMode = UA_MONITORINGMODE_REPORTING;
-    items[0].requestedParameters.samplingInterval = 250;
-    items[0].requestedParameters.discardOldest = true;
-    items[0].requestedParameters.queueSize = 1;
-    hfs[0] = (UA_MonitoredItemHandlingFunction)(uintptr_t)monitoredItemHandler;
-    hfContexts[0] = NULL;
-
-    retval = UA_Client_Subscriptions_addMonitoredItems(client, subId, items, 1,
-                                                      hfs, hfContexts, itemResults,
-                                                      newMonitoredItemIds);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(itemResults[0], UA_STATUSCODE_GOOD);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    UA_PublishRequest request;
-    UA_PublishRequest_init(&request);
-    request.subscriptionAcknowledgementsSize = 0;
-
-    UA_PublishResponse response;
-    UA_PublishResponse_init(&response);
-    __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_PUBLISHREQUEST],
-                        &response, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]);
-    ck_assert_uint_eq(response.responseHeader.serviceResult, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(response.notificationMessage.notificationDataSize, 1);
-    UA_PublishResponse_deleteMembers(&response);
-    UA_PublishRequest_deleteMembers(&request);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    /* by default maxKeepAlive is set to 1 we must receive a response without notification message */
-    UA_PublishRequest_init(&request);
-    request.subscriptionAcknowledgementsSize = 0;
-
-    __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_PUBLISHREQUEST],
-                        &response, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]);
-    ck_assert_uint_eq(response.responseHeader.serviceResult, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(response.notificationMessage.notificationDataSize, 0);
-    UA_PublishResponse_deleteMembers(&response);
-    UA_PublishRequest_deleteMembers(&request);
-
-    retval = UA_Client_Subscriptions_removeMonitoredItem(client, subId, newMonitoredItemIds[0]);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    retval = UA_Client_Subscriptions_remove(client, subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_Client_disconnect(client);
-    UA_Client_delete(client);
-}
-END_TEST
-
-START_TEST(Client_subscription_connectionClose) {
-    UA_Client *client = UA_Client_new(UA_ClientConfig_default);
-    UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_UInt32 subId;
-    retval = UA_Client_Subscriptions_new(client, UA_SubscriptionSettings_default, &subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    /* monitor the server state */
-    UA_UInt32 monId;
-    retval = UA_Client_Subscriptions_addMonitoredItem(client, subId, UA_NODEID_NUMERIC(0, 2259),
-                                                      UA_ATTRIBUTEID_VALUE, monitoredItemHandler,
-                                                      NULL, &monId, 250);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_fakeSleep((UA_UInt32)UA_SubscriptionSettings_default.requestedPublishingInterval + 1);
-
-    retval = UA_Client_Subscriptions_manuallySendPublishRequest(client);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_Client_recv = client->connection.recv;
-    client->connection.recv = UA_Client_recvTesting;
-
-    /* Simulate BADCONNECTIONCLOSE */
-    UA_Client_recvTesting_result = UA_STATUSCODE_BADCONNECTIONCLOSED;
-
-    retval = UA_Client_Subscriptions_manuallySendPublishRequest(client);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_BADSERVERNOTCONNECTED);
-
-    UA_Client_disconnect(client);
-    UA_Client_delete(client);
-}
-END_TEST
-
-START_TEST(Client_methodcall) {
-    UA_Client *client = UA_Client_new(UA_ClientConfig_default);
-    UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    UA_UInt32 subId;
-    retval = UA_Client_Subscriptions_new(client, UA_SubscriptionSettings_default, &subId);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    /* monitor the server state */
-    UA_UInt32 monId;
-    retval = UA_Client_Subscriptions_addMonitoredItem(client, subId, UA_NODEID_NUMERIC(0, 2259),
-                                                      UA_ATTRIBUTEID_VALUE, NULL, NULL, &monId, 250);
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-
-    /* call a method to get monitored item id */
-    UA_Variant input;
-    UA_Variant_init(&input);
-    UA_Variant_setScalarCopy(&input, &subId, &UA_TYPES[UA_TYPES_UINT32]);
-    size_t outputSize;
-    UA_Variant *output;
-    retval = UA_Client_call(client, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER),
-                UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_GETMONITOREDITEMS), 1, &input, &outputSize, &output);
-
-    ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
-    ck_assert_uint_eq(outputSize, 2);
-
-    ck_assert_uint_eq(output[0].arrayLength, 1);
-
-    ck_assert_uint_eq(*((UA_UInt32*)output[0].data), monId);
-
-    UA_Array_delete(output, outputSize, &UA_TYPES[UA_TYPES_VARIANT]);
-    UA_Variant_deleteMembers(&input);
-
-    /* call with invalid subscription id */
-    UA_Variant_init(&input);
-    subId = 0;
-    UA_Variant_setScalarCopy(&input, &subId, &UA_TYPES[UA_TYPES_UINT32]);
-    retval = UA_Client_call(client, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER),
-                UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_GETMONITOREDITEMS), 1, &input, &outputSize, &output);
-
-    ck_assert_uint_eq(retval, UA_STATUSCODE_BADSUBSCRIPTIONIDINVALID);
-
-    UA_Variant_deleteMembers(&input);
-
-    UA_Client_disconnect(client);
-    UA_Client_delete(client);
-}
-END_TEST
-
-#endif /* UA_ENABLE_SUBSCRIPTIONS */
-
-static Suite* testSuite_Client(void) {
-    TCase *tc_client = tcase_create("Client Subscription Basic");
-    tcase_add_checked_fixture(tc_client, setup, teardown);
-#ifdef UA_ENABLE_SUBSCRIPTIONS
-    tcase_add_test(tc_client, Client_subscription);
-    tcase_add_test(tc_client, Client_subscription_connectionClose);
-    tcase_add_test(tc_client, Client_subscription_addMonitoredItems);
-    tcase_add_test(tc_client, Client_subscription_keepAlive);
-#endif /* UA_ENABLE_SUBSCRIPTIONS */
-
-    TCase *tc_client2 = tcase_create("Client Subscription + Method Call of GetMonitoredItmes");
-    tcase_add_checked_fixture(tc_client2, setup, teardown);
-#ifdef UA_ENABLE_SUBSCRIPTIONS
-    tcase_add_test(tc_client2, Client_methodcall);
-#endif /* UA_ENABLE_SUBSCRIPTIONS */
-
-    Suite *s = suite_create("Client Subscription");
-    suite_add_tcase(s,tc_client);
-    suite_add_tcase(s,tc_client2);
-    return s;
-}
-
-int main(void) {
-    Suite *s = testSuite_Client();
-    SRunner *sr = srunner_create(s);
-    srunner_set_fork_status(sr, CK_NOFORK);
-    srunner_run_all(sr,CK_NORMAL);
-    int number_failed = srunner_ntests_failed(sr);
-    srunner_free(sr);
-    return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-}

+ 11 - 5
tests/fuzz/corpus_generator.c

@@ -10,10 +10,6 @@
  * corpus to the repository.
  */
 
-#ifdef _MSC_VER
-#pragma warning(disable:4996) // warning C4996: 'UA_Client_Subscriptions_manuallySendPublishRequest': was declared deprecated
-#endif
-
 #ifndef UA_DEBUG_DUMP_PKGS_FILE
 #error UA_DEBUG_DUMP_PKGS_FILE must be defined
 #endif
@@ -29,6 +25,7 @@
 #include <unistd.h>
 #include <ua_client_highlevel.h>
 #include <ua_client_subscriptions.h>
+#include <client/ua_client_internal.h>
 
 #include "ua_config_default.h"
 
@@ -425,7 +422,16 @@ subscriptionRequests(UA_Client *client) {
     monId = monResponse.monitoredItemId;
 
     // publishRequest
-    ASSERT_GOOD(UA_Client_Subscriptions_manuallySendPublishRequest(client));
+    UA_PublishRequest publishRequest;
+    UA_PublishRequest_init(&publishRequest);
+    ASSERT_GOOD(UA_Client_preparePublishRequest(client, &publishRequest));
+    UA_PublishResponse publishResponse;
+    __UA_Client_Service(client, &publishRequest, &UA_TYPES[UA_TYPES_PUBLISHREQUEST],
+                        &publishResponse, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]);
+    // here we don't care about the return value since it may be UA_STATUSCODE_BADMESSAGENOTAVAILABLE
+    // ASSERT_GOOD(publishResponse.responseHeader.serviceResult);
+    UA_PublishRequest_deleteMembers(&publishRequest);
+    UA_PublishResponse_deleteMembers(&publishResponse);
 
     // republishRequest
     UA_RepublishRequest republishRequest;

+ 0 - 3
tools/generate_statuscode_descriptions.py

@@ -72,9 +72,6 @@ printc(u'''/**********************************************************
 count = 2 + len(rows)
 
 printc(u'''
-/* Definition for the deprecated StatusCode description API */
-const UA_StatusCodeDescription statusCodeExplanation_default = {0xffffffff, "", ""};
-
 typedef struct {
     UA_StatusCode code;
     const char *name;