chiark / gitweb /
Merge branch 'master' of ijackson@chiark.greenend.org.uk:things/ypp-sc-tools.pctb...
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sat, 8 Aug 2009 14:16:11 +0000 (15:16 +0100)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sat, 8 Aug 2009 14:16:11 +0000 (15:16 +0100)
1  2 
yarrg/Commods.pm

diff --combined yarrg/Commods.pm
@@@ -23,7 -23,6 +23,7 @@@
  package Commods;
  use IO::File;
  use HTTP::Request::Common ();
 +use POSIX;
  
  use strict;
  use warnings;
@@@ -33,7 -32,7 +33,7 @@@ BEGIN 
      our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
      $VERSION     = 1.00;
      @ISA         = qw(Exporter);
 -    @EXPORT      = qw(&parse_info_clientside
 +    @EXPORT      = qw(&parse_info_clientside &fetch_with_rsync
                      &parse_info_serverside &parse_info_serverside_ocean
                      %oceans %commods %clients %routes %route_mysteries
                      &parse_pctb_commodmap %pctb_commodmap @pctb_commodmap
@@@ -41,7 -40,7 +41,7 @@@
                      &pipethrough_prep &pipethrough_run
                      &pipethrough_run_along &pipethrough_run_finish
                      &pipethrough_run_gzip
-                     &cgipostform &yarrgpostform);
+                     &cgipostform &yarrgpostform &cgi_get_caller);
      %EXPORT_TAGS = ( );
  
      @EXPORT_OK   = qw();
@@@ -145,12 -144,7 +145,12 @@@ sub parse_info_clientside () 
      return unless $yarrg;
      my $master= fetch_with_rsync('info');
      parse_info1($master,'s');
 -    parse_info1('_local-info.txt','s');
 +    my $local= '_local-info.txt';
 +    if (stat $local) {
 +      parse_info1($local,'s');
 +    } else {
 +      die "$local $!" unless $! == &ENOENT;
 +    }
  }
  
  sub fetch_with_rsync ($) {
        $!=0; system 'rsync','-Lt','--',$remote,$local;
        die "$? $!" if $! or $?;
      }
 +    return $local;
  }
  
  sub parse_info_maproutes ($$$) {
@@@ -263,8 -256,7 +263,8 @@@ sub yarrgpostform ($$) 
      my ($ua, $form) = @_;
      my $dest= $ENV{'YPPSC_YARRG_YARRG'};
      get_our_version($form, 'client');
 -    return cgipostform($ua, "$dest/commod-update-receiver", $form);
 +    die unless $dest =~ m,/$,;
 +    return cgipostform($ua, "${dest}commod-update-receiver", $form);
  }    
  
  sub cgipostform ($$$) {
        $out =~ m,^Content-Type: text/plain.*\n\n, or die "$out ?";
        return $';
      } else {
 -      my $resp= $ua->request($url,$req);
 +      my $resp= $ua->request($req);
        die $resp->status_line unless $resp->is_success;
        return $resp->content();
      }