Exemple #1
0
 protected function readConfig(array $ini)
 {
     if (!empty($ini['tlds'])) {
         SblamURI::init($ini['tlds'], $this->services->getDB());
     } else {
         warn('tlds not given!');
     }
     if (!empty($ini['dns'])) {
         AsyncDNS::init(preg_split('![\\s,]+!', $ini['dns'], NULL, PREG_SPLIT_NO_EMPTY));
     } else {
         warn('dns not given!');
     }
     foreach ($ini as $name => $settings) {
         if (!is_array($settings) || $name == 'db') {
             continue;
         }
         if (!empty($settings['disabled']) || isset($settings['enabled']) && !$settings['enabled']) {
             /*d($name,'disabled');*/
             continue;
         }
         try {
             include_once "tests/" . strtolower($name) . ".php";
             $classname = "SblamTest" . ucfirst($name);
             if (!class_exists($classname)) {
                 warn($name, "Problem loading test plugin");
             }
             $info = call_user_func(array($classname, 'info'));
             if (!empty($info['remote']) && isset($ini['remote']) && !$ini['remote']) {
                 d($info, 'Its a remote service, remote disabled, skipping');
                 continue;
             }
             if (!empty($info['unsupported'])) {
                 d($info, 'unsupported in this configuration');
                 continue;
             }
             $test = new $classname($settings, $this->services);
             if (!$test instanceof ISblamTest) {
                 warn($test, 'Not a test');
                 continue;
             }
             //d($classname,"instantiated");
             $this->addTest($test, isset($settings['phase']) ? $settings['phase'] : 10);
         } catch (Exception $e) {
             warn($e, "Failed to initialize plugin {$name}");
         }
     }
     return true;
 }
Exemple #2
0
 /** set up nameservers' IPs */
 static function init(array $nameservers)
 {
     self::$nameservers = $nameservers;
 }
Exemple #3
0
 static function gethostbynameasync($name)
 {
     if (!$name || isset(self::$lookupcache[$name])) {
         return;
     }
     if (($res = self::gethostbynamecache($name)) !== false) {
         return self::$lookupcache[$name] = $res;
     } elseif (self::$useasync) {
         self::$lookupcache[$name] = AsyncDNS::query($name);
     }
 }