[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org
From: |
Giuseppe Scrivano |
Subject: |
Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received." |
Date: |
Mon, 28 Sep 2015 15:30:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Tim Ruehsen <address@hidden> writes:
> Please review / test this patch.
>
> BTW, I am not sure if contributors.debian.org is configured correctly.
> The rehandshake occurs right after the HTTP request and it has a pretty heavy
>
> impact on download duration.
>
> Regards, Tim
>
> On Sunday 27 September 2015 20:03:54 Tim Ruehsen wrote:
>> Follow-up Comment #2, bug #46061 (project wget):
>>
>> Wget is not reacting on GNUTLS_E_REHANDSHAKE. Should be straight forward...
>>
>>
>> _______________________________________________________
>>
>> Reply to this item at:
>>
>> <http://savannah.gnu.org/bugs/?46061>
>>
>> _______________________________________________
>> Nachricht gesendet von/durch Savannah
>> http://savannah.gnu.org/
>
> From cbec5b0c780f9d1fc343fabf22e8ee7c7cb3222d Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Tim=20R=C3=BChsen?= <address@hidden>
> Date: Mon, 28 Sep 2015 12:00:33 +0200
> Subject: [PATCH] Handle TLS rehandshakes in GnuTLS code
>
> * src/gnutls.c: New static function _do_handshake()
> * src/gnutls.c (wgnutls_read_timeout): Handle rehandshake
> * src/gnutls.c (wgnutls_write): Handle rehandshake
> * src/gnutls.c (ssl_connect_wget): Move handshake code into _do_handshake()
>
> Fixes #46061
> ---
> src/gnutls.c | 179
> ++++++++++++++++++++++++++++++++++-------------------------
> 1 file changed, 102 insertions(+), 77 deletions(-)
>
> diff --git a/src/gnutls.c b/src/gnutls.c
> index a38301a..2f53592 100644
> --- a/src/gnutls.c
> +++ b/src/gnutls.c
> @@ -57,6 +57,9 @@ as that of the covered work. */
> #include "host.h"
>
> static int
> +_do_handshake(gnutls_session_t session, int fd, double timeout);
> +
> +static int
> key_type_to_gnutls_type (enum keyfile_type type)
> {
> switch (type)
> @@ -277,6 +280,12 @@ wgnutls_read_timeout (int fd, char *buf, int bufsize,
> void *arg, double timeout)
> {
> ret = gnutls_record_recv (ctx->session, buf, bufsize);
> timed_out = timeout && ptimer_measure (timer) >= timeout;
> + if (!timed_out && ret == GNUTLS_E_REHANDSHAKE)
> + {
> + DEBUGP (("GnuTLS: *** REHANDSHAKE while reading\n"));
> + if ((ret = _do_handshake(ctx->session, fd, timeout)) == 0)
> + ret = GNUTLS_E_AGAIN; /* restart reading */
> + }
> }
> }
> while (ret == GNUTLS_E_INTERRUPTED || (ret == GNUTLS_E_AGAIN &&
> !timed_out));
> @@ -332,7 +341,15 @@ wgnutls_write (int fd _GL_UNUSED, char *buf, int
> bufsize, void *arg)
> int ret;
> struct wgnutls_transport_context *ctx = arg;
> do
> - ret = gnutls_record_send (ctx->session, buf, bufsize);
> + {
> + ret = gnutls_record_send (ctx->session, buf, bufsize);
> + if (ret == GNUTLS_E_REHANDSHAKE)
> + {
> + DEBUGP (("GnuTLS: *** REHANDSHAKE while writing\n"));
> + if ((ret = _do_handshake(ctx->session, fd, 0)) == 0)
one thing: timeout here should be the remaining time instead of 0?
Regards,
Giuseppe
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", NoëlKöthe, 2015/09/27
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Ángel, 2015/09/27
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/27
- [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/28
- Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Giuseppe Scrivano, 2015/09/29
- Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.",
Giuseppe Scrivano <=
- Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/29
- Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Giuseppe Scrivano, 2015/09/29
- Re: [Bug-wget] [PATCH] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/29
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Giuseppe Scrivano, 2015/09/28
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/28
- [Bug-wget] [bug #46061] wget https://contributors.debian.org fails with "No data received.", Tim Ruehsen, 2015/09/29