version 1.2, 2000/10/20 10:59:02
|
version 1.4, 2000/10/20 18:06:08
|
Line 21 use HTML::TokeParser;
|
Line 21 use HTML::TokeParser;
|
|
|
# ===================================================================== Package |
# ===================================================================== Package |
|
|
sub package { |
sub packagemsg { |
var ($subject,$message)=@_; |
my ($subject,$message)=@_; |
$message=~s/\</\<\;/g; |
$message=~s/\</\<\;/g; |
$message=~s/\>/\>\;/g; |
$message=~s/\>/\>\;/g; |
$subject=~s/\</\<\;/g; |
$subject=~s/\</\<\;/g; |
$subject=~s/\>/\>\;/g; |
$subject=~s/\>/\>\;/g; |
my $now=time; |
my $now=time; |
$msgcount++; |
$msgcount++; |
$msgid=$now.'_'.$ENV{'user.name'}.'_'. |
my $msgid=$now.'_'.$ENV{'user.name'}.'_'. |
$ENV{'user.domain'}.'_'.$msgcount.'_'.$$; |
$ENV{'user.domain'}.'_'.$msgcount.'_'.$$; |
return $msgid, |
return $msgid, |
'<sendername>'.$ENV{'user.name'}.'</sendername>'. |
'<sendername>'.$ENV{'user.name'}.'</sendername>'. |
Line 53 sub package {
|
Line 53 sub package {
|
|
|
# ================================================== Unpack message into a hash |
# ================================================== Unpack message into a hash |
|
|
sub unpackage { |
sub unpackagemsg { |
my $message=shift; |
my $message=shift; |
my %content=(); |
my %content=(); |
my $parser=HTML::TokeParser->new(\$message); |
my $parser=HTML::TokeParser->new(\$message); |
Line 79 sub author_res_msg {
|
Line 79 sub author_res_msg {
|
if ($homeserver ne 'no_host') { |
if ($homeserver ne 'no_host') { |
my $id=unpack("%32C*",$message); |
my $id=unpack("%32C*",$message); |
my $msgid; |
my $msgid; |
($msgid,$message)=package($filename,$message); |
($msgid,$message)=&packagemsg($filename,$message); |
return &Apache::lonnet::put( |
return &Apache::lonnet::reply('put:'.$domain.':'.$author. |
'nohist_res_msgs',$filename.'_'.$id => $message); |
':nohist_res_msgs:'. |
|
&Apache::lonnet::escape($filename.'_'.$id).'='. |
|
&Apache::lonnet::escape($message),$homeserver); |
} |
} |
return 'no_host'; |
return 'no_host'; |
} |
} |
Line 97 sub user_crit_msg {
|
Line 99 sub user_crit_msg {
|
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
if ($homeserver ne 'no_host') { |
if ($homeserver ne 'no_host') { |
my $msgid; |
my $msgid; |
($msgid,$message)=package($filename,$message); |
($msgid,$message)=&packagemsg($subject,$message); |
$status=&Apache::lonnet::cput('critical',$msgid => $message); |
$status=&Apache::lonnet::critical( |
|
'put:'.$domain.':'.$user.':critical:'. |
|
&Apache::lonnet::escape($msgid).'='. |
|
&Apache::lonnet::escape($message),$homeserver); |
} else { |
} else { |
$status='no_host'; |
$status='no_host'; |
} |
} |
&Apache::lonnet::logthis( |
&Apache::lonnet::logthis( |
'<font color=yellow>INFO: Sending critical email '.$msgid. |
'Sending critical email '.$msgid. |
', log status: '. |
', log status: '. |
&Apache::lonnet::log($ENV{'user.domain'},$ENV{'user.name'}, |
&Apache::lonnet::log($ENV{'user.domain'},$ENV{'user.name'}, |
$ENV{'user.home'}, |
$ENV{'user.home'}, |
'Sending critical '.$msgid.' to '.$user.' at '.$domain.' with status: ' |
'Sending critical '.$msgid.' to '.$user.' at '.$domain.' with status: ' |
.$status).'</font>'); |
.$status)); |
return $status; |
return $status; |
} |
} |
|
|
Line 116 sub user_crit_msg {
|
Line 121 sub user_crit_msg {
|
|
|
sub user_crit_received { |
sub user_crit_received { |
my $message=shift; |
my $message=shift; |
|
my %contents=&unpackagemsg($message); |
|
&Apache::lonnet::log('Received critical message '.$contents{'msgid'}); |
|
&user_normal_msg($contents{'sendername'},$contents{'senderdomain'}, |
|
'Receipt: '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}, |
|
'User '.$ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
|
' acknowledged receipt of message "'. |
|
$contents{'subject'}.'" dated '.$contents{'time'}.".\n\n" |
|
.'Message ID: '.$contents{'msgid'}); |
|
&Apache::lonnet::put('nohist_email',$contents{'msgid'} => $message); |
|
&Apache::lonnet::del('critical',$contents{'msgid'}); |
} |
} |
|
|
# ======================================================== Normal communication |
# ======================================================== Normal communication |
Line 130 sub user_normal_msg {
|
Line 144 sub user_normal_msg {
|
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
my $homeserver=&Apache::lonnet::homeserver($user,$domain); |
if ($homeserver ne 'no_host') { |
if ($homeserver ne 'no_host') { |
my $msgid; |
my $msgid; |
($msgid,$message)=package($filename,$message); |
($msgid,$message)=&packagemsg($subject,$message); |
$status=&Apache::lonnet::cput('nohist_email',$msgid => $message); |
$status=&Apache::lonnet::critical( |
|
'put:'.$domain.':'.$user.':nohist_email:'. |
|
&Apache::lonnet::escape($msgid).'='. |
|
&Apache::lonnet::escape($message),$homeserver); |
} else { |
} else { |
$status='no_host'; |
$status='no_host'; |
} |
} |