chiark / gitweb /
Changes to make it appear to work on chiark
[userv-utils.git] / ipif / udptunnel-reconf.pl
index ea4c86f0d337f80ce7d29921bb90eeee9f1473be..6b77f97b7369a327f935ed8fbf7746234eb154c4 100755 (executable)
@@ -3,6 +3,9 @@
 # Set up the relevant stuff in /etc/userv/vpn, and then run
 # this.  It should tell you what to do to inittab and ipif-networks.
 
+# Copyright (C) 1999-2000,2003 Ian Jackson
+# This file is part of ipif, part of userv-utils
+#
 # This is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
@@ -55,7 +58,7 @@ sub run_m4 ($$$) {
     undef $/;
     $m4out= <X>;
     $/= "\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+$//;
@@ -163,16 +166,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