@@ -49,36 +49,37 @@ target(struct sk_buff **pskb,
49
49
u_int32_t * ctmark = nf_ct_get_mark (* pskb , & ctinfo );
50
50
51
51
if (ctmark ) {
52
- switch (markinfo -> mode ) {
53
- case XT_CONNMARK_SET :
54
- newmark = (* ctmark & ~markinfo -> mask ) | markinfo -> mark ;
55
- if (newmark != * ctmark ) {
56
- * ctmark = newmark ;
52
+ switch (markinfo -> mode ) {
53
+ case XT_CONNMARK_SET :
54
+ newmark = (* ctmark & ~markinfo -> mask ) | markinfo -> mark ;
55
+ if (newmark != * ctmark ) {
56
+ * ctmark = newmark ;
57
57
#ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
58
- ip_conntrack_event_cache (IPCT_MARK , * pskb );
58
+ ip_conntrack_event_cache (IPCT_MARK , * pskb );
59
59
#else
60
- nf_conntrack_event_cache (IPCT_MARK , * pskb );
60
+ nf_conntrack_event_cache (IPCT_MARK , * pskb );
61
61
#endif
62
62
}
63
- break ;
64
- case XT_CONNMARK_SAVE :
65
- newmark = (* ctmark & ~markinfo -> mask ) | ((* pskb )-> nfmark & markinfo -> mask );
66
- if (* ctmark != newmark ) {
67
- * ctmark = newmark ;
63
+ break ;
64
+ case XT_CONNMARK_SAVE :
65
+ newmark = (* ctmark & ~markinfo -> mask ) |
66
+ ((* pskb )-> nfmark & markinfo -> mask );
67
+ if (* ctmark != newmark ) {
68
+ * ctmark = newmark ;
68
69
#ifdef CONFIG_IP_NF_CONNTRACK_EVENTS
69
- ip_conntrack_event_cache (IPCT_MARK , * pskb );
70
+ ip_conntrack_event_cache (IPCT_MARK , * pskb );
70
71
#else
71
- nf_conntrack_event_cache (IPCT_MARK , * pskb );
72
+ nf_conntrack_event_cache (IPCT_MARK , * pskb );
72
73
#endif
74
+ }
75
+ break ;
76
+ case XT_CONNMARK_RESTORE :
77
+ nfmark = (* pskb )-> nfmark ;
78
+ diff = (* ctmark ^ nfmark ) & markinfo -> mask ;
79
+ if (diff != 0 )
80
+ (* pskb )-> nfmark = nfmark ^ diff ;
81
+ break ;
73
82
}
74
- break ;
75
- case XT_CONNMARK_RESTORE :
76
- nfmark = (* pskb )-> nfmark ;
77
- diff = (* ctmark ^ nfmark ) & markinfo -> mask ;
78
- if (diff != 0 )
79
- (* pskb )-> nfmark = nfmark ^ diff ;
80
- break ;
81
- }
82
83
}
83
84
84
85
return XT_CONTINUE ;
@@ -95,17 +96,17 @@ checkentry(const char *tablename,
95
96
struct xt_connmark_target_info * matchinfo = targinfo ;
96
97
97
98
if (matchinfo -> mode == XT_CONNMARK_RESTORE ) {
98
- if (strcmp (tablename , "mangle" ) != 0 ) {
99
- printk (KERN_WARNING "CONNMARK: restore can only be called from \"mangle\" table, not \"%s\"\n" , tablename );
100
- return 0 ;
101
- }
99
+ if (strcmp (tablename , "mangle" ) != 0 ) {
100
+ printk (KERN_WARNING "CONNMARK: restore can only be "
101
+ "called from \"mangle\" table, not \"%s\"\n" ,
102
+ tablename );
103
+ return 0 ;
104
+ }
102
105
}
103
-
104
106
if (matchinfo -> mark > 0xffffffff || matchinfo -> mask > 0xffffffff ) {
105
107
printk (KERN_WARNING "CONNMARK: Only supports 32bit mark\n" );
106
108
return 0 ;
107
109
}
108
-
109
110
return 1 ;
110
111
}
111
112
0 commit comments