summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Popov <pinkbyte@gentoo.org>2019-10-02 17:33:23 +0300
committerSergey Popov <pinkbyte@gentoo.org>2019-10-02 17:33:47 +0300
commitcd00367401c11d4d9948453b952912cb6b7e2661 (patch)
treed5bd8faeef3bf1b7c43040530a084423eeda9ea9 /net-firewall/rtsp-conntrack/files
parentdev-python/pyro: Bump to 4.77 (diff)
downloadgentoo-cd00367401c11d4d9948453b952912cb6b7e2661.tar.gz
gentoo-cd00367401c11d4d9948453b952912cb6b7e2661.tar.bz2
gentoo-cd00367401c11d4d9948453b952912cb6b7e2661.zip
net-firewall/rtsp-conntrack: version bump
Add compatibility patch for kernel 5.3 Reported-by: Toralf Förster <toralf@gentoo.org> Closes: https://bugs.gentoo.org/695476 Signed-off-by: Sergey Popov <pinkbyte@gentoo.org> Package-Manager: Portage-2.3.66, Repoman-2.3.11
Diffstat (limited to 'net-firewall/rtsp-conntrack/files')
-rw-r--r--net-firewall/rtsp-conntrack/files/rtsp-conntrack-4.18-linux-5.3.patch122
1 files changed, 122 insertions, 0 deletions
diff --git a/net-firewall/rtsp-conntrack/files/rtsp-conntrack-4.18-linux-5.3.patch b/net-firewall/rtsp-conntrack/files/rtsp-conntrack-4.18-linux-5.3.patch
new file mode 100644
index 000000000000..66a35019817d
--- /dev/null
+++ b/net-firewall/rtsp-conntrack/files/rtsp-conntrack-4.18-linux-5.3.patch
@@ -0,0 +1,122 @@
+From 57394bcd68459d3c31cc605e538824a41ba490d9 Mon Sep 17 00:00:00 2001
+From: Seth Forshee <seth.forshee@canonical.com>
+Date: Fri, 30 Aug 2019 09:10:23 -0500
+Subject: [PATCH] Fix build with Linux 5.3
+
+In Linux 5.3 nf_ct_expect_related() gained a flags argument.
+Calls to this function are sprinkled throughout a couple of
+source files, so rather than adding a #if to each call site, add
+a wrapper which will use the appropriate prototype.
+
+Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
+---
+ netfilter_helpers.h | 11 +++++++++++
+ nf_conntrack_rtsp.c | 5 ++---
+ nf_nat_rtsp.c | 11 +++++------
+ 3 files changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/netfilter_helpers.h b/netfilter_helpers.h
+index 903f374..d8b8ce3 100644
+--- a/netfilter_helpers.h
++++ b/netfilter_helpers.h
+@@ -14,6 +14,8 @@
+ /* Only include these functions for kernel code. */
+ #ifdef __KERNEL__
+
++#include <net/netfilter/nf_conntrack_expect.h>
++
+ #include <linux/ctype.h>
+ #define iseol(c) ( (c) == '\r' || (c) == '\n' )
+
+@@ -128,6 +130,15 @@ nf_nextline(char* p, uint len, uint* poff, uint* plineoff, uint* plinelen)
+ }
+ #endif /* NF_NEED_NEXTLINE */
+
++static inline int rtsp_nf_ct_expect_related(struct nf_conntrack_expect *expect)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,3,0)
++ return nf_ct_expect_related(expect, 0);
++#else
++ return nf_ct_expect_related(expect);
++#endif
++}
++
+ #endif /* __KERNEL__ */
+
+ #endif /* _NETFILTER_HELPERS_H */
+diff --git a/nf_conntrack_rtsp.c b/nf_conntrack_rtsp.c
+index 8a2f182..300be0a 100644
+--- a/nf_conntrack_rtsp.c
++++ b/nf_conntrack_rtsp.c
+@@ -41,7 +41,6 @@
+ #include <net/tcp.h>
+
+ #include <net/netfilter/nf_conntrack.h>
+-#include <net/netfilter/nf_conntrack_expect.h>
+ #include <net/netfilter/nf_conntrack_helper.h>
+ #include "nf_conntrack_rtsp.h"
+
+@@ -396,8 +395,8 @@ help_out(struct sk_buff *skb, unsigned char *rb_ptr, unsigned int datalen,
+ &expinfo, rtp_exp, rtcp_exp);
+ #endif
+ else {
+- if (nf_ct_expect_related(rtp_exp) == 0) {
+- if (rtcp_exp && nf_ct_expect_related(rtcp_exp) != 0) {
++ if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
++ if (rtcp_exp && rtsp_nf_ct_expect_related(rtcp_exp) != 0) {
+ nf_ct_unexpect_related(rtp_exp);
+ pr_info("nf_conntrack_expect_related failed for rtcp\n");
+ ret = NF_DROP;
+diff --git a/nf_nat_rtsp.c b/nf_nat_rtsp.c
+index 59ea4fd..02b46c5 100644
+--- a/nf_nat_rtsp.c
++++ b/nf_nat_rtsp.c
+@@ -46,7 +46,6 @@
+ #endif
+ #include <net/netfilter/nf_nat_helper.h>
+ #include "nf_conntrack_rtsp.h"
+-#include <net/netfilter/nf_conntrack_expect.h>
+
+ #include <linux/inet.h>
+ #include <linux/ctype.h>
+@@ -202,7 +201,7 @@ rtsp_mangle_tran(enum ip_conntrack_info ctinfo,
+ case pb_single:
+ for (loport = prtspexp->loport; loport != 0; loport++) { /* XXX: improper wrap? */
+ rtp_t->dst.u.udp.port = htons(loport);
+- if (nf_ct_expect_related(rtp_exp) == 0) {
++ if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
+ pr_debug("using port %hu\n", loport);
+ break;
+ }
+@@ -215,12 +214,12 @@ rtsp_mangle_tran(enum ip_conntrack_info ctinfo,
+ case pb_range:
+ for (loport = prtspexp->loport; loport != 0; loport += 2) { /* XXX: improper wrap? */
+ rtp_t->dst.u.udp.port = htons(loport);
+- if (nf_ct_expect_related(rtp_exp) != 0) {
++ if (rtsp_nf_ct_expect_related(rtp_exp) != 0) {
+ continue;
+ }
+ hiport = loport + 1;
+ rtcp_exp->tuple.dst.u.udp.port = htons(hiport);
+- if (nf_ct_expect_related(rtcp_exp) != 0) {
++ if (rtsp_nf_ct_expect_related(rtcp_exp) != 0) {
+ nf_ct_unexpect_related(rtp_exp);
+ continue;
+ }
+@@ -243,14 +242,14 @@ rtsp_mangle_tran(enum ip_conntrack_info ctinfo,
+ case pb_discon:
+ for (loport = prtspexp->loport; loport != 0; loport++) { /* XXX: improper wrap? */
+ rtp_t->dst.u.udp.port = htons(loport);
+- if (nf_ct_expect_related(rtp_exp) == 0) {
++ if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
+ pr_debug("using port %hu (1 of 2)\n", loport);
+ break;
+ }
+ }
+ for (hiport = prtspexp->hiport; hiport != 0; hiport++) { /* XXX: improper wrap? */
+ rtp_t->dst.u.udp.port = htons(hiport);
+- if (nf_ct_expect_related(rtp_exp) == 0) {
++ if (rtsp_nf_ct_expect_related(rtp_exp) == 0) {
+ pr_debug("using port %hu (2 of 2)\n", hiport);
+ break;
+ }