version 1.75, 2000/12/02 12:41:48
|
version 1.76, 2000/12/06 19:58:31
|
Line 45
|
Line 45
|
# EXT(name) : value of a variable |
# EXT(name) : value of a variable |
# symblist(map,hash) : Updates symbolic storage links |
# symblist(map,hash) : Updates symbolic storage links |
# symbread([filename]) : returns the data handle (filename optional) |
# symbread([filename]) : returns the data handle (filename optional) |
# rndseed() : returns a random seed |
# rndseed() : returns a random seed |
|
# receipt() : returns a receipt to be given out to users |
# getfile(filename) : returns the contents of filename, or a -1 if it can't |
# getfile(filename) : returns the contents of filename, or a -1 if it can't |
# be found, replicates and subscribes to the file |
# be found, replicates and subscribes to the file |
# filelocation(dir,file) : returns a farily clean absolute reference to file |
# filelocation(dir,file) : returns a farily clean absolute reference to file |
Line 89 use Apache::File;
|
Line 90 use Apache::File;
|
use LWP::UserAgent(); |
use LWP::UserAgent(); |
use HTTP::Headers; |
use HTTP::Headers; |
use vars |
use vars |
qw(%perlvar %hostname %homecache %spareid %hostdom %libserv %pr %prp %fe %fd $readit %metacache); |
qw(%perlvar %hostname %homecache %spareid %hostdom %libserv %pr %prp %fe %fd $readit %metacache $unique); |
use IO::Socket; |
use IO::Socket; |
use GDBM_File; |
use GDBM_File; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
Line 383 sub idget {
|
Line 384 sub idget {
|
$idlist=~tr/A-Z/a-z/; |
$idlist=~tr/A-Z/a-z/; |
my $reply=&reply("idget:$udom:".$idlist,$tryserver); |
my $reply=&reply("idget:$udom:".$idlist,$tryserver); |
my @answer=(); |
my @answer=(); |
if ($reply ne 'con_lost') { |
if (($reply ne 'con_lost') && ($reply!~/^error\:/)) { |
@answer=split(/\&/,$reply); |
@answer=split(/\&/,$reply); |
} ; |
} ; |
my $i; |
my $i; |
Line 1632 sub rndseed {
|
Line 1633 sub rndseed {
|
.$symbchck); |
.$symbchck); |
} |
} |
|
|
|
sub ireceipt { |
|
my ($funame,$fudom,$fucourseid,$fusymb)=@_; |
|
my $cuname=unpack("%32C*",$funame); |
|
my $cudom=unpack("%32C*",$fudom); |
|
my $cucourseid=unpack("%32C*",$fucourseid); |
|
my $cusymb=unpack("%32C*",$fusymb); |
|
my $cunique=unpack("%32C*",$unique); |
|
return unpack("%32C*",$perlvar{'lonHostID'}).'-'. |
|
($cunique%$cuname+ |
|
$cunique%$cudom+ |
|
$cusymb%$cuname+ |
|
$cusymb%$cudom+ |
|
$cucourseid%$cuname+ |
|
$cucourseid%$cudom); |
|
} |
|
|
|
sub receipt { |
|
return &ireceipt($ENV{'user.name'},$ENV{'user.domain'}, |
|
$ENV{'request.course.id'},&symbread()); |
|
} |
|
|
# ------------------------------------------------------------ Serves up a file |
# ------------------------------------------------------------ Serves up a file |
# returns either the contents of the file or a -1 |
# returns either the contents of the file or a -1 |
sub getfile { |
sub getfile { |
Line 1778 if ($readit ne 'done') {
|
Line 1800 if ($readit ne 'done') {
|
} |
} |
} |
} |
|
|
|
# --------------------------------------------------- Get CPU data as unique ID |
|
{ |
|
my @contents; |
|
{ |
|
my $fh=Apache::File->new('/proc/cpuinfo'); |
|
@contents=<$fh>; |
|
} |
|
$unique=''; |
|
map { |
|
my ($name,$value)=split(/\s*\:\s*/,$_); |
|
if (($name eq 'vendor_id') || ($name=~/^model/) || |
|
($name=~/^cpu/) || ($name eq 'stepping')) { |
|
$unique.=$value; |
|
} |
|
} @contents; |
|
$unique=~s/\W//g; |
|
} |
|
|
%metacache=(); |
%metacache=(); |
|
|
$readit='done'; |
$readit='done'; |