PacketPeerDTLS

Inherits: PacketPeer < RefCounted < Object

DTLS packet peer.

Description

This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by DTLSServer.take_connection.

Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android.

Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period.

Methods

Error

connect_to_peer ( PacketPeerUDP packet_peer, bool validate_certs=true, String for_hostname="", X509Certificate valid_certificate=null )

void

disconnect_from_peer ( )

Status

get_status ( ) const

void

poll ( )

Enumerations

enum Status:

  • STATUS_DISCONNECTED = 0 --- A status representing a PacketPeerDTLS that is disconnected.

  • STATUS_HANDSHAKING = 1 --- A status representing a PacketPeerDTLS that is currently performing the handshake with a remote peer.

  • STATUS_CONNECTED = 2 --- A status representing a PacketPeerDTLS that is connected to a remote peer.

  • STATUS_ERROR = 3 --- A status representing a PacketPeerDTLS in a generic error state.

  • STATUS_ERROR_HOSTNAME_MISMATCH = 4 --- An error status that shows a mismatch in the DTLS certificate domain presented by the host and the domain requested for validation.

Method Descriptions

Connects a packet_peer beginning the DTLS handshake using the underlying PacketPeerUDP which must be connected (see PacketPeerUDP.connect_to_host). If validate_certs is true, PacketPeerDTLS will validate that the certificate presented by the remote peer and match it with the for_hostname argument. You can specify a custom X509Certificate to use for validation via the valid_certificate argument.


  • void disconnect_from_peer ( )

Disconnects this peer, terminating the DTLS session.


Returns the status of the connection. See Status for values.


  • void poll ( )

Poll the connection to check for incoming packets. Call this frequently to update the status and keep the connection working.