[LON-CAPA-cvs] cvs: loncom /interface londocs.pm /lonnet/perl lonnet.pm
raeburn
raeburn@source.lon-capa.org
Fri, 28 Aug 2009 19:43:16 -0000
raeburn Fri Aug 28 19:43:16 2009 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
/loncom/interface londocs.pm
Log:
- Bug 6003.
If checkbox checked for embedded object check, use File::MMagic to confirm that the file is an HTML file before parsing.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1023 loncom/lonnet/perl/lonnet.pm:1.1024
--- loncom/lonnet/perl/lonnet.pm:1.1023 Mon Aug 24 20:08:40 2009
+++ loncom/lonnet/perl/lonnet.pm Fri Aug 28 19:43:10 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1023 2009/08/24 20:08:40 raeburn Exp $
+# $Id: lonnet.pm,v 1.1024 2009/08/28 19:43:10 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -92,6 +92,7 @@
use Cache::Memcached;
use Digest::MD5;
use Math::Random;
+use File::MMagic;
use LONCAPA qw(:DEFAULT :match);
use LONCAPA::Configuration;
@@ -2059,9 +2060,13 @@
print $fh $env{'form.'.$source};
close($fh);
if ($parser eq 'parse') {
- my $parse_result = &extract_embedded_items($filepath.'/'.$fname,$allfiles,$codebase);
- unless ($parse_result eq 'ok') {
- &logthis('Failed to parse '.$filepath.'/'.$fname.' for embedded media: '.$parse_result);
+ my $mm = new File::MMagic;
+ my $mime_type = $mm->checktype_filename($filepath.'/'.$fname);
+ if ($mime_type eq 'text/html') {
+ my $parse_result = &extract_embedded_items($filepath.'/'.$fname,$allfiles,$codebase);
+ unless ($parse_result eq 'ok') {
+ &logthis('Failed to parse '.$filepath.'/'.$fname.' for embedded media: '.$parse_result);
+ }
}
}
$fetchresult= &reply('fetchuserfile:'.$docudom.'/'.$docuname.'/'.$file,
@@ -2303,11 +2308,15 @@
}
}
if ($parser eq 'parse') {
- my $parse_result = &extract_embedded_items($filepath.'/'.$file,$allfiles,
- $codebase);
- unless ($parse_result eq 'ok') {
- &logthis('Failed to parse '.$filepath.$file.
- ' for embedded media: '.$parse_result);
+ my $mm = new File::MMagic;
+ my $mime_type = $mm->checktype_filename($filepath.'/'.$file);
+ if ($mime_type eq 'text/html') {
+ my $parse_result = &extract_embedded_items($filepath.'/'.$file,
+ $allfiles,$codebase);
+ unless ($parse_result eq 'ok') {
+ &logthis('Failed to parse '.$filepath.$file.
+ ' for embedded media: '.$parse_result);
+ }
}
}
if (($thumbwidth =~ /^\d+$/) && ($thumbheight =~ /^\d+$/)) {
Index: loncom/interface/londocs.pm
diff -u loncom/interface/londocs.pm:1.383 loncom/interface/londocs.pm:1.384
--- loncom/interface/londocs.pm:1.383 Thu Aug 13 12:29:04 2009
+++ loncom/interface/londocs.pm Fri Aug 28 19:43:16 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.383 2009/08/13 12:29:04 tempelho Exp $
+# $Id: londocs.pm,v 1.384 2009/08/28 19:43:16 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1719,7 +1719,7 @@
return 'failed';
} else {
if ($parseaction eq 'parse') {
- my $total_embedded = keys(%{$allfiles});
+ my $total_embedded = scalar(keys(%{$allfiles}));
if ($total_embedded > 0) {
my $num = 0;
my $state = '