Till Brehm
2015-05-07 42f0c93c2aeb981c3b9ee98bb484ffefc5ac9c1d
Fixed: FS#3888 - APS installer: String could not be parsed as XML
2 files modified
11 ■■■■■ changed files
interface/lib/classes/aps_crawler.inc.php 9 ●●●●● patch | view | raw | blame | history
server/lib/classes/aps_installer.inc.php 2 ●●●●● patch | view | raw | blame | history
interface/lib/classes/aps_crawler.inc.php
@@ -189,6 +189,8 @@
            curl_setopt($conn[$i], CURLOPT_TIMEOUT, 0);
            curl_setopt($conn[$i], CURLOPT_FAILONERROR, 1);
            curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($conn[$i], CURLOPT_SSL_VERIFYHOST, 1);
            curl_setopt($conn[$i], CURLOPT_SSL_VERIFYPEER, false);
            curl_multi_add_handle($mh, $conn[$i]);
        }
@@ -283,6 +285,7 @@
                    $apps_count = substr_count($apps[$j], '<opensearch:totalResults>0</opensearch:totalResults>');
                    if($apps_count == 0) // obviously this vendor provides one or more apps
                        {
                        try {
                        // Rename namespaces and register them
                        $xml = str_replace("xmlns=", "ns=", $apps[$j]);
                        $sxe = new SimpleXMLElement($xml);
@@ -456,9 +459,15 @@
                        unset($sxe);
                        $apps_in_repo++;
                        } catch (Exception $e) {
                            // We dont want the crawler to fail on xml parse errors
                            $app->log($this->log_prefix.$e->getMessage(), LOGLEVEL_WARN);
                            //echo 'Caught exception: ',  $e->getMessage(), "\n";
                        }
                    }
                }
                //var_dump($apps);
                //echo print_r($apps_to_dl).'<br>-------------------<br>';
                // For memory reasons, unset the current vendor and his apps
                unset($apps);
server/lib/classes/aps_installer.inc.php
@@ -554,6 +554,7 @@
            curl_setopt($conn[$i], CURLOPT_TIMEOUT, 0);
            curl_setopt($conn[$i], CURLOPT_FAILONERROR, 1);
            curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($conn[$i], CURLOPT_SSL_VERIFYPEER, 0);
            curl_multi_add_handle($mh, $conn[$i]);
        }
@@ -696,6 +697,7 @@
            curl_setopt($ch, CURLOPT_TIMEOUT, 0);
            curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            if(curl_exec($ch) === false) $app->log(curl_error($ch), 1);
            fclose($fh);
            curl_close($ch);