方法
自: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