X-Git-Url: https://git.exim.org/buildfarm-server.git/blobdiff_plain/8f1731713e5761e4fb1b11c39093e35dcd802a05..16db57b0d5eabfddda72405d5462012e35ee672e:/cgi-bin/pgstatus.pl diff --git a/cgi-bin/pgstatus.pl b/cgi-bin/pgstatus.pl index 8743be3..f951aee 100755 --- a/cgi-bin/pgstatus.pl +++ b/cgi-bin/pgstatus.pl @@ -19,6 +19,7 @@ use DBD::Pg; use Data::Dumper; use Mail::Send; use Safe; +use Time::ParseDate; require "$ENV{BFConfDir}/BuildFarmWeb.pl"; @@ -62,6 +63,15 @@ unless ($animal && $ts && $stage && $sig) } +unless ($branch =~ /^(HEAD|REL\d+_\d+_STABLE)$/) +{ + print + "Status: 492 bad branch parameter $branch\nContent-Type: text/plain\n\n", + "bad branch parameter $branch\n"; + exit; + +} + my $db = DBI->connect($dsn,$dbuser,$dbpass); @@ -74,6 +84,8 @@ $sth->execute($animal); my ($secret)=$sth->fetchrow_array(); $sth->finish; +my $tsdiff = time - $ts; + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($ts); $year += 1900; $mon +=1; my $date= @@ -84,6 +96,7 @@ if ($ENV{BF_DEBUG} || ($ts > time) || ($ts + 86400 < time ) || (! $secret) ) open(TX,">../buildlogs/$animal.$date"); print TX "sig=$sig\nlogtar-len=" , length($log_archive), "\nstatus=$res\nstage=$stage\nconf:\n$conf\n", + "tsdiff:$tsdiff\n", "changed_this_run:\n$changed_this_run\n", "changed_since_success:\n$changed_since_success\n", "log:\n",$log; @@ -91,7 +104,7 @@ if ($ENV{BF_DEBUG} || ($ts > time) || ($ts + 86400 < time ) || (! $secret) ) close(TX); } -unless ($ts < time) +unless ($ts < time + 120) { my $gmt = gmtime($ts); print "Status: 491 bad ts parameter - $ts ($gmt GMT) is in the future.\n", @@ -138,6 +151,19 @@ if ($calc_sig ne $sig && $calc_sig2 ne $sig) map {tr/$@/+=/; $_ = decode_base64($_); } ($log, $conf,$changed_this_run,$changed_since_success,$log_archive); + +if ($log =~/Last file mtime in snapshot: (.*)/) +{ + my $snaptime = parsedate($1); + if ($snaptime < (time - (10 * 86400))) + { + print "Status: 493 snapshot too old: $1\nContent-Type: text/plain\n\n"; + print "snapshot to old: $1\n"; + $db->disconnect; + exit; + } +} + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($ts); $year += 1900; $mon +=1; my $dbdate= @@ -227,6 +253,7 @@ if (@config_flags) { @config_flags = grep {! m/=/ } @config_flags; map {s/\s+//g; $_=qq("$_"); } @config_flags; + push @config_flags,'git' if $client_conf->{scm} eq 'git'; $config_flags = '{' . join(',',@config_flags) . '}' ; } @@ -327,10 +354,9 @@ $row=$sth->fetchrow_arrayref; my ($os, $compiler,$arch) = @$row; $sth->finish; - $db->begin_work; -$db->do("truncate dashboard_mat"); -$db->do("insert into dashboard_mat select * from dashboard_mat_data2"); +$db->do("delete from dashboard_mat"); +$db->do("insert into dashboard_mat select * from dashboard_mat_data"); $db->commit; $db->disconnect;