summaryrefslogtreecommitdiff
path: root/SunOS4/mkroutes
diff options
context:
space:
mode:
Diffstat (limited to 'SunOS4/mkroutes')
-rwxr-xr-xSunOS4/mkroutes35
1 files changed, 35 insertions, 0 deletions
diff --git a/SunOS4/mkroutes b/SunOS4/mkroutes
new file mode 100755
index 0000000000000..bdcf25800e229
--- /dev/null
+++ b/SunOS4/mkroutes
@@ -0,0 +1,35 @@
+#!/usr/local/bin/perl
+# for best results, bring up all your interfaces before running this
+open(I, "ifconfig -a|") || die $!;
+while (<I>) {
+ chop;
+ if (/^[a-zA-Z]+\d+:/) {
+ ($iface = $_) =~ s/^([a-zA-Z]+\d+).*/$1/;
+ $ifaces{$iface} = $iface;
+ next;
+ }
+ if (/inet/) {
+ if (/\-\-\>/) { # PPP, (SLIP?)
+ ($inet{$iface} = $_) =~ s/.*inet ([^ ]+) \-\-\> ([^ ]+).*/$1/;
+ ($ppp{$iface} = $_) =~ s/.*inet ([^ ]+) \-\-\> ([^ ]+).*/$2/;
+ } else {
+ ($inet{$iface} = $_) =~ s/.*inet ([^ ]+).*/$1/;
+ }
+ }
+ if (/netmask/) {
+ ($mask = $_) =~ s/.*netmask ([^ ]+).*/$1/;
+ $mask =~ s/^/0x/ if ($mask =~ /^[0-9a-f]*$/);
+ $netmask{$iface} = $mask;
+ }
+ if (/broadcast/) {
+ ($bcast{$iface} = $_) =~ s/.*broadcast ([^ ]+).*/$1/;
+ }
+}
+foreach $i (keys %ifaces) {
+ $net{$i} = $inet{$i}."/".$netmask{$i} if (defined($inet{$i}));
+}
+foreach $i (keys %ifaces) {
+ next if (($i =~ /lo/) || !defined($net{$i}));
+# 8/25/97; removed || defined($ppp{$i})
+ system("route add $inet{$i} localhost 0");
+}