#!/usr/bin/perl # # Routino router results retrieval CGI # # Part of the Routino routing software. # # This file Copyright 2008-2010 Andrew M. Bishop # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # Use the directory paths script require "paths.pl"; # Use the generic router script require "router.pl"; # Use the perl CGI module use CGI ':cgi'; # Create the query and get the parameters $query=new CGI; @rawparams=$query->param; # Legal CGI parameters with regexp validity check %legalparams=( "type" => "(shortest|quickest)", "format" => "(html|gpx-route|gpx-track|text|text-all)", "uuid" => "[0-9a-f]{32}" ); # Validate the CGI parameters, ignore invalid ones foreach $key (@rawparams) { foreach $test (keys (%legalparams)) { if($key =~ m%^$test$%) { $value=$query->param($key); if($value =~ m%^$legalparams{$test}$%) { $cgiparams{$key}=$value; last; } } } } # Parse the parameters $uuid =$cgiparams{"uuid"}; $type =$cgiparams{"type"}; $format=$cgiparams{"format"}; # Return the file ReturnOutput($uuid,$type,$format);