方法

GioDtlsConnectionhandshake

since: 2.48

声明 [src]

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

描述 [src]

在conn上尝试进行握手。

在客户端,从不必要调用此方法;尽管连接连接后需要执行握手,但GDtlsConnection会在您尝试在连接上发送或接收数据时自动为您处理(这比尝试立即使用conn进行读写要高效,在这种情况下,如果失败,可能无法确定是在握手之前还是之后失败),但请小心,服务器可能在实际握手之后拒绝客户端认证,因此成功的握手未必表示连接可以使用。

同样,在服务器端,尽管在通信开始时进行握手是必要的,除非您想获得更清晰的错误报告,否则不需要明确调用此函数。

以前,在初始握手后调用g_dtls_connection_handshake()将触发重新握手;然而,由于在TLS 1.3中TLS协议已移除重握手,因此此用法在GLib 2.60中被弃用。从GLib 2.64开始,在初始握手后调用此函数将不再做任何事情。

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

自:2.48以来可用。

参数

cancellable

类型: GCancellable

一个 GCancellable,或者 NULL

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

类型: GError **

用于可恢复错误的返回位置。

参数可以为 NULL
如果返回位置不是 NULL,则必须将其初始化为 NULLGError%
如果没有错误,方法将保留初始化参数为 NULL
出错时,参数将设置为新分配的 GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: gboolean

成功或失败。