虚拟方法
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
;调用者将获取数据的所有权,并负责释放它。