From 110c1e4502e21ea38e0980e6f8af857d24330099 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Fri, 21 May 2010 12:47:16 +0200 Subject: Revert "Merge branch 'iptables-next'" This reverts commit 65414babaebcd403e9bf2c27d9d74adb369bf3aa, reversing changes made to 7278461dfad72e2008585dd0bac0e889e5bba99e. Forgot to commit the version increase. --- extensions/libxt_TEE.c | 202 ----------------------------------------------- extensions/libxt_TEE.man | 12 --- 2 files changed, 214 deletions(-) delete mode 100644 extensions/libxt_TEE.c delete mode 100644 extensions/libxt_TEE.man (limited to 'extensions') diff --git a/extensions/libxt_TEE.c b/extensions/libxt_TEE.c deleted file mode 100644 index f8e7fd17..00000000 --- a/extensions/libxt_TEE.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * "TEE" target extension for iptables - * Copyright © Sebastian Claßen , 2007 - * Jan Engelhardt , 2007 - 2010 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License; either - * version 2 of the License, or any later version, as published by the - * Free Software Foundation. - */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -enum { - FLAG_GATEWAY = 1 << 0, - FLAG_OIF = 1 << 1, -}; - -static const struct option tee_tg_opts[] = { - {.name = "gateway", .has_arg = true, .val = 'g'}, - {.name = "oif", .has_arg = true, .val = 'o'}, - {NULL}, -}; - -static void tee_tg_help(void) -{ - printf( -"TEE target options:\n" -" --gateway IPADDR Route packet via the gateway given by address\n" -" --oif NAME Include oif in route calculation\n" -"\n"); -} - -static int tee_tg_parse(int c, char **argv, int invert, unsigned int *flags, - const void *entry, struct xt_entry_target **target) -{ - struct xt_tee_tginfo *info = (void *)(*target)->data; - const struct in_addr *ia; - - switch (c) { - case 'g': - if (*flags & FLAG_GATEWAY) - xtables_error(PARAMETER_PROBLEM, - "Cannot specify --gateway more than once"); - - ia = xtables_numeric_to_ipaddr(optarg); - if (ia == NULL) - xtables_error(PARAMETER_PROBLEM, - "Invalid IP address %s", optarg); - - memcpy(&info->gw, ia, sizeof(*ia)); - *flags |= FLAG_GATEWAY; - return true; - case 'o': - if (*flags & FLAG_OIF) - xtables_error(PARAMETER_PROBLEM, - "Cannot specify --oif more than once"); - if (strlen(optarg) >= sizeof(info->oif)) - xtables_error(PARAMETER_PROBLEM, - "oif name too long"); - strcpy(info->oif, optarg); - *flags |= FLAG_OIF; - return true; - } - - return false; -} - -static int tee_tg6_parse(int c, char **argv, int invert, unsigned int *flags, - const void *entry, struct xt_entry_target **target) -{ - struct xt_tee_tginfo *info = (void *)(*target)->data; - const struct in6_addr *ia; - - switch (c) { - case 'g': - if (*flags & FLAG_GATEWAY) - xtables_error(PARAMETER_PROBLEM, - "Cannot specify --gateway more than once"); - - ia = xtables_numeric_to_ip6addr(optarg); - if (ia == NULL) - xtables_error(PARAMETER_PROBLEM, - "Invalid IP address %s", optarg); - - memcpy(&info->gw, ia, sizeof(*ia)); - *flags |= FLAG_GATEWAY; - return true; - case 'o': - if (*flags & FLAG_OIF) - xtables_error(PARAMETER_PROBLEM, - "Cannot specify --oif more than once"); - if (strlen(optarg) >= sizeof(info->oif)) - xtables_error(PARAMETER_PROBLEM, - "oif name too long"); - strcpy(info->oif, optarg); - *flags |= FLAG_OIF; - return true; - } - - return false; -} - -static void tee_tg_check(unsigned int flags) -{ - if (flags == 0) - xtables_error(PARAMETER_PROBLEM, "TEE target: " - "--gateway parameter required"); -} - -static void tee_tg_print(const void *ip, const struct xt_entry_target *target, - int numeric) -{ - const struct xt_tee_tginfo *info = (const void *)target->data; - - if (numeric) - printf("TEE gw:%s ", xtables_ipaddr_to_numeric(&info->gw.in)); - else - printf("TEE gw:%s ", xtables_ipaddr_to_anyname(&info->gw.in)); - if (*info->oif != '\0') - printf("oif=%s ", info->oif); -} - -static void tee_tg6_print(const void *ip, const struct xt_entry_target *target, - int numeric) -{ - const struct xt_tee_tginfo *info = (const void *)target->data; - - if (numeric) - printf("TEE gw:%s ", xtables_ip6addr_to_numeric(&info->gw.in6)); - else - printf("TEE gw:%s ", xtables_ip6addr_to_anyname(&info->gw.in6)); - if (*info->oif != '\0') - printf("oif=%s ", info->oif); -} - -static void tee_tg_save(const void *ip, const struct xt_entry_target *target) -{ - const struct xt_tee_tginfo *info = (const void *)target->data; - - printf("--gateway %s ", xtables_ipaddr_to_numeric(&info->gw.in)); - if (*info->oif != '\0') - printf("--oif %s ", info->oif); -} - -static void tee_tg6_save(const void *ip, const struct xt_entry_target *target) -{ - const struct xt_tee_tginfo *info = (const void *)target->data; - - printf("--gateway %s ", xtables_ip6addr_to_numeric(&info->gw.in6)); - if (*info->oif != '\0') - printf("--oif %s ", info->oif); -} - -static struct xtables_target tee_tg_reg = { - .name = "TEE", - .version = XTABLES_VERSION, - .revision = 1, - .family = NFPROTO_IPV4, - .size = XT_ALIGN(sizeof(struct xt_tee_tginfo)), - .userspacesize = XT_ALIGN(sizeof(struct xt_tee_tginfo)), - .help = tee_tg_help, - .parse = tee_tg_parse, - .final_check = tee_tg_check, - .print = tee_tg_print, - .save = tee_tg_save, - .extra_opts = tee_tg_opts, -}; - -static struct xtables_target tee_tg6_reg = { - .name = "TEE", - .version = XTABLES_VERSION, - .revision = 1, - .family = NFPROTO_IPV6, - .size = XT_ALIGN(sizeof(struct xt_tee_tginfo)), - .userspacesize = XT_ALIGN(sizeof(struct xt_tee_tginfo)), - .help = tee_tg_help, - .parse = tee_tg6_parse, - .final_check = tee_tg_check, - .print = tee_tg6_print, - .save = tee_tg6_save, - .extra_opts = tee_tg_opts, -}; - -static __attribute__((constructor)) void tee_tg_ldr(void) -{ - xtables_register_target(&tee_tg_reg); - xtables_register_target(&tee_tg6_reg); -} diff --git a/extensions/libxt_TEE.man b/extensions/libxt_TEE.man deleted file mode 100644 index 456d1502..00000000 --- a/extensions/libxt_TEE.man +++ /dev/null @@ -1,12 +0,0 @@ -The \fBTEE\fP target will clone a packet and redirect this clone to another -machine on the \fBlocal\fP network segment. In other words, the nexthop -must be the target, or you will have to configure the nexthop to forward it -further if so desired. -.TP -\fB\-\-gateway\fP \fIipaddr\fP -Send the cloned packet to the host reachable at the given IP address. -Use of 0.0.0.0 (for IPv4 packets) or :: (IPv6) is invalid. -.PP -To forward all incoming traffic on eth0 to an Network Layer logging box: -.PP -\-t mangle \-A PREROUTING \-i eth0 \-j TEE \-\-gateway 2001:db8::1 -- cgit v1.2.3