|
@ -0,0 +1,50 @@ |
|
|
|
|
|
From 2b76b68c65c97fc11409088c3c30993324df8500 Mon Sep 17 00:00:00 2001 |
|
|
|
|
|
From: Marcelo Henrique Cerri <marcelo.cerri@canonical.com> |
|
|
|
|
|
Date: Thu, 4 Jan 2018 18:50:50 +0100 |
|
|
|
|
|
Subject: [PATCH] build: support for Linux 4.15 |
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com> |
|
|
|
|
|
---
|
|
|
|
|
|
extensions/pknock/xt_pknock.c | 16 +++++++++++++++- |
|
|
|
|
|
1 file changed, 15 insertions(+), 1 deletion(-) |
|
|
|
|
|
|
|
|
|
|
|
diff --git a/extensions/pknock/xt_pknock.c b/extensions/pknock/xt_pknock.c
|
|
|
|
|
|
index 6fbdea4..31d4bc8 100644
|
|
|
|
|
|
--- a/extensions/pknock/xt_pknock.c
|
|
|
|
|
|
+++ b/extensions/pknock/xt_pknock.c
|
|
|
|
|
|
@@ -358,10 +358,20 @@ has_logged_during_this_minute(const struct peer *peer)
|
|
|
|
|
|
* @r: rule |
|
|
|
|
|
*/ |
|
|
|
|
|
static void |
|
|
|
|
|
-peer_gc(unsigned long r)
|
|
|
|
|
|
+peer_gc(
|
|
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
|
|
|
|
|
+ struct timer_list *tl
|
|
|
|
|
|
+#else
|
|
|
|
|
|
+ unsigned long r
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
+)
|
|
|
|
|
|
{ |
|
|
|
|
|
unsigned int i; |
|
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
|
|
|
|
|
+ struct xt_pknock_rule *rule = from_timer(rule, tl, timer);
|
|
|
|
|
|
+#else
|
|
|
|
|
|
struct xt_pknock_rule *rule = (struct xt_pknock_rule *)r; |
|
|
|
|
|
+#endif
|
|
|
|
|
|
struct peer *peer; |
|
|
|
|
|
struct list_head *pos, *n; |
|
|
|
|
|
|
|
|
|
|
|
@@ -469,9 +479,13 @@ add_rule(struct xt_pknock_mtinfo *info)
|
|
|
|
|
|
if (rule->peer_head == NULL) |
|
|
|
|
|
goto out; |
|
|
|
|
|
|
|
|
|
|
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
|
|
|
|
|
+ timer_setup(&rule->timer, peer_gc, 0);
|
|
|
|
|
|
+#else
|
|
|
|
|
|
init_timer(&rule->timer); |
|
|
|
|
|
rule->timer.function = peer_gc; |
|
|
|
|
|
rule->timer.data = (unsigned long)rule; |
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
|
|
rule->status_proc = proc_create_data(info->rule_name, 0, pde, |
|
|
|
|
|
&pknock_proc_ops, rule); |