Annotation of loncom/lonnet/perl/lonrep.pm, revision 1.4
1.1 albertel 1: # The LearningOnline Network
2: # Replication Manager
3: # (Access Handler for File Transfers
4: # (lonacc: Cookie Based Access Handler
5: # 5/21/99,5/22,5/29,5/31,6/15 Gerd Kortemeyer)
6: # 6/16,6/18 Gerd Kortemeyer)
7: # 6/18,6/21,6/26,6/28,6/29,6/30,
1.2 www 8: # 7/2,7/3,7/9,7/10,7/12,
1.4 ! www 9: # 01/06,01/14,10/5 Gerd Kortemeyer
1.1 albertel 10:
11: package Apache::lonrep;
12:
13: use strict;
14: use Apache::Constants qw(:common :http);
15: use Apache::lonnet();
16: use Apache::File();
1.4 ! www 17: use CGI::Cookie();
1.1 albertel 18:
19: sub handler {
20: my $r = shift;
21: if (-e $r->finfo) {
22: return OK;
23: } else {
24: my $filename=$r->filename.$r->path_info;
1.2 www 25: if (-e "$filename.in.transfer") {
1.1 albertel 26: sleep 10;
27: $r->filename($filename);
28: if (-e $r->finfo) {
29: return OK;
30: } else {
31: $r->log_reason("Waiting for file transfer timed out",$filename);
32: return HTTP_SERVICE_UNAVAILABLE;
33: }
34: } else {
1.3 www 35: my $response=Apache::lonnet::repcopy($filename);
36: if ($response==OK) {
37: $r->filename($filename);
1.4 ! www 38: return OK;
1.3 www 39: }
1.4 ! www 40: my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
! 41: my $lonid=$cookies{'lonID'};
! 42: if ($lonid) {
! 43: $r->log_reason('Replication failed for '.$lonid->value);
! 44: return $response;
! 45: } else {
! 46: $r->log_reason('Replication failed for unknown user');
! 47: return FORBIDDEN;
! 48: }
1.1 albertel 49: }
1.2 www 50: }
1.1 albertel 51: }
52:
53: 1;
54: __END__
55:
56:
57:
58:
59:
60:
61:
62:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>