"MASQUERADE v%s options:\n"
" --to-ports <port>[-<port>]\n"
" Port (range) to map to.\n"
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
" --random\n"
" Randomize source port.\n"
-#endif
"\n"
,
IPTABLES_VERSION);
static struct option opts[] = {
{ "to-ports", 1, 0, '1' },
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
{ "random", 0, 0, '2' },
-#endif
{ 0 }
};
parse_ports(optarg, mr);
return 1;
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
case '2':
mr->range[0].flags |= IP_NAT_RANGE_PROTO_RANDOM;
return 1;
-#endif
default:
return 0;
printf(" ");
}
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
- if (r->flags & IP_NAT_RANGE_PROTO_RANDOM) {
+ if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
printf("random");
- }
-#endif
}
/* Saves the union ipt_targinfo in parsable form to stdout. */
" --nodst\n"
" Don't use destination-ip in\n"
" source selection\n"
-
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
" --random\n"
" Randomize source port\n"
-#endif
,
IPTABLES_VERSION);
}
static struct option opts[] = {
{ "to", 1, 0, '1' },
{ "nodst", 0, 0, '2'},
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
{ "random", 0, 0, '3' },
-#endif
{ 0 }
};
#define IPT_SAME_OPT_TO 0x01
#define IPT_SAME_OPT_NODST 0x02
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
-# define IPT_SAME_OPT_RANDOM 0x04
-#endif
+#define IPT_SAME_OPT_RANDOM 0x04
/* Function which parses command options; returns true if it
ate an option */
{
struct ipt_same_info *mr
= (struct ipt_same_info *)(*target)->data;
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
int count;
-#endif
switch (c) {
case '1':
"Unexpected `!' after --to");
parse_to(optarg, &mr->range[mr->rangesize]);
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
+ /* WTF do we need this for? */
if (*flags & IPT_SAME_OPT_RANDOM)
mr->range[mr->rangesize].flags
|= IP_NAT_RANGE_PROTO_RANDOM;
-#endif
mr->rangesize++;
*flags |= IPT_SAME_OPT_TO;
break;
*flags |= IPT_SAME_OPT_NODST;
break;
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
case '3':
*flags |= IPT_SAME_OPT_RANDOM;
for (count=0; count < mr->rangesize; count++)
mr->range[count].flags |= IP_NAT_RANGE_PROTO_RANDOM;
break;
-#endif
+
default:
return 0;
}
int count;
struct ipt_same_info *mr
= (struct ipt_same_info *)target->data;
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
int random = 0;
-#endif
printf("same:");
printf(" ");
else
printf("-%s ", addr_to_dotted(&a));
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
random = 1;
-#endif
}
if (mr->info & IPT_SAME_NODST)
printf("nodst ");
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
if (random)
printf("random ");
-#endif
}
/* Saves the union ipt_targinfo in parsable form to stdout. */
#include <linux/netfilter/nf_nat.h>
#define IPT_SNAT_OPT_SOURCE 0x01
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
-# define IPT_SNAT_OPT_RANDOM 0x02
-#endif
+#define IPT_SNAT_OPT_RANDOM 0x02
/* Source NAT data consists of a multi-range, indicating where to map
to. */
printf(
"SNAT v%s options:\n"
" --to-source <ipaddr>[-<ipaddr>][:port-port]"
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
"[--random]"
-#endif
"\n"
" Address to map source to.\n"
" (You can use this more than once)\n\n",
static struct option opts[] = {
{ "to-source", 1, 0, '1' },
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
{ "random", 0, 0, '2' },
-#endif
{ 0 }
};
"Multiple --to-source not supported");
}
*target = parse_to(optarg, portok, info);
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
+ /* WTF do we need this for?? */
if (*flags & IPT_SNAT_OPT_RANDOM)
info->mr.range[0].flags |= IP_NAT_RANGE_PROTO_RANDOM;
-#endif
*flags = IPT_SNAT_OPT_SOURCE;
return 1;
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
case '2':
if (*flags & IPT_SNAT_OPT_SOURCE) {
info->mr.range[0].flags |= IP_NAT_RANGE_PROTO_RANDOM;
} else
*flags |= IPT_SNAT_OPT_RANDOM;
return 1;
-#endif
default:
return 0;
if (r->max.tcp.port != r->min.tcp.port)
printf("-%hu", ntohs(r->max.tcp.port));
}
-#ifdef IP_NAT_RANGE_PROTO_RANDOM
- if (r->flags & IP_NAT_RANGE_PROTO_RANDOM) {
+ if (r->flags & IP_NAT_RANGE_PROTO_RANDOM)
printf(" random");
- }
-#endif
}
/* Prints out the targinfo. */