--- loncom/lonsql 2004/05/11 21:08:20 1.60 +++ loncom/lonsql 2004/06/08 22:09:44 1.62 @@ -3,7 +3,7 @@ # The LearningOnline Network # lonsql - LON TCP-MySQL-Server Daemon for handling database requests. # -# $Id: lonsql,v 1.60 2004/05/11 21:08:20 matthew Exp $ +# $Id: lonsql,v 1.62 2004/06/08 22:09:44 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -115,6 +115,7 @@ use Fcntl; use Tie::RefHash; use DBI; use File::Find; +use localenroll; ######################################################## ######################################################## @@ -381,7 +382,7 @@ sub make_new_child { $queryid .= $run; print $client "$queryid\n"; # - &logthis("QUERY: $query - $arg1 - $arg2 - $arg3"); + # &logthis("QUERY: $query - $arg1 - $arg2 - $arg3"); sleep 1; # my $result=''; @@ -406,6 +407,23 @@ sub make_new_child { $result='no_such_file'; } # end of log query + } elsif ($query eq 'fetchenrollment') { + # retrieve institutional class lists + my $dom = &unescape($arg1); + my %affiliates = (); + my %replies = (); + my $locresult = ''; + my $querystr = &unescape($arg3); + foreach (split/%%/,$querystr) { + if (/^(\w+)=([^=]+)$/) { + @{$affiliates{$1}} = split/,/,$2; + } + } + $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); + $result = &escape($locresult.':'); + if ($locresult) { + $result .= &escape(join(':',map{$_.'='.$replies{$_}} keys %replies)); + } } else { # Do an sql query $result = &do_sql_query($query,$arg1,$arg2);