X-Git-Url: https://git.distorted.org.uk/~mdw/userv-utils/blobdiff_plain/94808710d2f7eda4f4e114a2a138f473ad832703..711a074884724fb201f5e23d2256d7ea7f5ecaef:/ipif/udptunnel-reconf.pl?ds=sidebyside diff --git a/ipif/udptunnel-reconf.pl b/ipif/udptunnel-reconf.pl index 7fd14bc..e4851a4 100755 --- a/ipif/udptunnel-reconf.pl +++ b/ipif/udptunnel-reconf.pl @@ -55,7 +55,7 @@ sub run_m4 ($$$) { undef $/; $m4out= ; $/= "\n"; - close X; $? and exit -1; + $!=0; close X; $? and die "m4 failed with code $? $!"; $m4out =~ s/^\s+//; $m4out =~ s/\n+/\n/g; $m4out =~ s/\s+$//; @@ -94,14 +94,6 @@ sub parse_addr_mask ($) { return ($iaddr, $mask); } -$forbid_remote= var_global('forbid_remote'); -@forbid_remote= (); -if ($forbid_remote ne '-') { - foreach $r (split /[, \t]+/, $forbid_remote) { - push @forbid_remote, [ parse_addr_mask($r) ]; - } -} - sub ipif_permit ($$$$) { my ($group,$local,$net,$why) = @_; my ($pmask,$piaddr,$fmask,$fiaddr,@lgroup,$lgid); @@ -133,6 +125,14 @@ if ($glend !~ m/^V_/ && $glgroup !~ m/^V_/ && } foreach $site (@actives, @passives) { + $forbid_remote= var_site('forbid_remote'); + @forbid_remote= (); + if ($forbid_remote ne '-') { + foreach $r (split /[, \t]+/, $forbid_remote) { + push @forbid_remote, [ parse_addr_mask($r) ]; + } + } + $tlend= var_site('lend')."/32"; $tlgroup= var_site('lgroup'); if ($tlend ne $glend || $tlgroup ne $glgroup) { @@ -163,16 +163,21 @@ $ipifnetsfile= var_global(ipifnetsfile); write_file($ipifnetsfile,'ipifnetsfile','', $ipif_file); $active_file= ''; +$knownhosts_file= ''; $inittab= ''; $ix= 0; foreach $site (@actives) { $active_file.= "$site\t".var_site('activesxinfo')."\n"; $inittab.= sprintf("t%d", $ix++).':'.var_site('inittab_line')."\n"; + $hostkey= var_site('rhostkey'); + $knownhosts_file.= var_site('sshdest').' '.$hostkey."\n" + if length $hostkey; $invoke_file= var_site('invoke_file'); write_file($invoke_file, 'invoke_file', - var_site('invoke_head'), var_site('invoke_body')); + var_site('invoke_head')."\n", var_site('invoke_body')); chmod 0777&~umask, $invoke_file or die $!; } +write_file(var_global('knownhostsfile'),'knownhostsfile', '',$knownhosts_file); write_file(var_global('activesfile'),'activesfile', '',$active_file); print