git://git.onelab.eu
/
iptables.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to iptables-1.3.5
[iptables.git]
/
extensions
/
libipt_SNAT.c
diff --git
a/extensions/libipt_SNAT.c
b/extensions/libipt_SNAT.c
index
a893a47
..
867c9d0
100644
(file)
--- a/
extensions/libipt_SNAT.c
+++ b/
extensions/libipt_SNAT.c
@@
-143,7
+143,8
@@
parse(int c, char **argv, int invert, unsigned int *flags,
int portok;
if (entry->ip.proto == IPPROTO_TCP
int portok;
if (entry->ip.proto == IPPROTO_TCP
- || entry->ip.proto == IPPROTO_UDP)
+ || entry->ip.proto == IPPROTO_UDP
+ || entry->ip.proto == IPPROTO_ICMP)
portok = 1;
else
portok = 0;
portok = 1;
else
portok = 0;
@@
-154,6
+155,13
@@
parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM,
"Unexpected `!' after --to-source");
exit_error(PARAMETER_PROBLEM,
"Unexpected `!' after --to-source");
+ if (*flags) {
+ if (!kernel_version)
+ get_kernel_version();
+ if (kernel_version > LINUX_VERSION(2, 6, 10))
+ exit_error(PARAMETER_PROBLEM,
+ "Multiple --to-source not supported");
+ }
*target = parse_to(optarg, portok, info);
*flags = 1;
return 1;
*target = parse_to(optarg, portok, info);
*flags = 1;
return 1;