Esempio n. 1
0
 def close_secure_channel(self):
     """
     close secure channel. It seems to trigger a shutdown of socket
     in most servers, so be prepare to reconnect.
     OPC UA specs Part 6, 7.1.4 say that Server does not send a CloseSecureChannel response and should just close socket
     """
     self.logger.info("close_secure_channel")
     request = ua.CloseSecureChannelRequest()
     future = self._send_request(request, message_type=ua.MessageType.SecureClose)
     with self._lock:
         # don't expect any more answers
         future.cancel()
         self._callbackmap.clear()
Esempio n. 2
0
 def close_secure_channel(self):
     """
     close secure channel. It seems to trigger a shutdown of socket in most servers, so be prepare to reconnect.
     OPC UA specs Part 6, 7.1.4 say that Server does not send a CloseSecureChannel response and should just close
     socket
     """
     self.logger.info("close_secure_channel")
     request = ua.CloseSecureChannelRequest()
     try:
         future = self._send_request(request, message_type=ua.MessageType.SecureClose)
         with self._lock:
             # some servers send a response here, most do not ... so we ignore
             future.cancel()
     except (socket.error, OSError) as exc:
         if exc.errno in (errno.ENOTCONN, errno.EBADF):
             # Socket is closed, so can't send CloseSecureChannelRequest.
             self.logger.warning("close_secure_channel() failed: socket already closed")
         else:
             raise