--- loncom/homework/daxeopen.pm 2023/08/23 20:39:06 1.8 +++ loncom/homework/daxeopen.pm 2023/08/23 22:21:05 1.9 @@ -1,7 +1,7 @@ # The LearningOnline Network # Opening converted problems and directory listings for Daxe # -# $Id: daxeopen.pm,v 1.8 2023/08/23 20:39:06 raeburn Exp $ +# $Id: daxeopen.pm,v 1.9 2023/08/23 22:21:05 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -201,9 +201,16 @@ sub directory_listing { return OK; } $dirpath =~ s{/$}{}; - opendir my $dir, $dirpath or die "Cannot open directory: $dirpath"; - my @files = readdir $dir; - closedir $dir; + my @files; + if (opendir(my $dir, $dirpath)) { + @files = readdir($dir); + closedir($dir); + } else { + $request->content_type('text/plain'); + $request->print("Error opening directory: $dirpath"); + $request->status(403); + return OK; + } my $dirname = $dirpath; $dirname =~ s{^.*/([^/]*)$}{$1}; $res .= "\n";