38 lines
957 B
Diff
38 lines
957 B
Diff
|
--- a/extensions/pknock/xt_pknock.c
|
||
|
+++ b/extensions/pknock/xt_pknock.c
|
||
|
@@ -357,11 +357,18 @@
|
||
|
*
|
||
|
* @r: rule
|
||
|
*/
|
||
|
-static void
|
||
|
-peer_gc(unsigned long r)
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
|
||
|
+static void peer_gc(struct timer_list *tl)
|
||
|
+#else
|
||
|
+static void peer_gc(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 +476,13 @@
|
||
|
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);
|