--- loncom/interface/lonmsg.pm 2015/02/12 21:22:07 1.238
+++ loncom/interface/lonmsg.pm 2021/01/04 03:44:12 1.239.2.2
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines for messaging
#
-# $Id: lonmsg.pm,v 1.238 2015/02/12 21:22:07 raeburn Exp $
+# $Id: lonmsg.pm,v 1.239.2.2 2021/01/04 03:44:12 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -231,6 +231,7 @@ sub packagemsg {
$attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"');
my $course_context = &get_course_context();
my $now=time;
+ my $ip = &Apache::lonnet::get_requestor_ip();
my $msgcount = &get_uniq();
unless(defined($msgid)) {
$msgid = &buildmsgid($now,$subject,$env{'user.name'},$env{'user.domain'},
@@ -250,7 +251,7 @@ sub packagemsg {
}
$result .= ''.$ENV{'SERVER_NAME'}.''.
''.$ENV{'HTTP_HOST'}.''.
- ''.$ENV{'REMOTE_ADDR'}.''.
+ ''.$ip.''.
''.$env{'browser.type'}.''.
''.$env{'browser.os'}.''.
''.$env{'browser.version'}.''.
@@ -397,10 +398,14 @@ sub buildmsgid {
}
sub unpackmsgid {
- my ($msgid,$folder,$skipstatus,$status_cache)=@_;
+ my ($msgid,$folder,$skipstatus,$status_cache,$onlycid)=@_;
$msgid=&unescape($msgid);
my ($sendtime,$shortsubj,$fromname,$fromdomain,$count,$fromcid,
$processid,$symb,$error) = split(/\:/,&unescape($msgid));
+ if (!defined($processid)) { $fromcid = ''; }
+ if (($onlycid) && ($onlycid ne $fromcid)) {
+ return ($sendtime,'',$fromname,$fromdomain,'',$fromcid,'',$error);
+ }
$shortsubj = &unescape($shortsubj);
$shortsubj = &HTML::Entities::decode($shortsubj);
$symb = &unescape($symb);
@@ -634,9 +639,9 @@ sub retrieve_author_res_msg {
my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//);
my %errormsgs=&Apache::lonnet::dump('nohist_res_msgs',$domain,$author);
my $msgs='';
- foreach (keys(%errormsgs)) {
- if ($_=~/^\Q$url\E\_\d+$/) {
- my %content=&unpackagemsg($errormsgs{$_});
+ foreach my $msg (keys(%errormsgs)) {
+ if ($msg =~ /^\Q$url\E\_\d+$/) {
+ my %content=&unpackagemsg($errormsgs{$msg});
$msgs.='
'.
$content{'time'}.': '.$content{'message'}.
'
';
@@ -654,9 +659,9 @@ sub del_url_author_res_msg {
$url=&Apache::lonnet::declutter($url);
my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//);
my @delmsgs=();
- foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
- if ($_=~/^\Q$url\E\_\d+$/) {
- push (@delmsgs,$_);
+ foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
+ if ($msg =~ /^\Q$url\E\_\d+$/) {
+ push (@delmsgs,$msg);
}
}
return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
@@ -668,9 +673,9 @@ sub clear_author_res_msg {
$url=&Apache::lonnet::declutter($url);
my ($domain,$author)=($url=~/^($match_domain)\/($match_username)\//);
my @delmsgs=();
- foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
- if ($_=~/^\Q$url\E/) {
- push (@delmsgs,$_);
+ foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
+ if ($msg =~ /^\Q$url\E/) {
+ push (@delmsgs,$msg);
}
}
return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
@@ -681,8 +686,8 @@ sub clear_author_res_msg {
sub all_url_author_res_msg {
my ($author,$domain)=@_;
my %returnhash=();
- foreach (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
- $_=~/^(.+)\_\d+/;
+ foreach my $msg (&Apache::lonnet::getkeys('nohist_res_msgs',$domain,$author)) {
+ $msg =~ /^(.+)\_\d+/;
$returnhash{$1}=1;
}
return %returnhash;
@@ -926,8 +931,8 @@ sub user_normal_msg {
$domain,$user);
my $msgforward=$userenv{'msgforward'};
if ($msgforward) {
- foreach (split(/\,/,$msgforward)) {
- my ($forwuser,$forwdomain)=split(/\:/,$_);
+ foreach my $fwd (split(/\,/,$msgforward)) {
+ my ($forwuser,$forwdomain)=split(/\:/,$fwd);
push(@status,
&user_normal_msg_raw($forwuser,$forwdomain,$subject,$message,
$citation,$baseurl,$attachmenturl,$toperm,