From patchwork Thu Oct 29 19:59:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 23277 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4307D44B0A3 for ; Thu, 29 Oct 2020 22:04:39 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 05B5468B51C; Thu, 29 Oct 2020 22:04:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 30FED688109 for ; Thu, 29 Oct 2020 22:04:33 +0200 (EET) Received: by mail-wm1-f53.google.com with SMTP id d3so981677wma.4 for ; Thu, 29 Oct 2020 13:04:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=rjrMSCIO7/JRbldnB5/IqviJzpHbcuesDKQllXqXLY0=; b=HZK98nJzH0B9CXoc0pOgWgfg4EIfrdVEpH+AH4wkKfbOvYEHG55oawzxP2lpTlgmwC 7anFj/O4/XGQrlzRFv5MXZJ9TpBzjvenHf7lsIndEadZe63r6zQKynt01mYvxrkuDsjN KpHanFyru4h1JuC4oRrEGpJJ9MCZnmdezluoFoWV8dhU1pGRfqtJjtw1V8qmW48A1O6v Ix5W5S2y3/vZHI8JGCI/AWfjXzo8xO33wWbULpvCgF8euBCSE+SNyM175hUU003SKfIh 8TOAkXsbgSn9YbejxxdOorEP5KLg33z6T90v6O8qvpWoixbPWOuz8EDbXBl5GVrU51xA oa4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=rjrMSCIO7/JRbldnB5/IqviJzpHbcuesDKQllXqXLY0=; b=Y/j99pjeKvmFDdVNlBOFwH7kKLwm0d1rUKYJ956ppoXW8CTyF0bSFicqWZ0d9GkBJB KKV/ylD1eu7qvCnytcr6qbnY9wMNP1QYCEpX7PKAQd/0uZxCpbiYDzKtGZTX6H6NOav1 Ex2N6LrdA3oWO1WgrHWyMLdKcvPvfOCRsSuPYzP3QoY1yI50d+q0vHvatpz7KDEvAhh7 neclrqw9Eguq9UUvVSwloZ2iuid+ocGsl0QUZysJ3FKD1+C7MNgEH8ibgYFZZWMTrgiH bK+TQMrDjSBRhalQeKtOkTKji634gk0MAPBKMN1yE28kh00UH3xlYmhaw6lzvI9txUCh oVRA== X-Gm-Message-State: AOAM5334uKB9K0HH6iaZTP7O3NBJh/ygWXVFBqYNJ472ZqzfjsF1VbHW d5QT+HymLPgdrrPJ0HNfgcQuTEIteyDEQe4Y X-Google-Smtp-Source: ABdhPJwfm/jl6RtFmIMpGEj1KIUYTrluPHy2Kok/t8rtdHBXhUHaBob4564XIfbsbjxINkXVtqRhuQ== X-Received: by 2002:a7b:c349:: with SMTP id l9mr589446wmj.148.1604001562368; Thu, 29 Oct 2020 12:59:22 -0700 (PDT) Received: from localhost (host-96-177.parnet.fi. [77.234.96.177]) by smtp.gmail.com with ESMTPSA id z15sm1427654wmk.4.2020.10.29.12.59.21 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 29 Oct 2020 12:59:21 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 29 Oct 2020 21:59:20 +0200 Message-Id: <20201029195920.20328-1-martin@martin.st> X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] tls: Hook up the url_get_short_seek function in the TLS backends X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This makes sure that small seeks forward on https don't end up doing new requests. --- libavformat/tls_gnutls.c | 7 +++++++ libavformat/tls_libtls.c | 7 +++++++ libavformat/tls_mbedtls.c | 7 +++++++ libavformat/tls_openssl.c | 7 +++++++ libavformat/tls_schannel.c | 7 +++++++ libavformat/tls_securetransport.c | 7 +++++++ 6 files changed, 42 insertions(+) diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c index 0c4ef34f5f..f9d5af7096 100644 --- a/libavformat/tls_gnutls.c +++ b/libavformat/tls_gnutls.c @@ -269,6 +269,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), { NULL } @@ -288,6 +294,7 @@ const URLProtocol ff_tls_protocol = { .url_write = tls_write, .url_close = tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class, diff --git a/libavformat/tls_libtls.c b/libavformat/tls_libtls.c index dff7f2d9fb..911c8094b0 100644 --- a/libavformat/tls_libtls.c +++ b/libavformat/tls_libtls.c @@ -181,6 +181,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), { NULL } @@ -200,6 +206,7 @@ const URLProtocol ff_tls_protocol = { .url_write = ff_tls_write, .url_close = ff_tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class, diff --git a/libavformat/tls_mbedtls.c b/libavformat/tls_mbedtls.c index 965adf1be4..aadf17760d 100644 --- a/libavformat/tls_mbedtls.c +++ b/libavformat/tls_mbedtls.c @@ -326,6 +326,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), \ {"key_password", "Password for the private key file", OFFSET(priv_key_pw), AV_OPT_TYPE_STRING, .flags = TLS_OPTFL }, \ @@ -346,6 +352,7 @@ const URLProtocol ff_tls_protocol = { .url_write = tls_write, .url_close = tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class, diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c index 002197fa76..e0616acbc8 100644 --- a/libavformat/tls_openssl.c +++ b/libavformat/tls_openssl.c @@ -351,6 +351,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), { NULL } @@ -370,6 +376,7 @@ const URLProtocol ff_tls_protocol = { .url_write = tls_write, .url_close = tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class, diff --git a/libavformat/tls_schannel.c b/libavformat/tls_schannel.c index 4bfaa85228..d4959f75fa 100644 --- a/libavformat/tls_schannel.c +++ b/libavformat/tls_schannel.c @@ -589,6 +589,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), { NULL } @@ -608,6 +614,7 @@ const URLProtocol ff_tls_protocol = { .url_write = tls_write, .url_close = tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class, diff --git a/libavformat/tls_securetransport.c b/libavformat/tls_securetransport.c index 3250b23051..b0cfab1e23 100644 --- a/libavformat/tls_securetransport.c +++ b/libavformat/tls_securetransport.c @@ -396,6 +396,12 @@ static int tls_get_file_handle(URLContext *h) return ffurl_get_file_handle(c->tls_shared.tcp); } +static int tls_get_short_seek(URLContext *h) +{ + TLSContext *s = h->priv_data; + return ffurl_get_short_seek(s->tls_shared.tcp); +} + static const AVOption options[] = { TLS_COMMON_OPTIONS(TLSContext, tls_shared), { NULL } @@ -415,6 +421,7 @@ const URLProtocol ff_tls_protocol = { .url_write = tls_write, .url_close = tls_close, .url_get_file_handle = tls_get_file_handle, + .url_get_short_seek = tls_get_short_seek, .priv_data_size = sizeof(TLSContext), .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tls_class,