/* Async disconnection */ static void sendCloseSecureChannelAsync(UA_Client *client, void *userdata, UA_UInt32 requestId, void *response) { UA_NodeId_deleteMembers (&client->authenticationToken); client->requestHandle = 0; UA_SecureChannel *channel = &client->channel; UA_CloseSecureChannelRequest request; UA_CloseSecureChannelRequest_init(&request); request.requestHeader.requestHandle = ++client->requestHandle; request.requestHeader.timestamp = UA_DateTime_now(); request.requestHeader.timeoutHint = 10000; request.requestHeader.authenticationToken = client->authenticationToken; UA_SecureChannel_sendSymmetricMessage( channel, ++client->requestId, UA_MESSAGETYPE_CLO, &request, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELREQUEST]); UA_SecureChannel_close(&client->channel); UA_SecureChannel_deleteMembers(&client->channel); }
void UA_SecureChannel_delete(UA_SecureChannel *channel) { UA_SecureChannel_deleteMembers(channel); UA_free(channel); }