summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xserver/scireserver.pl28
1 files changed, 22 insertions, 6 deletions
diff --git a/server/scireserver.pl b/server/scireserver.pl
index 88f17a3..6dd9a8c 100755
--- a/server/scireserver.pl
+++ b/server/scireserver.pl
@@ -106,7 +106,7 @@ sub register_client {
#my @result = $sth->fetchrow_array();
#$status_id = $result[0];
};
- ($@) and print "ERROR Could not get status id: $DBI::errstr";
+ ($@) and print "ERROR Could not get status id: $DBI::errstr\n";
eval {
$query = 'LOCK TABLES `gacl_axo_seq` WRITE';
@@ -129,7 +129,7 @@ sub register_client {
debug("DEBUG: Query is $query");
#$dbh->do($query);
};
- ($@) and print "ERROR during fetching of id sequence: $DBI::errstr";
+ ($@) and print "ERROR during fetching of id sequence: $DBI::errstr\n";
eval {
$query = 'INSERT INFO `gacl_axo` (id,section_value,value,order_value,name,hidden VALUES (?,"clients",?,1,?,0)';
@@ -145,7 +145,7 @@ sub register_client {
#$sth = $dbh->prepare($query);
#$sth->execute($id,$digest,$hostname,$mac,$ip,$status_id);
};
- ($@) and print "ERROR Could not insert client with $query: $DBI::errstr";
+ ($@) and print "ERROR Could not insert client with $query: $DBI::errstr\n";
print "OK\n";
}
@@ -154,9 +154,10 @@ sub register_client {
#Identify the client by looking up the fingerprint in the database, and matching it up.
sub identify_client {
my $fingerprint = shift;
+ #Validate your inputs!
$fingerprint =~ s/"//g; #Clear the quotes.
$fingerprint =~ /^[A-Za-z0-9]+$/ or print "ERROR invalid fingerprint!\n";
- #Validate your inputs!
+
my $query = 'SELECT client_status.statusname FROM clients JOIN client_status on (clients.status = client_status.statusid) WHERE clients.digest=?';
debug("DEBUG: Query is $query");
#$sth = $dbh->prepare($query);
@@ -167,8 +168,23 @@ sub identify_client {
sub get_jobs {
my (@existing_jobs) = (@_);
#Validate your inputs!
-
- my $query;
+ foreach my $jobid (@existing_jobs) {
+ unless($jobid =~ /^\d$/) {
+ print "ERROR Invalid jobid given as input $jobid\n";
+ return undef;
+ }
+ }
+ my $query = <<'EndOfQuery'
+ SELECT jobs.jobid, jobs.priority, job_conditions.job_dependency, job_conditions.deploy_time, job_conditions.expiration_time, job_history.statusid
+ FROM jobs NATURAL JOIN jobs_clients NATURAL JOIN job_conditions NATURAL JOIN job_history
+ WHERE jobs_clients.clientid = %s
+ AND jobs.jobid = jobs_clients.jobid
+ AND (job_conditions.deploy_time < now())
+ AND (job_conditions.expiration_time > now())
+ AND job_history.statusid = '%s'
+ ORDER BY jobs.priority,jobs.created
+EndOfQuery
+
}
sub get_job {
my $job = shift;