2020-02-15 21:34:00 +01:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-03-16 23:01:02 +01:00
<class name= "PacketPeerDTLS" inherits= "PacketPeer" version= "3.5" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2020-02-15 21:34:00 +01:00
<brief_description >
DTLS packet peer.
</brief_description>
<description >
This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by [method DTLSServer.take_connection].
2021-08-11 15:49:58 +02:00
[b]Warning:[/b] SSL/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.
2020-02-15 21:34:00 +01:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "connect_to_peer" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "Error" />
<argument index= "0" name= "packet_peer" type= "PacketPeerUDP" />
<argument index= "1" name= "validate_certs" type= "bool" default= "true" />
<argument index= "2" name= "for_hostname" type= "String" default= """" />
<argument index= "3" name= "valid_certificate" type= "X509Certificate" default= "null" />
2020-02-15 21:34:00 +01:00
<description >
Connects a [code]peer[/code] beginning the DTLS handshake using the underlying [PacketPeerUDP] which must be connected (see [method PacketPeerUDP.connect_to_host]). If [code]validate_certs[/code] is [code]true[/code], [PacketPeerDTLS] will validate that the certificate presented by the remote peer and match it with the [code]for_hostname[/code] argument. You can specify a custom [X509Certificate] to use for validation via the [code]valid_certificate[/code] argument.
</description>
</method>
<method name= "disconnect_from_peer" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2020-02-15 21:34:00 +01:00
<description >
Disconnects this peer, terminating the DTLS session.
</description>
</method>
<method name= "get_status" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "PacketPeerDTLS.Status" />
2020-02-15 21:34:00 +01:00
<description >
Returns the status of the connection. See [enum Status] for values.
</description>
</method>
<method name= "poll" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2020-02-15 21:34:00 +01:00
<description >
Poll the connection to check for incoming packets. Call this frequently to update the status and keep the connection working.
</description>
</method>
</methods>
<constants >
<constant name= "STATUS_DISCONNECTED" value= "0" enum= "Status" >
A status representing a [PacketPeerDTLS] that is disconnected.
</constant>
<constant name= "STATUS_HANDSHAKING" value= "1" enum= "Status" >
A status representing a [PacketPeerDTLS] that is currently performing the handshake with a remote peer.
</constant>
<constant name= "STATUS_CONNECTED" value= "2" enum= "Status" >
A status representing a [PacketPeerDTLS] that is connected to a remote peer.
</constant>
<constant name= "STATUS_ERROR" value= "3" enum= "Status" >
A status representing a [PacketPeerDTLS] in a generic error state.
</constant>
<constant name= "STATUS_ERROR_HOSTNAME_MISMATCH" value= "4" enum= "Status" >
An error status that shows a mismatch in the DTLS certificate domain presented by the host and the domain requested for validation.
</constant>
</constants>
</class>