虚拟方法

GioDtlsConnectionhandshake

since: 2.48

声明 [源]

gboolean
handshake (
  GDtlsConnection* conn,
  GCancellable* cancellable,
  GError** error
)

描述 [源]

在 conn 上尝试执行 TLS 握手。

在客户端,通常无需调用此方法;尽管连接需要在与连接后执行握手,但 GDtlsConnection 会在您尝试在连接上发送或接收数据时自动为您处理(如果您想手动调用 g_dtls_connection_handshake(),以确定初始握手成功或失败(与只是立即尝试使用 conn 进行读取或写入相比,在这种情况下,如果失败,则可能无法判断是在握手完成之前还是之后失败),但请注意,服务器可能在握手完成后拒绝客户端认证,因此成功的握手并不表示连接可以使用),但是请注意,服务器可能在握手完成后拒绝客户端认证,所以成功的握手并不表示连接将会可用。

同样,在服务器端,尽管在通信开始时需要握手,但除非您希望更清晰的错误报告,否则无需显式调用此函数。

以前,在初始握手后调用 g_dtls_connection_handshake() 会触发重新握手;但是,由于在 TLS 1.3 中从 TLS 协议中删除了重新握手,这种用法在 GLib 2.60 中被弃用。自 GLib 2.64 以来,在初始握手后调用此函数将不再做任何事。

GDtlsConnection::accept_certificate 可能在握手过程中发出。

Available since: 2.48

参数

cancellable

类型: GCancellable

一个 GCancellable,或 NULL

该参数可以为 NULL
数据由方法调用者拥有。
error

类型: GError **

一个可恢复错误的返回位置的地址。

该参数可以为 NULL
如果返回位置不为 NULL,则必须将其初始化为一个 NULL GError*
如果没有错误,虚拟函数会使用初始化为 NULL 的参数。
如果发生错误,参数将设置为新分配的 GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: gboolean

成功或失败。