From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 9267D400AC for ; Sat, 10 Jan 2026 13:34:58 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'zsCPaLVzffBGPuMUA7NdJwITQnzuZLVuBT8DI3/No8I=', expected b'zwDlTgA5jdn3cjyD9nnO1ZIbxgAjTGXKxhTsYEvUnfU=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768052078; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=zsCPaLVzffBGPuMUA7NdJwITQnzuZLVuBT8DI3/No8I=; b=X2nKd1Xi7Z449wmp8FVh9sgdm994FSwd6+kROOOt+MTU/zNOp2OtyhxNEr8PbL3k6Sh1h +wRz6vCeajsjKFLXx/5LINB4S8TLOunO6wz9fBJAeT1EjcRrxcnMbkt8iLRissVqB20xKhq hAfxkVW12kOscSQSfaejuLrzPkAZEoF89ET0msHZq4tQqT3bxfVLaW5ILWAgz8Zqdmn65fq dn2DBM41HpdDtONy7bWkmdKjnSOsw5nLT/E6IPlJV/iHwp/PVIlOS5M/KDhS+m1NXVkaEiS V4EGEWdHYF4U2eGOHswbLMaYAKDUWlJVXX7C2PShlmupyv/Qk+51CAQSfGbA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1B059690E00; Sat, 10 Jan 2026 15:34:38 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1768052062; b=oXB1kEKKOVLYeeOEuR+FLFKB5oqIWjWaUV9HXjVbL3c5CphPWsDQA9TOoPbsZnAhvhrL8 tsNJpnTv9giNDyY3Vd9lwR+FdNhvZvuOxThA+HgLnwW65iAovn+ozw/YPH3vDZXf8g1Pin5 KIJU1dpx2N7VRJ7xuxcFn2TGSFZ9B8hB7Zk8+jzflZgszptWkMd0m/txjpfn1rKT7hqyQd2 4RxxSJGKLKJxPKvfATfDFN/Llni/xIauUIr6dQHWCGKJZZzSXZCWDS9freMtTUK9W++paXg 6L48rxxv1jrAxbF/syJqTp8M4h0IARvatPiDy8eVGa/aLbJVahHFGw8gek3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1768052062; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=9pPFyONBm1DQtAatKKyi7GJrmTosHzhWJ62jw0I5rNg=; b=aY33fsiA8HoCB+Jrjbm+gswnfh11koWEVOo5Xb7mOiow4Qr1Lbo7X+cfiV/rNGVaH+hTP dHry/mVqf/LiyAsE3yyxpHP9g0KxpuqoaaDfaoE/oObe/vSmuliWYw7fWXmS4Hqk0IrUry/ ABvk5nzHscO7gegqHo/Yu6A4SWAgxbWWHMCE5cisLQzcQAFwOtqlr66GxMwQwrHs8gFUwmC htOhLrU2skwzWFpGarVBwhhCquEeeovnJz7sKM7R3RLQ3Nw6bCC51+cRtMA/J/WrqX1DMs6 MJk18Kr3In+KHfBksfjsRYDnN7L84hhaCEnNU3DEmKg78TSqmhyRgzVhJzsw== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1768052052; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=zwDlTgA5jdn3cjyD9nnO1ZIbxgAjTGXKxhTsYEvUnfU=; b=RNw64ebJbMSbcm6etqvDfyf4DUDk6EHARbOJZ69AAhMP616UIYgLLZ6Kkgj9UC0Moa+PN 3umapP/C+e71cZd+toFG7jbycQ4uAadAghRNyS5zTXhmATuW5uJEpcimyDqed5oEeQiOucq 02Jj36RLFrb5f/aUSgdc/5X1HJv6SSaaICIl1PmVMd9IqhCKu6lGoQg4SXqHdHFzbYkuAyn PsXLC7tbVwhJKBwSFNV23VcmdjClH7TEEhmdfFN/sW5nuz5QdIHfxW88Ov83scPdqYwFAVh y6oecm+JoeaGeSTl4EHdIazFgGfy8/yx7g7HdwvWWxXebw9yDe6S6yQH86jg== Received: from f7c34508609e (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id ABF0E690230 for ; Sat, 10 Jan 2026 15:34:12 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Jan 2026 13:34:12 -0000 Message-ID: <176805205282.25.2100435690154320978@4457048688e7> Message-ID-Hash: T6KNSS5KMMAHRXSG2BVB3IBBXKMMEX7X X-Message-ID-Hash: T6KNSS5KMMAHRXSG2BVB3IBBXKMMEX7X X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] avformat/tls_gnutls: add gnutls_pull_timeout() for dtls (PR #21426) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jack Lau via ffmpeg-devel Cc: Jack Lau Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21426 opened by Jack Lau (JackLau) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21426 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21426.patch See https://gnutls.org/manual/gnutls.html#index-gnutls_005ftransport_005fset_005fpull_005ftimeout_005ffunction This callback is necessary for enforcing the DTLS mode timeouts when in blocking mode. Otherwise the dtls pull function won't work. The gnutls_pull_timeout() implementation refers to gnutls example: https://gnutls.org/manual/gnutls.html#DTLS-echo-server-with-X_002e509-authentication-1 Signed-off-by: Jack Lau >>From 9bd6c05debd7486cb962af5460629fd4e354971a Mon Sep 17 00:00:00 2001 From: Jack Lau Date: Sat, 10 Jan 2026 20:37:08 +0800 Subject: [PATCH] avformat/tls_gnutls: add gnutls_pull_timeout() for dtls See https://gnutls.org/manual/gnutls.html#index-gnutls_005ftransport_005fset_005fpull_005ftimeout_005ffunction This callback is necessary for enforcing the DTLS mode timeouts when in blocking mode. Otherwise the dtls pull function won't work. The gnutls_pull_timeout() implementation refers to gnutls example: https://gnutls.org/manual/gnutls.html#DTLS-echo-server-with-X_002e509-authentication-1 Signed-off-by: Jack Lau --- libavformat/tls_gnutls.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c index c991a712df..6f58ec03d2 100644 --- a/libavformat/tls_gnutls.c +++ b/libavformat/tls_gnutls.c @@ -167,6 +167,29 @@ static ssize_t gnutls_url_push(gnutls_transport_ptr_t transport, return -1; } +static int gnutls_pull_timeout(gnutls_transport_ptr_t ptr, unsigned int ms) +{ + TLSContext *c = (TLSContext*) ptr; + TLSShared *s = &c->tls_shared; + int ret; + fd_set rfds; + struct timeval tv; + int sockfd = ffurl_get_file_handle(s->udp); + if (sockfd < 0) + return 0; + + FD_ZERO(&rfds); + FD_SET(sockfd, &rfds); + + tv.tv_sec = ms / 1000; + tv.tv_usec = (ms % 1000) * 1000; + + ret = select(sockfd + 1, &rfds, NULL, NULL, &tv); + if (ret <= 0) + return ret; + return 1; +} + static int tls_handshake(URLContext *h) { TLSContext *c = h->priv_data; @@ -244,9 +267,11 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op gnutls_transport_set_pull_function(c->session, gnutls_url_pull); gnutls_transport_set_push_function(c->session, gnutls_url_push); gnutls_transport_set_ptr(c->session, c); - if (s->is_dtls) + if (s->is_dtls) { + gnutls_transport_set_pull_timeout_function(c->session, gnutls_pull_timeout); if (s->mtu) gnutls_dtls_set_mtu(c->session, s->mtu); + } gnutls_set_default_priority(c->session); ret = tls_handshake(h); if (ret < 0) -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org