/**
  * Get used domain if configured
  *
  * @param \Serfhos\MyRedirects\Domain\Model\Redirect $redirect
  * @return string
  */
 public function getDomainUrlFromRedirect(Redirect $redirect)
 {
     $return = '/';
     $domain = $redirect->getDomain();
     if ($domain > 0) {
         $domainRecord = $this->getDomain($domain);
         if (!empty($domainRecord)) {
             $return = rtrim($domainRecord['domainName'], '/') . '/';
         }
     }
     return $return;
 }
 /**
  * Do an active lookup for redirect
  *
  * @param \Serfhos\MyRedirects\Domain\Model\Redirect $redirect
  * @param string $defaultDomain
  * @return void
  */
 public function activeLookup(Redirect $redirect, $defaultDomain = null)
 {
     $active = true;
     $url = $redirect->getUrl();
     if ($defaultDomain === null) {
         $defaultDomain = GeneralUtility::getHostname();
     }
     if (!empty($url)) {
         $urlDomain = $this->getDomainService()->getDomainUrlFromRedirect($redirect);
         // this should be done in the domain service..
         if ($urlDomain == '/') {
             $url = rtrim($defaultDomain, '/') . '/' . $url;
         } else {
             $url = $urlDomain . $url;
         }
         $urlDetails = parse_url($url);
         if (!isset($urlDetails['scheme'])) {
             $url = (GeneralUtility::getIndpEnv('TYPO3_SSL') ? 'https://' : 'http://') . $url;
         }
         $details = array();
         $this->curlUrl($url, $details);
         if ((int) $details['response']['http_code'] !== 200) {
             $active = false;
             if ((int) $details['response']['http_code'] === 0) {
                 $redirect->setInactiveReason('Response timeout');
             } elseif (isset($details['error']['id'])) {
                 $redirect->setInactiveReason($details['error']['id'] . ': ' . $details['error']['message']);
             } else {
                 $redirect->setInactiveReason('Unknown: ' . var_export($details, true));
             }
         } elseif ($details['response']['url'] == $url) {
             $active = false;
             $redirect->setInactiveReason('Redirect got stuck, could be timeout');
         }
         $redirect->setActive($active);
         $redirect->setLastChecked(new \DateTime());
         if ($active === true) {
             $redirect->setInactiveReason('');
         }
     } else {
         $redirect->setActive(false);
     }
 }