Skip to content

Commit

Permalink
MDL-12763 - proxy_url() in langimport was doing its own custom proxied
Browse files Browse the repository at this point in the history
download magic. Convert to use download_file_contents() for more
robust downloads. And also add a more helpful error message while i'm
at it.
  • Loading branch information
poltawski committed Dec 29, 2007
1 parent e2d53c3 commit 6984aea
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 27 deletions.
38 changes: 11 additions & 27 deletions admin/langimport.php
Expand Up @@ -132,7 +132,7 @@


if (!$availablelangs = proxy_url($source)) {
error ('can not read from course');
print_error('cannotdownloadlanguageupdatelist');
}

//and build an associative array
Expand Down Expand Up @@ -360,39 +360,23 @@ function is_installed_lang($lang, $md5check) {
}

//returns an array of languages, or false if can not read from source
//uses a socket if proxy is set as a config variable
function proxy_url($url) {
global $CFG;

if ($CFG->proxyhost && $CFG->proxyport) {
$availablelangs = array();

$proxy_fp = fsockopen($CFG->proxyhost, $CFG->proxyport);
if (!$proxy_fp) {
return false; //failed
}
fputs($proxy_fp, "GET $url HTTP/1.0\r\nHost: $CFG->proxyhost\r\n\r\n");

$headers_done = false;
while(!feof($proxy_fp)) {
$string = fgets($proxy_fp, 1024);
if(!$headers_done){
// A new line indicates end of HTTP headers
$headers_done = ("\r\n" == $string);
} else {
$availablelangs[] = split(',', $string);
}
}
fclose($proxy_fp);
if( $content = download_file_content($url) ){

} else { //proxy not in use
if ($fp = fopen($url, 'r')){ /// attempt to get the list from Moodle.org.
while(!feof ($fp)) {
$availablelangs[] = split(',', fgets($fp,1024));
$alllines = split("\n", $content);
foreach($alllines as $line){
if(!empty($line)){
$availablelangs[] = split(',', $line);
}
} else { /// fopen failed, return false.
return false;
}

return $availablelangs;
}else{
return false;
}
return $availablelangs;
}
?>
1 change: 1 addition & 0 deletions lang/en_utf8/error.php
Expand Up @@ -8,6 +8,7 @@
$string['cannotcreatetempdir'] = 'Cannot create temp dir.';
$string['cannotcustomizelocallang'] = 'You do not have permission to customize the strings translation. This permission is controlled by the capability "moodle/site:langeditlocal". Set this capability to allow you to edit local language packages in case you want to modify translations for your site.';
$string['cannotdownloadcomponents'] = 'Cannot download components.';
$string['cannotdownloadlanguageupdatelist'] = 'Cannot download list of language updates from download.moodle.org';
$string['cannotdownloadzipfile'] = 'Cannot download ZIP file.';
$string['cannoteditmasterlang'] = 'You do not have permission to edit master language package. This permission is controlled by the capability "moodle/site:langeditmaster". Set this capability to allow you to edit master language packages in case you are the maintainer of a package.';
$string['cannotfindcomponent'] = 'Cannot find component.';
Expand Down

0 comments on commit 6984aea

Please sign in to comment.