方法

自:2.48

声明 [源]

void
g_dtls_connection_set_require_close_notify (
  GDtlsConnection* conn,
  gboolean require_close_notify
)

描述 [源]

设置是否在关闭连接之前期望从conn接收正确的TLS关闭通知。如果这是TRUE(默认值),则conn将在关闭连接之前期望从其对等方收到一个TLS关闭通知,并且如果连接在没有适当通知的情况下关闭,将返回一个G_TLS_ERROR_EOF错误(因为这可能表明网络错误或中间人攻击)。

在一些协议中,应用将根据应用层数据(因为应用层数据包括长度字段,或者在某种方式上是自我限定的)知道连接是否被干净地关闭;在这种情况下,关闭通知是多余的,可能被省略。您可以使用g_dtls_connection_set_require_close_notify()告诉conn允许“未宣布”的连接关闭,此时关闭将显示为一个0长度的读取,就像非TLS的GDatagramBased一样,此时检查数据是否已经被完全接收是应用的责任。

请注意,这仅影响对等方关闭连接时的行为;当应用在conn自身上调用g_dtls_connection_close_async()时,这将发送一个关闭通知,而不管这个属性的设置如何。如果您明确想要执行不干净的关闭,您应该关闭conn的GDtlsConnection:base-socket而不是关闭conn本身。

自:2.48

参数

require_close_notify

类型:gboolean

是否需要关闭通知。