Fixed issue with DTLS sliding window implementation (#1370881)
This commit is contained in:
parent
6ba01df0b3
commit
da39dd49b2
35
gnutls-3.5.3-dtls-fix.patch
Normal file
35
gnutls-3.5.3-dtls-fix.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From 3ca24f24d9322256bc4c6d3bd237f8b98f073030 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nikos Mavrogiannopoulos <nmav@redhat.com>
|
||||||
|
Date: Mon, 29 Aug 2016 13:02:54 +0200
|
||||||
|
Subject: [PATCH] dtls: ensure that the DTLS window doesn't get stalled
|
||||||
|
|
||||||
|
That is ensure that it is forwarded at least one place if more than 16
|
||||||
|
packets have been received since the first one.
|
||||||
|
---
|
||||||
|
lib/dtls-sw.c | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/dtls-sw.c b/lib/dtls-sw.c
|
||||||
|
index 616bd5a..8c334c0 100644
|
||||||
|
--- a/lib/dtls-sw.c
|
||||||
|
+++ b/lib/dtls-sw.c
|
||||||
|
@@ -51,7 +51,15 @@
|
||||||
|
|
||||||
|
#define DTLS_WINDOW_MARK(W, S) ((W)->dtls_sw_bits |= ((uint64_t) 1 << DTLS_WINDOW_OFFSET(W, S)))
|
||||||
|
|
||||||
|
-#define DTLS_WINDOW_UPDATE(W) while ((W)->dtls_sw_bits & (uint64_t) 1) { \
|
||||||
|
+/* We forcefully advance the window once we have received more than
|
||||||
|
+ * 8 packets since the first one. That way we ensure that we don't
|
||||||
|
+ * get stuck on connections with many lost packets. */
|
||||||
|
+#define DTLS_WINDOW_UPDATE(W) \
|
||||||
|
+ if (((W)->dtls_sw_bits & 0xffffffffffff0000LL) != 0) { \
|
||||||
|
+ (W)->dtls_sw_bits = (W)->dtls_sw_bits >> 1; \
|
||||||
|
+ (W)->dtls_sw_start++; \
|
||||||
|
+ } \
|
||||||
|
+ while ((W)->dtls_sw_bits & (uint64_t) 1) { \
|
||||||
|
(W)->dtls_sw_bits = (W)->dtls_sw_bits >> 1; \
|
||||||
|
(W)->dtls_sw_start++; \
|
||||||
|
}
|
||||||
|
--
|
||||||
|
libgit2 0.24.0
|
||||||
|
|
@ -37,6 +37,7 @@ Patch1: gnutls-3.2.7-rpath.patch
|
|||||||
Patch3: gnutls-3.5.3-nosrp.patch
|
Patch3: gnutls-3.5.3-nosrp.patch
|
||||||
Patch4: gnutls-3.5.1-default-policy.patch
|
Patch4: gnutls-3.5.1-default-policy.patch
|
||||||
Patch5: gnutls-3.4.2-no-now-guile.patch
|
Patch5: gnutls-3.4.2-no-now-guile.patch
|
||||||
|
Patch6: gnutls-3.5.3-dtls-fix.patch
|
||||||
|
|
||||||
# Wildcard bundling exception https://fedorahosted.org/fpc/ticket/174
|
# Wildcard bundling exception https://fedorahosted.org/fpc/ticket/174
|
||||||
Provides: bundled(gnulib) = 20130424
|
Provides: bundled(gnulib) = 20130424
|
||||||
@ -140,6 +141,7 @@ This package contains Guile bindings for the library.
|
|||||||
%patch3 -p1 -b .nosrp
|
%patch3 -p1 -b .nosrp
|
||||||
%patch4 -p1 -b .default-policy
|
%patch4 -p1 -b .default-policy
|
||||||
%patch5 -p1 -b .guile
|
%patch5 -p1 -b .guile
|
||||||
|
%patch6 -p1 -b .dtls-fix
|
||||||
|
|
||||||
sed 's/gnutls_srp.c//g' -i lib/Makefile.in
|
sed 's/gnutls_srp.c//g' -i lib/Makefile.in
|
||||||
sed 's/gnutls_srp.lo//g' -i lib/Makefile.in
|
sed 's/gnutls_srp.lo//g' -i lib/Makefile.in
|
||||||
@ -280,6 +282,7 @@ fi
|
|||||||
%changelog
|
%changelog
|
||||||
* Mon Aug 29 2016 Nikos Mavrogiannopoulos <nmav@redhat.com> 3.5.3-2
|
* Mon Aug 29 2016 Nikos Mavrogiannopoulos <nmav@redhat.com> 3.5.3-2
|
||||||
- Work around #1371082 for x86
|
- Work around #1371082 for x86
|
||||||
|
- Fixed issue with DTLS sliding window implementation (#1370881)
|
||||||
|
|
||||||
* Tue Aug 9 2016 Nikos Mavrogiannopoulos <nmav@redhat.com> 3.5.3-1
|
* Tue Aug 9 2016 Nikos Mavrogiannopoulos <nmav@redhat.com> 3.5.3-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
Loading…
Reference in New Issue
Block a user