diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-03-03 01:22:27 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-03-03 01:22:27 +0000 |
commit | f9bbe9da79dbc8557c74efeb158b431cd67ace52 (patch) | |
tree | 3220d014a35f9d88a48668a1468524e988daebff /net/ipv4/ip_sockglue.c | |
parent | 3d697109c1ff85ef563aec3d5e113ef225ed2792 (diff) |
Upgrade to 2.1.73.
Diffstat (limited to 'net/ipv4/ip_sockglue.c')
-rw-r--r-- | net/ipv4/ip_sockglue.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 080452dd3..2fd2b16ab 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -5,7 +5,7 @@ * * The IP to API glue. * - * Version: $Id: ip_sockglue.c,v 1.28 1997/11/17 17:36:08 kuznet Exp $ + * Version: $Id: ip_sockglue.c,v 1.3 1997/12/16 05:37:41 ralf Exp $ * * Authors: see ip.c * @@ -229,7 +229,10 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt int val=0,err; #if defined(CONFIG_IP_FIREWALL) || defined(CONFIG_IP_ACCT) struct ip_fw tmp_fw; -#endif +#endif +#ifdef CONFIG_IP_MASQUERADE + char masq_ctl[IP_FW_MASQCTL_MAX]; +#endif if(optlen>=sizeof(int)) { if(get_user(val, (int *) optval)) @@ -465,6 +468,20 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char *optval, int opt return -err; /* -0 is 0 after all */ #endif +#ifdef CONFIG_IP_MASQUERADE + case IP_FW_MASQ_ADD: + case IP_FW_MASQ_DEL: + case IP_FW_MASQ_FLUSH: + if(!suser()) + return -EPERM; + if(optlen>sizeof(masq_ctl) || optlen<1) + return -EINVAL; + if(copy_from_user(masq_ctl,optval,optlen)) + return -EFAULT; + err=ip_masq_ctl(optname, masq_ctl,optlen); + return -err; /* -0 is 0 after all */ + +#endif #ifdef CONFIG_IP_ACCT case IP_ACCT_INSERT: case IP_ACCT_APPEND: |