X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FUtils.pm;h=856e60250f41ece095a591499d892a4170763f6e;hp=eeffccced7a12a29bb0fc2e363d1f393c525bf8e;hb=0cf41562dd3be395b42934a4a1a99404ce2a4e68;hpb=e1aa55129d029121d2ac089f4dd9184dd80b081f diff --git a/lib/ZOOM/IRSpy/Utils.pm b/lib/ZOOM/IRSpy/Utils.pm index eeffccc..856e602 100644 --- a/lib/ZOOM/IRSpy/Utils.pm +++ b/lib/ZOOM/IRSpy/Utils.pm @@ -828,7 +828,7 @@ sub validate_record { my $rec = shift; my %args = @_; - my %required = map { $_ => 1 } qw/port host database/; + my %required = map { $_ => 1 } qw/port host database protocol/; my %optional = map { $_ => 1 } qw/country type hosturl contact language/; my %tests = ( %required, %args ); @@ -841,18 +841,27 @@ sub validate_record { my $id = irspy_make_identifier($protocol, $host, $port, $dbname); + if ($protocol =~ /\s+$/ || $dbname =~ /\s+$/) { + warn "xxx: $protocol:$host:$port:$dbname: whitespaces\n"; + } + my @errors = $id; + if ($tests{'protocol'}) { + push(@errors, 'protocol number is not valid') if $protocol !~ /^(z39\.50|sru|srw|tcp)$/; + } + if ($tests{'port'}) { - push(@errors, 'This port number is not valid') if $port !~ /^\d+$/; + push(@errors, 'port number is not valid') if $port !~ /^\d+$/; } if ($tests{'host'}) { - push(@errors, 'This host name is not valid') if $host !~ /^[0-9a-z]+[0-9a-z\.\-]*\.[0-9a-z]+$/i; + push(@errors, 'host name is not valid') if $host !~ /^[0-9a-z]+[0-9a-z\.\-]*\.[0-9a-z]+$/i; } if ($tests{'database'}) { - push(@errors, 'This database name is not valid') if $dbname !~ /^[\w_\-\.]+$/i; + push(@errors, 'database name is not valid') if $dbname =~ m,/,i; + push(@errors, 'database has trailing spaces') if $dbname ne trimField($dbname); } if ($tests{'hosturl'}) {