diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2002-06-06 16:56:01 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2002-06-06 16:56:01 +0000 |
commit | 6f2721fc8029d3a2b2dcbf017f14312e04f3fb86 (patch) | |
tree | 2b9939196a35e1ae352963dc7b59143dbc3e510e /kernel | |
parent | f4f1a99bde4bbc2883e8dc363423d97be6b38a58 (diff) |
Split this up in ebt_snat.c and ebt_dnat.c
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/linux/net/bridge/netfilter/ebt_nat.c | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/kernel/linux/net/bridge/netfilter/ebt_nat.c b/kernel/linux/net/bridge/netfilter/ebt_nat.c deleted file mode 100644 index 16694c5..0000000 --- a/kernel/linux/net/bridge/netfilter/ebt_nat.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * ebt_nat - * - * Authors: - * Bart De Schuymer <bart.de.schuymer@pandora.be> - * - * April, 2002 - * - */ - -#include <linux/netfilter_bridge/ebtables.h> -#include <linux/netfilter_bridge/ebt_nat.h> -#include <linux/netfilter_bridge.h> -#include <linux/skbuff.h> -#include <linux/module.h> -#include <net/sock.h> - -static __u8 ebt_target_snat(struct sk_buff **pskb, unsigned int hooknr, - const struct net_device *in, const struct net_device *out, - const void *data, unsigned int datalen) -{ - struct ebt_nat_info *infostuff = (struct ebt_nat_info *) data; - - memcpy(((**pskb).mac.ethernet)->h_source, infostuff->mac, - ETH_ALEN * sizeof(unsigned char)); - return infostuff->target; -} - -static __u8 ebt_target_dnat(struct sk_buff **pskb, unsigned int hooknr, - const struct net_device *in, const struct net_device *out, - const void *data, unsigned int datalen) -{ - struct ebt_nat_info *infostuff = (struct ebt_nat_info *) data; - - memcpy(((**pskb).mac.ethernet)->h_dest, infostuff->mac, - ETH_ALEN * sizeof(unsigned char)); - return infostuff->target; -} - -static int ebt_target_snat_check(const char *tablename, unsigned int hooknr, - const struct ebt_entry *e, void *data, unsigned int datalen) -{ - struct ebt_nat_info *infostuff = (struct ebt_nat_info *) data; - - if (strcmp(tablename, "nat")) - return -EINVAL; - if (datalen != sizeof(struct ebt_nat_info)) - return -EINVAL; - if (hooknr != NF_BR_POST_ROUTING) - return -EINVAL; - if (infostuff->target >= NUM_STANDARD_TARGETS) - return -EINVAL; - return 0; -} - -static int ebt_target_dnat_check(const char *tablename, unsigned int hooknr, - const struct ebt_entry *e, void *data, unsigned int datalen) -{ - struct ebt_nat_info *infostuff = (struct ebt_nat_info *) data; - - if ( (strcmp(tablename, "nat") || - (hooknr != NF_BR_PRE_ROUTING && hooknr != NF_BR_LOCAL_OUT)) && - (strcmp(tablename, "broute") || hooknr != NF_BR_BROUTING) ) - return -EINVAL; - if (datalen != sizeof(struct ebt_nat_info)) - return -EINVAL; - if (infostuff->target >= NUM_STANDARD_TARGETS) - return -EINVAL; - return 0; -} - -static struct ebt_target snat = -{ - {NULL, NULL}, EBT_SNAT_TARGET, ebt_target_snat, ebt_target_snat_check, - NULL, THIS_MODULE -}; - -static struct ebt_target dnat = -{ - {NULL, NULL}, EBT_DNAT_TARGET, ebt_target_dnat, ebt_target_dnat_check, - NULL, THIS_MODULE -}; - -static int __init init(void) -{ - int ret; - ret = ebt_register_target(&snat); - if (ret != 0) - return ret; - ret = ebt_register_target(&dnat); - if (ret == 0) - return 0; - ebt_unregister_target(&snat); - return ret; -} - -static void __exit fini(void) -{ - ebt_unregister_target(&snat); - ebt_unregister_target(&dnat); -} - -module_init(init); -module_exit(fini); -EXPORT_NO_SYMBOLS; -MODULE_LICENSE("GPL"); |