--- loncom/lonnet/perl/lonnet.pm 2011/10/14 22:05:19 1.1134 +++ loncom/lonnet/perl/lonnet.pm 2011/10/16 14:24:39 1.1135 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1134 2011/10/14 22:05:19 raeburn Exp $ +# $Id: lonnet.pm,v 1.1135 2011/10/16 14:24:39 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -8249,23 +8249,26 @@ sub dirlist { if($udom) { if($uname) { + my $uhome = &homeserver($uname,$udom); + return if ($uhome eq 'no_host'); $listing = &reply('ls3:'.&escape('/'.$uri).':'.$getpropath.':' .$getuserdir.':'.&escape($dirRoot) - .':'.&escape($uname).':'.&escape($udom), - &homeserver($uname,$udom)); + .':'.&escape($uname).':'.&escape($udom),$uhome); if ($listing eq 'unknown_cmd') { - $listing = &reply('ls2:'.$dirRoot.'/'.$uri, - &homeserver($uname,$udom)); + $listing = &reply('ls2:'.$dirRoot.'/'.$uri,$uhome); } else { @listing_results = map { &unescape($_); } split(/:/,$listing); } if ($listing eq 'unknown_cmd') { - $listing = &reply('ls:'.$dirRoot.'/'.$uri, - &homeserver($uname,$udom)); + $listing = &reply('ls:'.$dirRoot.'/'.$uri,$uhome); @listing_results = split(/:/,$listing); } else { @listing_results = map { &unescape($_); } split(/:/,$listing); } + if (($listing eq 'no_such_host') || ($listing eq 'con_lost') || + ($listing eq 'rejected') || ($listing eq 'refused')) { + return; + } return @listing_results; } elsif(!$alternateRoot) { my %allusers;