You are currently logged in as \"$remoteUser\"
\n"; } if( ! $got_raven ) { my $params = "&rt=".uri_escape("$restrict_to") . "&search=". uri_escape($search) . "&offset=". uri_escape($offset) . "&referer_page=". uri_escape($referer_page) . "&tabsel=". uri_escape($tabsel); print "If you have a Raven password, please log in to access our full range of services.
\n"; } if( length( $search ) ) { print "Enter search text in the box and either click Go or one of the tabs
\n"; } else { $dosearch = 1; $warning = "No results were found
\n"; } my $enc_search = uri_escape( $search ); if( $restrict_to =~ /$minisite/is ) { $query = "/saquery.xml?qt=url:$minisite.cam.ac.uk%20-url:/reporter/||$enc_search&st=$offset"; if( $got_raven || $cam_only ) { $searchsite = "int.web-search.cam.ac.uk"; } else { $searchsite = "web-search.cam.ac.uk"; } } elsif( $restrict_to =~ /university lookup/is && $got_raven ) { if( length( $search ) ) { my $ldap = Net::LDAP->new( "ldap.lookup.cam.ac.uk" ); my $mesg = $ldap->bind(); my $filterref = ""; if( $search =~ /^\d*$/ ) { $filterref = Net::LDAP::Filter->new( "(telephonenumber=*$search)" ); } elsif( length( $search ) ) { $filterref = Net::LDAP::Filter->new( "|(displayName=*$search*)(mail=*$search*)(mailalternative=*$search*)" ); } my $filter = $filterref->as_string; $mesg = $ldap->search( base=> "ou=people,o=University of Cambridge,dc=cam,dc=ac,dc=uk", filter=>$filter ); $mesg->code && print $mesg->error; $ref = $mesg->as_struct; @DNs = keys %$ref; foreach $dn ( @DNs ) { my $valref = $$ref{$dn}; my @attr = sort keys %$valref; my %vals = (); foreach $attrname ( @attr ) { @val = @{@$valref{$attrname}}; $vlist = join " ", @val; $vals{$attrname} = $vlist; } push @results, \%vals; } $ldap->disconnect(); } $dosearch = 0; } elsif( $restrict_to =~ /reporter/is ) { $query = "/saquery.xml?qt=url:admin.cam.ac.uk/reporter/||$enc_search&st=$offset"; if( $got_raven || $cam_only ) { $searchsite = "int.web-search.cam.ac.uk"; } else { $searchsite = "web-search.cam.ac.uk"; } } elsif( $restrict_to =~ /all university/is ) { $query = "/saquery.xml?qt=$enc_search&st=$offset"; if( $got_raven || $cam_only ) { $searchsite = "int.web-search.cam.ac.uk"; } else { $searchsite = "web-search.cam.ac.uk"; } } elsif( $restrict_to =~ /uas staff/is && ( $got_raven || $cam_only ) ) { $query = "/global/cgi/searchuas.cgi?search=$enc_search"; $searchsite = "www.admin.cam.ac.uk"; } elsif( $restrict_to ) { $query = "/saquery.xml?qt=url:$office||$enc_search&st=$offset"; if( $got_raven || $cam_only ) { $searchsite = "int.web-search.cam.ac.uk"; } else { $searchsite = "web-search.cam.ac.uk"; } } else { } my $soundex = ""; if( $dosearch ) { print STDERR "query:$query searchsite:$searchsite\n"; $socket = IO::Socket::INET->new(PeerAddr => "$searchsite", PeerPort => "80", Proto => "tcp", Type => SOCK_STREAM ) || die "Couldn't connect"; print $socket "GET $query HTTP/1.0\n\n"; $ans = join "", <$socket>; if( $ans =~ /no matches were found in the database/is ) { $query .= "&soundex=on"; print $socket "GET $query HTTP/1.0\n\n"; $ans = join "", <$socket>; $soundex = "Soundex"; } } else { $ans = ""; } if( $ans =~ /