Jan Engelhardt
1b379667d3
xt_psd: resolve compiler warning
...
xt_psd.c:53:0: warning: "HASH_SIZE" redefined
#define HASH_SIZE (1 << HASH_LOG)
linux-4.10.10/include/linux/hashtable.h:26:0:
note: this is the location of the previous definition
#define HASH_SIZE(name) (ARRAY_SIZE(name))
2017-04-13 11:38:00 +02:00
Jan Engelhardt
95ff9a2de3
build: resolve compiler error
...
extensions/xt_psd.c:141:2: error: implicit declaration of function
'vmalloc' [-Werror=implicit-function-declaration]
2012-10-15 21:15:25 +02:00
Jan Engelhardt
37b000182f
xt_psd: replace vzalloc by vmalloc+memset
...
The lower support boundary is currently 2.6.32, but vzalloc is only
available since 2.6.37.
2012-10-15 20:02:43 +02:00
Florian Westphal
3a6e73e986
xt_psd: add IPv6 support
...
Because most users will probably only use IPv4 psd, allocate most of the
state6 storage when the first IPv6 psd rule is added, and not at module
load time via .bss.
2012-09-18 03:33:37 +02:00
Florian Westphal
0a97126f5b
xt_psd: move IPv4 state locking responsibility to caller
...
The former psd_match function is now < 72 lines.
2012-09-18 02:53:02 +02:00
Florian Westphal
2ba833fe47
xt_psd: move L4 header fetching into helper
...
Also start splitting psd_match into two functions, one to do initial
sanity checking and header retrieval, one to do the actual work.
2012-09-18 02:47:30 +02:00
Florian Westphal
77240e0918
xt_psd: use tcph->dest directly
...
This allows us to move more code away from the main match function.
2012-09-18 02:45:17 +02:00
Florian Westphal
651e60f8d7
xt_psd: move table cleanup into helper
2012-09-18 02:43:04 +02:00
Florian Westphal
54ac2a899a
xt_psd: split struct host into generic and AF-dependent structure
2012-09-18 02:42:22 +02:00
Florian Westphal
61d2be172d
xt_psd: remove unneeded variables, make hash unsigned
...
- dest port and dest address were only written, never read
- struct inaddr isn't needed either, just look at iph->saddr
2012-09-18 02:41:15 +02:00
Florian Westphal
093f3b0a97
xt_psd: move match functionality to helpers
...
Reduce line count and to allow code reuse when IPv6 support will be
introduced.
2012-09-17 04:44:29 +02:00
Florian Westphal
57d25f22f1
xt_psd: avoid if (c=h) do {..} while (c = c->next)
...
It is aquivalent to c=h; while (c) { ..; c = c->next; }
which is a bit easier to read.
2012-09-17 04:42:56 +02:00
Florian Westphal
2f18ab31ec
xt_psd: move parts of main match function to helpers
...
The match function is way too large, start to split this into smaller
chunks.
2012-09-17 00:02:49 +02:00
Florian Westphal
12d0a8702c
xt_psd: consider protocol when searching port list
...
If we saw a TCP packet on port X, and we receive a UDP packet from the
same host to port X, we counted this as "port X", and did not see this
as a new packet.
Change compare to also consider protocol number and move it to a helper
to de-bloat the overlay large match function.
This change makes psd more aggressive with mixed TCP/UDP traffic.
2012-09-17 00:02:45 +02:00
Florian Westphal
d66d07d01d
psd: move defines to user/kernelspace part where possible
...
Some of these defines have no meaning in userspace, so there
is no need to make those available.
2012-06-15 15:17:30 +02:00
Florian Westphal
3736a265d8
psd: reduce size of struct host
...
We can use u16, saving 8 bytes total (weight cannot exceed
PSD_MAX_RATE, 10000). Also re-format comments & struct initializers.
No functional changes.
2012-06-15 15:17:21 +02:00
Jan Engelhardt
5b2649b1a2
psd: re-format comments
2012-06-15 15:16:31 +02:00
Florian Westphal
f6b8767228
psd: add basic validation of userspace matchinfo data
...
psd multiplies weight_thresh by HZ, so it could overflow.
Userspace libxt_psd refuses values exceeding PSD_MAX_RATE, so check
that on kernel side, too.
Also, setting 0 weight for both privileged and highports will cause
psd to never match at all.
Reject 0 weight threshold, too because it makes no sense (triggers
match for every initial packet).
2012-06-15 15:11:32 +02:00
Florian Westphal
ac58f2e94b
psd: rip out scanlogd leftovers
...
scanlogd remembers tcp flags and uses the *_CHANGING values in its
logger function to determine the best log format to use (e.g. TTL is
not logged if HF_TTL_CHANGING was set, as TTL values were different).
As psd does not log at all, we do not need track this.
Also get rid of bogus/misleading comments.
2012-06-15 15:09:26 +02:00
Florian Westphal
759546f8d0
xt_psd: avoid crash due to curr->next corruption
...
curr->ports[] is of size SCAN_MAX_COUNT - 1, so under certain
conditions we wrote past end of array, corrupting ->next pointer
of the adjacent host entry.
Reported-and-tested-by: Serge Leschinsky <serge.leschinsky@gmail.com >
2012-04-18 14:30:22 +02:00
Jan Engelhardt
01d864f4fc
xt_psd: resolve compiler warning
...
xt_psd.c: In function "xt_psd_match":
xt_psd.c:253:27: warning: "tcph" may be used uninitialized in this
function [-Wuninitialized]
2011-08-11 15:50:08 +02:00
Jan Engelhardt
071c95b750
xt_psd: compact temporary skb buffers
2011-08-11 15:49:40 +02:00
Jan Engelhardt
a141cc311c
xt_psd: support UDPLITE
2011-08-11 15:47:20 +02:00
Jan Engelhardt
7e92ce7ce6
xt_psd: move early bail-out code above skb_header_pointer
2011-08-11 15:46:53 +02:00
Jan Engelhardt
21da1dfea5
xt_psd: cleanup and reduce number of condition checks
2011-08-11 15:46:53 +02:00
Jan Engelhardt
6c17eb46b5
xt_psd: restore skb_header_pointer functionality for UDP
2011-08-11 15:46:53 +02:00
Jan Engelhardt
9a18a05d02
compat_xtables: move to 2.6.35 xt_action_param (2/3)
2010-05-13 19:45:52 +02:00
Jan Engelhardt
5b472be9bb
compat_xtables: move to 2.6.35 xt_action_param (1/3)
2010-05-13 19:28:37 +02:00
Jan Engelhardt
7512101bca
modules: replace AF/PF with NFPROTO
2010-03-16 23:37:05 +01:00
Florian Westphal
342ccf62b2
psd: byteswap constant value instead
...
htons(CONSTANT) is computed at compile time.
reduces .text by 4 bytes on x86.
Signed-off-by: Florian Westphal <fwestphal@astaro.com >
2009-09-11 21:38:23 +02:00
Florian Westphal
adabd647b1
psd: use skb_header_pointer
...
Do not rely on tcphdr being in the linear area.
Signed-off-by: Florian Westphal <fwestphal@astaro.com >
2009-09-11 21:38:00 +02:00
Jan Engelhardt
83e474f9ab
psd: move pr_ prefix into pr_fmt
2009-08-28 12:32:23 +02:00
Jan Engelhardt
efd4c91557
psd: style: remove braces for single statements in ifs
2009-08-16 12:40:44 +02:00
Jan Engelhardt
65a257a67d
psd: style: add explicit comparisons where not used in bool context
2009-08-14 20:26:37 +02:00
Jan Engelhardt
5b07e04600
psd: style: break double statements
2009-08-14 20:24:36 +02:00
Jan Engelhardt
6b175b40cb
psd: jiffies is an unsigned long, fix compiler warning
...
"jiffies" has always been unsigned long, not clock_t.
xt_psd.c:176:7: warning: comparison of distinct pointer types lacks a cast
2009-08-14 20:19:13 +02:00
Jan Engelhardt
0887365f8b
psd: remove whitespace at EOL
2009-08-14 20:15:00 +02:00
Mohd Nawawi Mohamad Jamili
380b1b6997
psd: fix revision mismatch
2009-08-13 13:11:18 +02:00
Jan Engelhardt
8e5219636a
psd: tag match reg struct as __read_mostly
2009-08-13 01:04:26 +02:00
Jan Engelhardt
502c1c05aa
psd: return correct status from init
2009-08-13 00:46:33 +02:00
Jan Engelhardt
a7ceccc0f4
psd: bss is always zero-initialized
2009-08-13 00:45:52 +02:00
Jan Engelhardt
10bd08d0f3
psd: remove empty checkentry function
2009-08-13 00:44:39 +02:00
Jan Engelhardt
1e5315d338
psd: replace open-coded access by skb handling functions
...
pskb->network_header would not even compile under older kernels.
This also fixes the compile warning:
xt_psd.c:116:18: warning: cast to pointer from integer of different size
2009-08-13 00:42:01 +02:00
Jan Engelhardt
579484ed70
psd: avoid shadowing of function
...
ip_hdr and tcp_hdr are actually functions. Because we need them means
they must not be shadowed by variables.
2009-08-13 00:38:39 +02:00
Mohd Nawawi Mohamad Jamili
2aa32d4bce
psd: import 20090807 code base
2009-08-12 21:59:33 +02:00