mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-15 23:50:44 +00:00
162 lines
4.5 KiB
Plaintext
162 lines
4.5 KiB
Plaintext
|
diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/tools/skiphost/skiphost.c work.new/skip/tools/skiphost/skiphost.c
|
||
|
--- skipsrc-1.0.orig/skip/tools/skiphost/skiphost.c Fri Oct 25 13:13:03 1996
|
||
|
+++ work.new/skip/tools/skiphost/skiphost.c Mon Jan 24 12:35:42 2000
|
||
|
@@ -76,6 +76,7 @@
|
||
|
static char *skip_version = NULL;
|
||
|
static char *skip_mode = NULL;
|
||
|
static char *tunnel = NULL;
|
||
|
+static char *srcaddr = NULL;
|
||
|
|
||
|
static int opt, opt_cpt;
|
||
|
static int opt_action, opt_more;
|
||
|
@@ -89,11 +90,14 @@
|
||
|
static int opt_prt, opt_sh, opt_sel;
|
||
|
static int opt_trs, opt_tunnel;
|
||
|
static int opt_msk, opt_nomadic;
|
||
|
+static int opt_source;
|
||
|
|
||
|
boolean_t on_boot = B_FALSE;
|
||
|
|
||
|
#define SKIP_HOST_MASK "255.255.255.255"
|
||
|
|
||
|
+struct in_addr source_addr;
|
||
|
+
|
||
|
static void usage();
|
||
|
|
||
|
/*
|
||
|
@@ -218,6 +222,11 @@
|
||
|
if (params->ip_addr.s_addr != params->tunnel_addr.s_addr) {
|
||
|
printf(" -A %s", inet_ntoa(params->tunnel_addr));
|
||
|
}
|
||
|
+
|
||
|
+ if(params->source != 0) {
|
||
|
+ source_addr.s_addr = params->source;
|
||
|
+ printf(" -f %s", inet_ntoa(source_addr));
|
||
|
+ }
|
||
|
|
||
|
switch (params->version) {
|
||
|
|
||
|
@@ -376,6 +385,11 @@
|
||
|
printf(" tunnel=%s", inet_ntoa(params->tunnel_addr));
|
||
|
}
|
||
|
|
||
|
+ if (params->source != 0) {
|
||
|
+ source_addr.s_addr = params->source;
|
||
|
+ printf(" source=%s", inet_ntoa(source_addr));
|
||
|
+ }
|
||
|
+
|
||
|
switch (params->version) {
|
||
|
|
||
|
case SKIP_NONE:
|
||
|
@@ -907,12 +921,18 @@
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ if(opt_source) {
|
||
|
+ parms.source = inet_addr(srcaddr);
|
||
|
+ } else {
|
||
|
+ parms.source = 0;
|
||
|
+ }
|
||
|
+
|
||
|
/*
|
||
|
* Check if a cleartext host...
|
||
|
*/
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
- opt_sel += opt_vers + opt_nomadic + opt_tunnel;
|
||
|
+ opt_sel += opt_vers + opt_nomadic + opt_tunnel + opt_source;
|
||
|
|
||
|
if (!opt_sel) {
|
||
|
/*
|
||
|
@@ -1531,6 +1551,7 @@
|
||
|
"\t\t[-r <receiver NSID>] [-R <receiver key Id>]...\n"
|
||
|
"\t\t[-s <sender NSID>] [-S <sender key Id>]...\n"
|
||
|
"\t\t[-v <SKIP version>] [-A <tunnel address>] [-T]\n"
|
||
|
+ "\t\t[-f <source address>]\n"
|
||
|
"\t%s [-i <interface>] "
|
||
|
"-x <hostname|IP address|\"*\"> [-M <mask>]...\n"
|
||
|
"\t\t[-k <kij algorithm>] [-t <crypt algorithm>]...\n"
|
||
|
@@ -1592,6 +1613,7 @@
|
||
|
opt_trs = opt_msk = 0;
|
||
|
opt_prt = opt_sh = opt_mode = 0;
|
||
|
opt_nomadic = opt_tunnel = 0;
|
||
|
+ opt_source = 0;
|
||
|
|
||
|
ifname = skip_default_if();
|
||
|
|
||
|
@@ -1614,7 +1636,7 @@
|
||
|
*/
|
||
|
optind = 1;
|
||
|
while ((opt = getopt(argc, argv,
|
||
|
- "phuPVTa:d:o:x:i:s:r:S:R:k:t:m:c:v:M:A:")) != -1) {
|
||
|
+ "phuPVTa:d:o:x:i:s:r:S:R:k:t:m:c:v:M:A:f:")) != -1) {
|
||
|
|
||
|
switch (opt) {
|
||
|
|
||
|
@@ -1761,7 +1783,10 @@
|
||
|
SKIP_ONE(&opt_tunnel);
|
||
|
tunnel = optarg;
|
||
|
break;
|
||
|
-
|
||
|
+ case 'f':
|
||
|
+ SKIP_ONE(&opt_source);
|
||
|
+ srcaddr = optarg;
|
||
|
+ break;
|
||
|
case 'h':
|
||
|
default:
|
||
|
usage();
|
||
|
@@ -1890,7 +1915,7 @@
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
opt_sel += opt_mode + opt_vers + opt_trs + opt_msk;
|
||
|
- opt_sel += opt_tunnel;
|
||
|
+ opt_sel += opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
fprintf(stderr, "%s -u does not take options\n",
|
||
|
@@ -1912,7 +1937,7 @@
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
opt_sel += opt_mode + opt_vers + opt_trs + opt_msk;
|
||
|
- opt_sel += opt_tunnel;
|
||
|
+ opt_sel += opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
fprintf(stderr, "%s -p does not take options\n",
|
||
|
@@ -1941,7 +1966,7 @@
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
opt_sel += opt_mode + opt_vers + opt_trs + opt_msk;
|
||
|
- opt_sel += opt_tunnel;
|
||
|
+ opt_sel += opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
fprintf(stderr, "%s -P does not take options\n",
|
||
|
@@ -1963,7 +1988,7 @@
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
opt_sel += opt_mode + opt_vers + opt_trs + opt_msk;
|
||
|
- opt_sel += opt_tunnel;
|
||
|
+ opt_sel += opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
fprintf(stderr, "%s -V does not take options\n",
|
||
|
@@ -1985,7 +2010,7 @@
|
||
|
opt_sel = opt_r_nsid + opt_s_nsid + opt_r_keyid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
opt_sel += opt_vers + opt_trs + opt_msk;
|
||
|
- opt_sel += opt_tunnel;
|
||
|
+ opt_sel += opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
usage();
|
||
|
@@ -2018,7 +2043,7 @@
|
||
|
*/
|
||
|
opt_sel = opt_s_nsid + opt_s_keyid;
|
||
|
opt_sel += opt_kij + opt_crypt + opt_mac + opt_comp;
|
||
|
- opt_sel += opt_mode + opt_trs + opt_tunnel;
|
||
|
+ opt_sel += opt_mode + opt_trs + opt_tunnel + opt_source;
|
||
|
|
||
|
if (opt_sel) {
|
||
|
usage();
|