X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=yarrg%2FCommods.pm;h=c82fdfdbb156a0c3daebd1f4ce6d7e4fe0f36f83;hp=62c1f5e6e94dd21d468d19923d5ea3e4840a7dbd;hb=608bc9e07b5c8a961325fd1b8d5b92f65418b949;hpb=a0dfb8222afa87d6fabaa8234da89e2a1b57ea5a diff --git a/yarrg/Commods.pm b/yarrg/Commods.pm index 62c1f5e..c82fdfd 100644 --- a/yarrg/Commods.pm +++ b/yarrg/Commods.pm @@ -41,7 +41,8 @@ BEGIN { &pipethrough_prep &pipethrough_run &pipethrough_run_along &pipethrough_run_finish &pipethrough_run_gzip - &cgipostform &yarrgpostform); + &cgipostform &yarrgpostform &cgi_get_caller + &set_ctype_utf8); %EXPORT_TAGS = ( ); @EXPORT_OK = qw(); @@ -197,7 +198,7 @@ sub parse_pctb_commodmap () { undef %pctb_commodmap; foreach my $commod (keys %commods) { $commods{$commod} =~ s/b//; } - my $c= new IO::File '_commodmap.tsv' or die $!; + my $c= new IO::File '_commodmap.tsv'; if (!$c) { $!==&ENOENT or die $!; return 0; } while (<$c>) { @@ -216,10 +217,13 @@ sub get_our_version ($$) { $aref->{"${prefix}name"}= 'ypp-sc-tools yarrg'; $aref->{"${prefix}fixes"}= 'lastpage'; - my $version= `git-describe --tags HEAD`; $? and die $?; + my $version= `git-describe --tags HEAD || echo 0unknown`; $? and die $?; chomp($version); $aref->{"${prefix}version"}= $version; return $aref; + # clientname "ypp-sc-tools" + # clientversion 2.1-g2e06a26 [from git-describe --tags HEAD] + # clientfixes "lastpage" [space separated list] } sub pipethrough_prep () { @@ -299,7 +303,8 @@ sub cgipostform ($$$) { return $'; } else { my $resp= $ua->request($req); - die $resp->status_line unless $resp->is_success; + die $resp->status_line."\n".$resp->content."\n " + unless $resp->is_success; return $resp->content(); } } @@ -340,4 +345,21 @@ sub check_tsv_line ($$) { return @v; } +sub cgi_get_caller () { + my $caller= $ENV{'REMOTE_ADDR'}; + $caller= 'LOCAL' unless defined $caller; + + my $fwdf= $ENV{'HTTP_X_FORWARDED_FOR'}; + if (defined $fwdf) { + $fwdf =~ s/\s//g; + $fwdf =~ s/[^0-9.,]/?/g; + $caller= "$fwdf"; + } + return $caller; +} + +sub set_ctype_utf8 () { + setlocale(LC_CTYPE, "en.UTF-8"); +} + 1;